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] update-to-4.1.4: - Introduced distinct dependencies for different distributions Date: Sat, 20 Jun 2026 04:39:12 GMT Message-ID: <178193035246.1.18330217499897988342.rpms-soci-9c4b33c45970@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: update-to-4.1.4 X-Git-Rev: 9c4b33c4597018d6920db76483a4ccb6c810afa3 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc29jaQpCcmFuY2gg OiB1cGRhdGUtdG8tNC4xLjQKQ29tbWl0IDogOWM0YjMzYzQ1OTcwMThkNjkyMGRiNzY0ODNhNGNj YjZjODEwYWZhMwpBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzYXJuYXVkQGZlZG9yYXByb2pl Y3Qub3JnPgpEYXRlICAgOiAyMDA5LTA1LTIzVDEyOjEyOjI2KzAwOjAwClN0YXRzICA6ICs1OTg4 NS8tNjAzNTYgaW4gNiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvc29jaS9jLzljNGIzM2M0NTk3MDE4ZDY5MjBkYjc2NDgzYTRjY2I2YzgxMGFmYTM/ YnJhbmNoPXVwZGF0ZS10by00LjEuNAoKTG9nOgotIEludHJvZHVjZWQgZGlzdGluY3QgZGVwZW5k ZW5jaWVzIGZvciBkaWZmZXJlbnQgZGlzdHJpYnV0aW9ucwoKLS0tCmRpZmYgLS1naXQgYS9pbXBv cnQubG9nIGIvaW1wb3J0LmxvZwppbmRleCAwNGY0OWM5Li5jZmE0NGM2IDEwMDY0NAotLS0gYS9p bXBvcnQubG9nCisrKyBiL2ltcG9ydC5sb2cKQEAgLTQsMyArNCw0IEBAIHNvY2ktM18wXzAtOF9m YzEwOkhFQUQ6c29jaS0zLjAuMC04LmZjMTAuc3JjLnJwbToxMjQxNTU4MjE5CiBzb2NpLTNfMF8w LTlfZmMxMDpIRUFEOnNvY2ktMy4wLjAtOS5mYzEwLnNyYy5ycG06MTI0MTU1OTczMgogc29jaS0z XzBfMC0xMF9mYzEwOkhFQUQ6c29jaS0zLjAuMC0xMC5mYzEwLnNyYy5ycG06MTI0MTU2MzMxMQog c29jaS0zXzBfMC0xMV9mYzEwOkhFQUQ6c29jaS0zLjAuMC0xMS5mYzEwLnNyYy5ycG06MTI0MTU2 NzE1Mworc29jaS0zXzBfMC0xM19mYzExOkhFQUQ6c29jaS0zLjAuMC0xMy5mYzExLnNyYy5ycG06 MTI0MzA4MDM3MgoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtMTMtZml4LWdjYzQzLWNvbXBhdGli aWxpdHkucGF0Y2ggYi9zb2NpLTMuMC4wLTEzLWZpeC1nY2M0My1jb21wYXRpYmlsaXR5LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MWI1YjIKLS0tIC9kZXYvbnVs bAorKysgYi9zb2NpLTMuMC4wLTEzLWZpeC1nY2M0My1jb21wYXRpYmlsaXR5LnBhdGNoCkBAIC0w LDAgKzEsOTEgQEAKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21t b24uaCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmgKKy0tLSBz b2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA4LTA3LTAzIDA5OjIyOjU3 LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNx bC9jb21tb24uaAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAorQEAgLTEwLDYg KzEwLDcgQEAKKyAKKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSAic29jaS1teXNxbC5o IgorKyNpbmNsdWRlIDxjdGltZT4KKyAKKyBuYW1lc3BhY2Ugc29jaQorIHsKK2RpZmYgLU51ciBz b2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFj ay9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAky MDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAorQEAgLTExLDcgKzExLDggQEAKKyAj aW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjZXJybm8+CisgI2luY2x1ZGUgPGNpc282NDY+ CistCisrI2luY2x1ZGUgPGNzdGRsaWI+CisrI2luY2x1ZGUgPGNsaW1pdHM+CisgCisgI2lmZGVm IF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2Np LTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4w LjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0g c29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA4 LTA1LTMwIDEzOjMzOjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6MTE6 MDMuMDAwMDAwMDAwICswMjAwCitAQCAtMTIsNiArMTIsOCBAQAorICNpbmNsdWRlICJjb21tb24u aCIKKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y2Fzc2VydD4KKysjaW5jbHVkZSA8 Y3RpbWU+CisrI2luY2x1ZGUgPGNzdHJpbmc+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdt YSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAw MDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNDo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0xMCw4ICsxMCwxMCBAQAorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNv bW1vbi5oIgorICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKyAjaW5jbHVkZSA8Y2lz bzY0Nj4KKyAjaW5jbHVkZSA8bGltaXRzPgorKyNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUg PGNzdHJpbmc+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMv YmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMv YmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4wMDAw MDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjI1OjExLjAwMDAwMDAwMCArMDIwMAorQEAg LTEwLDkgKzEwLDEyIEBACisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAiY29t bW9uLmgiCisgI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysvLworICNpbmNsdWRlIDxjaXNv NjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CisrI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8 Y3N0cmluZz4KKysjaW5jbHVkZSA8Y3RpbWU+CisgCisgI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdt YSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcAkyMDA4LTA2LTI3IDE2OjM4OjA1LjAwMDAwMDAwMCArMDIwMAorKysrIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0w NS0yMyAxMzoyMzozOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDcgKzcsOSBAQAorIAorICNpbmNs dWRlICJjb21tb24uaCIKKyAjaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrLy8KKyAjaW5jbHVk ZSA8Y3N0ZGxpYj4KKysjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjdGltZT4KKyAKKyAK K2RpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcCBzb2NpLTMuMC4w XzQtcGFjay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9jb3Jl L3NvY2ktc2ltcGxlLmNwcAkyMDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAwMDAwMCArMDIwMAorKysr IHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA5LTA1LTIzIDEz OjIxOjE0LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNiArOSw4IEBACisgCisgI2luY2x1ZGUgInNv Y2ktc2ltcGxlLmgiCisgI2luY2x1ZGUgInNvY2kuaCIKKysvLworKyNpbmNsdWRlIDxjc3RkaW8+ CisgCisgdXNpbmcgbmFtZXNwYWNlIHNvY2k7CisgCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC0x My1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC0xMy1m aXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjI2ZDM0NjkKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLTEz LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw1OTc2NyBA QAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2FjbG9jYWwubTQgc29jaS0zLjAuMF90cmVw MzAwL2FjbG9jYWwubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00CTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2FjbG9j YWwubTQJMjAwOS0wNS0yMyAxMDowMTo1OC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsODg3 IEBACisrIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTAuMiAtKi0gQXV0 b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBG 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 LAorK1thbV9fYXBpX3ZlcnNpb249JzEuMTAnCisrZG5sIFNvbWUgdXNlcnMgZmluZCBBTV9BVVRP TUFLRV9WRVJTSU9OIGFuZCBtaXN0YWtlIGl0IGZvciBhIHdheSB0bworK2RubCByZXF1aXJlIHNv bWUgbWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUgcmlnaHQgbWFjcm8uCisrbTRf aWYoWyQxXSwgWzEuMTAuMl0sIFtdLAorKyAgICAgIFtBQ19GQVRBTChbRG8gbm90IGNhbGwgJDAs IHVzZSBBTV9JTklUX0FVVE9NQUtFKFskMV0pLl0pXSlkbmwKKytdKQorKworKyMgX0FNX0FVVE9D T05GX1ZFUlNJT04oVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBhY2xvY2FsIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGZpbmQgdGhlIEF1dG9jb25mIHZlcnNpb24u CisrIyBUaGlzIGlzIGEgcHJpdmF0ZSBtYWNybyB0b28uICBVc2luZyBtNF9kZWZpbmUgc2ltcGxp ZmllcworKyMgdGhlIGxvZ2ljIGluIGFjbG9jYWwsIHdoaWNoIGNhbiBzaW1wbHkgaWdub3JlIHRo aXMgZGVmaW5pdGlvbi4KKyttNF9kZWZpbmUoW19BTV9BVVRPQ09ORl9WRVJTSU9OXSwgW10pCisr CisrIyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBDYWxsIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIEFNX0FVVE9N QUtFX1ZFUlNJT04gc28gdGhleSBjYW4gYmUgdHJhY2VkLgorKyMgVGhpcyBmdW5jdGlvbiBpcyBB Q19SRVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgorK0FDX0RFRlVOKFtBTV9TRVRfQ1VSUkVO VF9BVVRPTUFLRV9WRVJTSU9OXSwKKytbQU1fQVVUT01BS0VfVkVSU0lPTihbMS4xMC4yXSlkbmwK 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 cmlnaHQgKEMpIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysjIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgc2VyaWFsIDgKKysKKysjIEFNX0NPTkRJVElPTkFMKE5BTUUsIFNIRUxMLUNPTkRJVElP TikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIERlZmluZSBh IGNvbmRpdGlvbmFsLgorK0FDX0RFRlVOKFtBTV9DT05ESVRJT05BTF0sCisrW0FDX1BSRVJFUSgy LjUyKWRubAorKyBpZmVsc2UoWyQxXSwgW1RSVUVdLCAgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBj b25kaXRpb246ICQxXSldLAorKwlbJDFdLCBbRkFMU0VdLCBbQUNfRkFUQUwoWyQwOiBpbnZhbGlk IGNvbmRpdGlvbjogJDFdKV0pZG5sCisrQUNfU1VCU1QoWyQxX1RSVUVdKWRubAorK0FDX1NVQlNU KFskMV9GQUxTRV0pZG5sCisrX0FNX1NVQlNUX05PVE1BS0UoWyQxX1RSVUVdKWRubAorK19BTV9T VUJTVF9OT1RNQUtFKFskMV9GQUxTRV0pZG5sCisraWYgJDI7IHRoZW4KKysgICQxX1RSVUU9Cisr ICAkMV9GQUxTRT0nIycKKytlbHNlCisrICAkMV9UUlVFPScjJworKyAgJDFfRkFMU0U9CisrZmkK KytBQ19DT05GSUdfQ09NTUFORFNfUFJFKAorK1tpZiB0ZXN0IC16ICIkeyQxX1RSVUV9IiAmJiB0 ZXN0IC16ICIkeyQxX0ZBTFNFfSI7IHRoZW4KKysgIEFDX01TR19FUlJPUihbW2NvbmRpdGlvbmFs ICIkMSIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3 YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCisrZmldKV0pCisrCisrIyBDb3B5cmln aHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysj IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgc2VyaWFsIDkKKysKKysjIFRoZXJlIGFyZSBhIGZldyBkaXJ0eSBoYWNrcyBiZWxv dyB0byBhdm9pZCBsZXR0aW5nIGBBQ19QUk9HX0NDJyBiZQorKyMgd3JpdHRlbiBpbiBjbGVhciwg aW4gd2hpY2ggY2FzZSBhdXRvbWFrZSwgd2hlbiByZWFkaW5nIGFjbG9jYWwubTQsCisrIyB3aWxs IHRoaW5rIGl0IHNlZXMgYSAqdXNlKiwgYW5kIHRoZXJlZm9yZSB3aWxsIHRyaWdnZXIgYWxsIGl0 J3MKKysjIEMgc3VwcG9ydCBtYWNoaW5lcnkuICBBbHNvIG5vdGUgdGhhdCBpdCBtZWFucyB0aGF0 IGF1dG9zY2FuLCBzZWVpbmcKKysjIENDIGV0Yy4gaW4gdGhlIE1ha2VmaWxlLCB3aWxsIGFzayBm b3IgYW4gQUNfUFJPR19DQyB1c2UuLi4KKysKKysKKysjIF9BTV9ERVBFTkRFTkNJRVMoTkFNRSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlZSBob3cgdGhlIGNvbXBpbGVyIGltcGxl bWVudHMgZGVwZW5kZW5jeSBjaGVja2luZy4KKysjIE5BTUUgaXMgIkNDIiwgIkNYWCIsICJHQ0oi LCBvciAiT0JKQyIuCisrIyBXZSB0cnkgYSBmZXcgdGVjaG5pcXVlcyBhbmQgdXNlIHRoYXQgdG8g c2V0IGEgc2luZ2xlIGNhY2hlIHZhcmlhYmxlLgorKyMKKysjIFdlIGRvbid0IEFDX1JFUVVJUkUg dGhlIGNvcnJlc3BvbmRpbmcgQUNfUFJPR19DQyBzaW5jZSB0aGUgbGF0dGVyIHdhcworKyMgbW9k aWZpZWQgdG8gaW52b2tlIF9BTV9ERVBFTkRFTkNJRVMoQ0MpOyB3ZSB3b3VsZCBoYXZlIGEgY2ly Y3VsYXIKKysjIGRlcGVuZGVuY3ksIGFuZCBnaXZlbiB0aGF0IHRoZSB1c2VyIGlzIG5vdCBleHBl Y3RlZCB0byBydW4gdGhpcyBtYWNybywKKysjIGp1c3QgcmVseSBvbiBBQ19QUk9HX0NDLgorK0FD X0RFRlVOKFtfQU1fREVQRU5ERU5DSUVTXSwKKytbQUNfUkVRVUlSRShbQU1fU0VUX0RFUERJUl0p ZG5sCisrQUNfUkVRVUlSRShbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdKWRubAorK0FD X1JFUVVJUkUoW0FNX01BS0VfSU5DTFVERV0pZG5sCisrQUNfUkVRVUlSRShbQU1fREVQX1RSQUNL XSlkbmwKKysKKytpZmVsc2UoWyQxXSwgQ0MsICAgW2RlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJf bGlzdD1dLAorKyAgICAgICBbJDFdLCBDWFgsICBbZGVwY2M9IiRDWFgiICBhbV9jb21waWxlcl9s aXN0PV0sCisrICAgICAgIFskMV0sIE9CSkMsIFtkZXBjYz0iJE9CSkMiIGFtX2NvbXBpbGVyX2xp c3Q9J2djYzMgZ2NjJ10sCisrICAgICAgIFskMV0sIFVQQywgIFtkZXBjYz0iJFVQQyIgIGFtX2Nv bXBpbGVyX2xpc3Q9XSwKKysgICAgICAgWyQxXSwgR0NKLCAgW2RlcGNjPSIkR0NKIiAgYW1fY29t cGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKKysgICAgICAgICAgICAgICAgICAgW2RlcGNjPSIkJDEi ICAgYW1fY29tcGlsZXJfbGlzdD1dKQorKworK0FDX0NBQ0hFX0NIRUNLKFtkZXBlbmRlbmN5IHN0 eWxlIG9mICRkZXBjY10sCisrICAgICAgICAgICAgICAgW2FtX2N2XyQxX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlXSwKKytbaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRh bV9kZXBjb21wIjsgdGhlbgorKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMg dGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAorKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMg dGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKKysgICMgaW5z dGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5k IHVwCisrICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcg bWVhbnMgYHB1dCB0aGUgb3V0cHV0CisrICAjIGluIEQnLgorKyAgbWtkaXIgY29uZnRlc3QuZGly CisrICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3Qg ZmluZCBpdCBpZiB3ZSdyZQorKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KKysgIGNw ICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisrICBjZCBjb25mdGVzdC5kaXIKKysgICMgV2Ug d2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVj YXVzZQorKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9k ZXMuICBGb3IgaW5zdGFuY2UKKysgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAt TUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisrICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBp bGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KKysgICMgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAor KyAgIyBkaXJlY3RvcnkuCisrICBta2RpciBzdWIKKysKKysgIGFtX2N2XyQxX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIi OyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gWydzL14jKlwoW2EtekEtWjAt OV0qXCkpJC9cMS9wJ10gPCAuL2RlcGNvbXBgCisrICBmaQorKyAgZm9yIGRlcG1vZGUgaW4gJGFt X2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVu ZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJn ZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ug c2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhp cy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVh Y2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRo ZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMg aGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9j b25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNp bmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5n IGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAor KyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2Nv bmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVv dGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICBjYXNlICRk ZXBtb2RlIGluCisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBt ZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9u bHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRl bmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAg ICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsg OzsKKysgICAgZXNhYworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhl IHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRo YXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5k bGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCisrICAgIGlmIGRlcG1vZGU9 JGRlcG1vZGUgXAorKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25m dGVzdC4ke09CSkVYVC1vfSBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRl cGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNj IC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCisrICAgICAg ICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0 MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3Vi L2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAg Z3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxs IDI+JjEgJiYKKysgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAy PiYxOyB0aGVuCisrICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMs IGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncworKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3 aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCisrICAgICAg IyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCisrICAg ICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKKysg ICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7 IG5vIGFyZ3VtZW50IHJlcXVpcmVkCisrICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4g aWNjIDguMDoKKysgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1N UCcgbm90IHN1cHBvcnRlZAorKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0 ZXN0LmVyciB8fAorKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIp ID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisrICAgICAgICBhbV9jdl8kMV9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQor KyAgICBmaQorKyAgZG9uZQorKworKyAgY2QgLi4KKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKytl bHNlCisrICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKytd KQorK0FDX1NVQlNUKFskMURFUE1PREVdLCBbZGVwbW9kZT0kYW1fY3ZfJDFfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGVdKQorK0FNX0NPTkRJVElPTkFMKFthbV9fZmFzdGRlcCQxXSwgWworKyAg dGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKysgICYmIHRlc3Qg IiRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzXSkKKytdKQorKwor KworKyMgQU1fU0VUX0RFUERJUgorKyMgLS0tLS0tLS0tLS0tLQorKyMgQ2hvb3NlIGEgZGlyZWN0 b3J5IG5hbWUgZm9yIGRlcGVuZGVuY3kgZmlsZXMuCisrIyBUaGlzIG1hY3JvIGlzIEFDX1JFUVVJ UkVkIGluIF9BTV9ERVBFTkRFTkNJRVMKKytBQ19ERUZVTihbQU1fU0VUX0RFUERJUl0sCisrW0FD X1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0pZG5sCisrQUNfU1VCU1QoW0RFUERJUl0sIFsi JHthbV9fbGVhZGluZ19kb3R9ZGVwcyJdKWRubAorK10pCisrCisrCisrIyBBTV9ERVBfVFJBQ0sK KysjIC0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBTV9ERVBfVFJBQ0tdLAorK1tBQ19BUkdfRU5B QkxFKGRlcGVuZGVuY3ktdHJhY2tpbmcsCisrWyAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tp bmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAorKyAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFj a2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnNdKQorK2lmIHRl c3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgorKyAgYW1fZGVw Y29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIKKysgIEFNREVQQkFDS1NMQVNIPSdcJworK2ZpCisr QU1fQ09ORElUSU9OQUwoW0FNREVQXSwgW3Rlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tp bmciICE9IHhub10pCisrQUNfU1VCU1QoW0FNREVQQkFDS1NMQVNIXSlkbmwKKytfQU1fU1VCU1Rf Tk9UTUFLRShbQU1ERVBCQUNLU0xBU0hdKWRubAorK10pCisrCisrIyBHZW5lcmF0ZSBjb2RlIHRv IHNldCB1cCBkZXBlbmRlbmN5IHRyYWNraW5nLiAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0q LQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA4CisrIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjc2VyaWFsIDQKKysKKysjIF9BTV9PVVRQVVRfREVQRU5E RU5DWV9DT01NQU5EUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVG VU4oW19BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCisrWyMgQXV0b2NvbmYgMi42MiBx dW90ZXMgLS1maWxlIGFyZ3VtZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCisrIyBh cmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBvbmx5IGVuYWJs ZSB0aGUgZXZhbAorKyMgaWYgd2UgZGV0ZWN0IHRoZSBxdW90aW5nLgorK2Nhc2UgJENPTkZJR19G SUxFUyBpbgorKypcJyopIGV2YWwgc2V0IHggIiRDT05GSUdfRklMRVMiIDs7CisrKikgICBzZXQg eCAkQ09ORklHX0ZJTEVTIDs7CisrZXNhYworK3NoaWZ0CisrZm9yIG1mCisrZG8KKysgICMgU3Ry aXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisrICBtZj1gZWNo byAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAorKyAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMg YW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KKysgICMgV2UgdXNlZCB0byBt YXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKysgICMgc29tZSBw ZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50 LgorKyAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3Bs ZSBwb3N0LXByb2Nlc3MKKysgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUg b24gdG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisrICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBm aWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQorKyAgIyBsaW1pdCBv ZiAyMDQ4LCBidXQgYWxsIHNlZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5kIGF0IGxlYXN0IDQw MDAuCisrICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRt ZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgIGRpcnBhcnQ9YEFTX0RJUk5B TUUoIiRtZiIpYAorKyAgZWxzZQorKyAgICBjb250aW51ZQorKyAgZmkKKysgICMgRXh0cmFjdCB0 aGUgZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCisrICAj IGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisrICBERVBESVI9YHNl ZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAorKyAgdGVzdCAteiAiJERFUERJUiIgJiYg Y29udGludWUKKysgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8 ICIkbWYiYAorKyAgdGVzdCAteiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCisrICBhbV9fcXVv dGU9YHNlZCAtbiAncy9eYW1fX3F1b3RlID0gLy9wJyA8ICIkbWYiYAorKyAgIyBXaGVuIHVzaW5n IGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKysg IFU9YHNlZCAtbiAncy9eVSA9IC8vcCcgPCAiJG1mImAKKysgICMgRmluZCBhbGwgZGVwZW5kZW5j eSBvdXRwdXQgZmlsZXMsIHRoZXkgYXJlIGluY2x1ZGVkIGZpbGVzIHdpdGgKKysgICMgJChERVBE SVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRo ZQorKyAgIyBzaW1wbGVzdCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFj dHVhbCB2YWx1ZSBpbiB0aGUKKysgICMgZXhwYW5zaW9uLgorKyAgZm9yIGZpbGUgaW4gYHNlZCAt biAiCisrICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9f cXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAorKyAgICAgICBzZWQgLWUgJ3MvXCQoREVQRElSKS8n IiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cnYDsgZG8KKysgICAgIyBNYWtlIHN1cmUg dGhlIGRpcmVjdG9yeSBleGlzdHMuCisrICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBj b250aW51ZQorKyAgICBmZGlyPWBBU19ESVJOQU1FKFsiJGZpbGUiXSlgCisrICAgIEFTX01LRElS X1AoWyRkaXJwYXJ0LyRmZGlyXSkKKysgICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmls ZSIKKysgICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCisrICBkb25lCisrZG9u ZQorK10pIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKysKKysKKysjIEFNX09VVFBV VF9ERVBFTkRFTkNZX0NPTU1BTkRTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgVGhpcyBtYWNybyBzaG91bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNlIHZpYSBBQ19S RVFVSVJFLgorKyMKKysjIFRoaXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXV0b21hdGlj IGRlcGVuZGVuY3kgdHJhY2tpbmcKKysjIGlzIGVuYWJsZWQuICBGSVhNRS4gIFRoaXMgY3JlYXRl cyBlYWNoIGAuUCcgZmlsZSB0aGF0IHdlIHdpbGwKKysjIG5lZWQgaW4gb3JkZXIgdG8gYm9vdHN0 cmFwIHRoZSBkZXBlbmRlbmN5IGhhbmRsaW5nIGNvZGUuCisrQUNfREVGVU4oW0FNX09VVFBVVF9E RVBFTkRFTkNZX0NPTU1BTkRTXSwKKytbQUNfQ09ORklHX0NPTU1BTkRTKFtkZXBmaWxlc10sCisr ICAgICBbdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRFTkNZ X0NPTU1BTkRTXSwKKysgICAgIFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0i JGFjX2F1eF9kaXIiXSkKKytdKQorKworKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBBdXRvbWFrZS4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHly aWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywg MjAwNCwKKysjIDIwMDUsIDIwMDYsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMTMKKysKKysjIFRoaXMg bWFjcm8gYWN0dWFsbHkgZG9lcyB0b28gbXVjaC4gIFNvbWUgY2hlY2tzIGFyZSBvbmx5IG5lZWRl ZCBpZgorKyMgeW91ciBwYWNrYWdlIGRvZXMgY2VydGFpbiB0aGluZ3MuICBCdXQgdGhpcyBpc24n dCByZWFsbHkgYSBiaWcgZGVhbC4KKysKKysjIEFNX0lOSVRfQVVUT01BS0UoUEFDS0FHRSwgVkVS U0lPTiwgW05PLURFRklORV0pCisrIyBBTV9JTklUX0FVVE9NQUtFKFtPUFRJT05TXSkKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUaGUgY2Fs bCB3aXRoIFBBQ0tBR0UgYW5kIFZFUlNJT04gYXJndW1lbnRzIGlzIHRoZSBvbGQgc3R5bGUKKysj IGNhbGwgKHByZSBhdXRvY29uZi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcgcGhhc2VkIG91dC4gIFBB Q0tBR0UKKysjIGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5k IHJlbW92ZWQgZnJvbQorKyMgdGhlIGNhbGwgdG8gQU1fSU5JVF9BVVRPTUFLRS4KKysjIFdlIHN1 cHBvcnQgYm90aCBjYWxsIHN0eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24uICBBZnRlcgorKyMgdGhl IG5leHQgQXV0b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKKysj IGFyZ3VtZW50cyBtYW5kYXRvcnksIGFuZCB0aGVuIHdlIGNhbiBkZXBlbmQgb24gYSBuZXcgQXV0 b2NvbmYKKysjIHJlbGVhc2UgYW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQuCisrQUNfREVG VU4oW0FNX0lOSVRfQVVUT01BS0VdLAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK2RubCBBdXRv Y29uZiB3YW50cyB0byBkaXNhbGxvdyBBTV8gbmFtZXMuICBXZSBleHBsaWNpdGx5IGFsbG93Cisr ZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJvdXQuCisrbTRfcGF0dGVybl9hbGxvdyhbXkFNX1tBLVpd K0ZMQUdTJF0pZG5sCisrQUNfUkVRVUlSRShbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lP Tl0pZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKKytpZiB0ZXN0ICJgY2Qg JHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCisrICAjIFVzZSAtSSQoc3JjZGlyKSBv bmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAorKyAgIyBpcyBu b3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgorKyAgQUNfU1VCU1QoW2FtX19pc3JjXSwg WycgLUkkKHNyY2RpciknXSlfQU1fU1VCU1RfTk9UTUFLRShbYW1fX2lzcmNdKWRubAorKyAgIyB0 ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCisrICBpZiB0ZXN0IC1mICRz cmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgorKyAgICBBQ19NU0dfRVJST1IoW3NvdXJjZSBkaXJl Y3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gIm1ha2UgZGlzdGNsZWFuIiB0aGVyZSBmaXJz dF0pCisrICBmaQorK2ZpCisrCisrIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCisraWYg dGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KKysgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9k ZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisr ICBlbHNlCisrICAgIENZR1BBVEhfVz1lY2hvCisrICBmaQorK2ZpCisrQUNfU1VCU1QoW0NZR1BB VEhfV10pCisrCisrIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorK2RubCBE aXN0aW5ndWlzaCBiZXR3ZWVuIG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlIGNhbGxzLgorK200X2lm dmFsKFskMl0sCisrW200X2lmdmFsKFskM10sIFtfQU1fU0VUX09QVElPTihbbm8tZGVmaW5lXSld KWRubAorKyBBQ19TVUJTVChbUEFDS0FHRV0sIFskMV0pZG5sCisrIEFDX1NVQlNUKFtWRVJTSU9O XSwgWyQyXSldLAorK1tfQU1fU0VUX09QVElPTlMoWyQxXSlkbmwKKytkbmwgRGlhZ25vc2Ugb2xk LXN0eWxlIEFDX0lOSVQgd2l0aCBuZXctc3R5bGUgQU1fQVVUT01BS0VfSU5JVC4KKyttNF9pZiht NF9pZmRlZihbQUNfUEFDS0FHRV9OQU1FXSwgMSltNF9pZmRlZihbQUNfUEFDS0FHRV9WRVJTSU9O XSwgMSksIDExLCwKKysgIFttNF9mYXRhbChbQUNfSU5JVCBzaG91bGQgYmUgY2FsbGVkIHdpdGgg cGFja2FnZSBhbmQgdmVyc2lvbiBhcmd1bWVudHNdKV0pZG5sCisrIEFDX1NVQlNUKFtQQUNLQUdF XSwgWydBQ19QQUNLQUdFX1RBUk5BTUUnXSlkbmwKKysgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJ0FD X1BBQ0tBR0VfVkVSU0lPTiddKV0pZG5sCisrCisrX0FNX0lGX09QVElPTihbbm8tZGVmaW5lXSws CisrW0FDX0RFRklORV9VTlFVT1RFRChQQUNLQUdFLCAiJFBBQ0tBR0UiLCBbTmFtZSBvZiBwYWNr YWdlXSkKKysgQUNfREVGSU5FX1VOUVVPVEVEKFZFUlNJT04sICIkVkVSU0lPTiIsIFtWZXJzaW9u IG51bWJlciBvZiBwYWNrYWdlXSldKWRubAorKworKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVk cy4KKytBQ19SRVFVSVJFKFtBTV9TQU5JVFlfQ0hFQ0tdKWRubAorK0FDX1JFUVVJUkUoW0FDX0FS R19QUk9HUkFNXSlkbmwKKytBTV9NSVNTSU5HX1BST0coQUNMT0NBTCwgYWNsb2NhbC0ke2FtX19h cGlfdmVyc2lvbn0pCisrQU1fTUlTU0lOR19QUk9HKEFVVE9DT05GLCBhdXRvY29uZikKKytBTV9N SVNTSU5HX1BST0coQVVUT01BS0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSkKKytBTV9N SVNTSU5HX1BST0coQVVUT0hFQURFUiwgYXV0b2hlYWRlcikKKytBTV9NSVNTSU5HX1BST0coTUFL RUlORk8sIG1ha2VpbmZvKQorK0FNX1BST0dfSU5TVEFMTF9TSAorK0FNX1BST0dfSU5TVEFMTF9T VFJJUAorK0FDX1JFUVVJUkUoW0FNX1BST0dfTUtESVJfUF0pZG5sCisrIyBXZSBuZWVkIGF3ayBm b3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KKysjIHNv bWUgcGxhdGZvcm1zLgorK0FDX1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKKytBQ19SRVFVSVJF KFtBQ19QUk9HX01BS0VfU0VUXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1Rd KWRubAorK19BTV9JRl9PUFRJT04oW3Rhci11c3Rhcl0sIFtfQU1fUFJPR19UQVIoW3VzdGFyXSld LAorKyAgICAgICAgICAgICAgW19BTV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0dfVEFS KFtwYXhdKV0sCisrCSAgICAgIAkJICAgICBbX0FNX1BST0dfVEFSKFt2N10pXSldKQorK19BTV9J Rl9PUFRJT04oW25vLWRlcGVuZGVuY2llc10sLAorK1tBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJP R19DQ10sCisrICAgICAgICAgICAgICAgICAgW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSwKKysgICAg ICAgICAgICAgICAgICBbZGVmaW5lKFtBQ19QUk9HX0NDXSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlZm4oW0FDX1BST0dfQ0NdKVtfQU1fREVQRU5ERU5DSUVTKENDKV0pXSlkbmwKKytB Q19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DWFhdLAorKyAgICAgICAgICAgICAgICAgIFtfQU1f REVQRU5ERU5DSUVTKENYWCldLAorKyAgICAgICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0df Q1hYXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BST0dfQ1hYXSlbX0FN X0RFUEVOREVOQ0lFUyhDWFgpXSldKWRubAorK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX09C SkNdLAorKyAgICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSwKKysgICAg ICAgICAgICAgICAgICBbZGVmaW5lKFtBQ19QUk9HX09CSkNdLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVmbihbQUNfUFJPR19PQkpDXSlbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0pXSlk bmwKKytdKQorK10pCisrCisrCisrIyBXaGVuIGNvbmZpZy5zdGF0dXMgZ2VuZXJhdGVzIGEgaGVh ZGVyLCB3ZSBtdXN0IHVwZGF0ZSB0aGUgc3RhbXAtaCBmaWxlLgorKyMgVGhpcyBmaWxlIHJlc2lk ZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBjb25maWcgaGVhZGVyCisrIyB0aGF0IGlz IGdlbmVyYXRlZC4gIFRoZSBzdGFtcCBmaWxlcyBhcmUgbnVtYmVyZWQgdG8gaGF2ZSBkaWZmZXJl bnQgbmFtZXMuCisrCisrIyBBdXRvY29uZiBjYWxscyBfQUNfQU1fQ09ORklHX0hFQURFUl9IT09L ICh3aGVuIGRlZmluZWQpIGluIHRoZQorKyMgbG9vcCB3aGVyZSBjb25maWcuc3RhdHVzIGNyZWF0 ZXMgdGhlIGhlYWRlcnMsIHNvIHdlIGNhbiBnZW5lcmF0ZQorKyMgb3VyIHN0YW1wIGZpbGVzIHRo ZXJlLgorK0FDX0RFRlVOKFtfQUNfQU1fQ09ORklHX0hFQURFUl9IT09LXSwKKytbIyBDb21wdXRl ICQxJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgorK19hbV9hcmc9JDEKKytfYW1fc3RhbXBf Y291bnQ9MQorK2ZvciBfYW1faGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbworKyAgY2Fz ZSAkX2FtX2hlYWRlciBpbgorKyAgICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQorKyAgICAgIGJy ZWFrIDs7CisrICAgICogKQorKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1w X2NvdW50ICsgMWAgOzsKKysgIGVzYWMKKytkb25lCisrZWNobyAidGltZXN0YW1wIGZvciAkX2Ft X2FyZyIgPmBBU19ESVJOQU1FKFsiJF9hbV9hcmciXSlgL3N0YW1wLWhbXSRfYW1fc3RhbXBfY291 bnRdKQorKworKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEFNX1BS T0dfSU5TVEFMTF9TSAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBEZWZpbmUgJGluc3RhbGxf c2guCisrQUNfREVGVU4oW0FNX1BST0dfSU5TVEFMTF9TSF0sCisrW0FDX1JFUVVJUkUoW0FNX0FV WF9ESVJfRVhQQU5EXSlkbmwKKytpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iXCQoU0hFTEwpICRh bV9hdXhfZGlyL2luc3RhbGwtc2gifQorK0FDX1NVQlNUKGluc3RhbGxfc2gpXSkKKysKKysjIENv cHlyaWdodCAoQykgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr IworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMgorKworKyMgQ2hlY2sgd2hl dGhlciB0aGUgdW5kZXJseWluZyBmaWxlLXN5c3RlbSBzdXBwb3J0cyBmaWxlbmFtZXMKKysjIHdp dGggYSBsZWFkaW5nIGRvdC4gIEZvciBpbnN0YW5jZSBNUy1ET1MgZG9lc24ndC4KKytBQ19ERUZV TihbQU1fU0VUX0xFQURJTkdfRE9UXSwKKytbcm0gLXJmIC50c3QgMj4vZGV2L251bGwKKytta2Rp ciAudHN0IDI+L2Rldi9udWxsCisraWYgdGVzdCAtZCAudHN0OyB0aGVuCisrICBhbV9fbGVhZGlu Z19kb3Q9LgorK2Vsc2UKKysgIGFtX19sZWFkaW5nX2RvdD1fCisrZmkKKytybWRpciAudHN0IDI+ L2Rldi9udWxsCisrQUNfU1VCU1QoW2FtX19sZWFkaW5nX2RvdF0pXSkKKysKKysjIENoZWNrIHRv IHNlZSBob3cgJ21ha2UnIHRyZWF0cyBpbmNsdWRlcy4JICAgICAgICAgICAgLSotIEF1dG9jb25m IC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysj IHNlcmlhbCAzCisrCisrIyBBTV9NQUtFX0lOQ0xVREUoKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0K KysjIENoZWNrIHRvIHNlZSBob3cgbWFrZSB0cmVhdHMgaW5jbHVkZXMuCisrQUNfREVGVU4oW0FN X01BS0VfSU5DTFVERV0sCisrW2FtX21ha2U9JHtNQUtFLW1ha2V9CisrY2F0ID4gY29uZmluYyA8 PCAnRU5EJworK2FtX19kb2l0OgorKwlAZWNobyBkb25lCisrLlBIT05ZOiBhbV9fZG9pdAorK0VO RAorKyMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50 IG91dCB0aGUgY29kZS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNsdWRlIHVz ZWQgYnkgJGFtX21ha2VdKQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1fcmVz dWx0PW5vbmUKKysjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8gImlu Y2x1ZGUgY29uZmluYyIgPiBjb25mbWYKKysjIFdlIGdyZXAgb3V0IGBFbnRlcmluZyBkaXJlY3Rv cnknIGFuZCBgTGVhdmluZyBkaXJlY3RvcnknCisrIyBtZXNzYWdlcyB3aGljaCBjYW4gb2NjdXIg aWYgYHcnIGVuZHMgdXAgaW4gTUFLRUZMQUdTLgorKyMgSW4gcGFydGljdWxhciB3ZSBkb24ndCBs b29rIGF0IGBebWFrZTonIGJlY2F1c2UgR05VIG1ha2UgbWlnaHQKKysjIGJlIGludm9rZWQgdW5k ZXIgc29tZSBvdGhlciBuYW1lICh1c3VhbGx5ICJnbWFrZSIpLCBpbiB3aGljaAorKyMgY2FzZSBp dCBwcmludHMgaXRzIG5ldyBuYW1lIGluc3RlYWQgb2YgYG1ha2UnLgorK2lmIHRlc3QgImAkYW1f bWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsIHwgZ3JlcCAtdiAnaW5nIGRpcmVjdG9yeSdg IiA9ICJkb25lIjsgdGhlbgorKyAgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysgICBhbV9fcXVvdGU9 CisrICAgX2FtX3Jlc3VsdD1HTlUKKytmaQorKyMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBpbmNs dWRlLgorK2lmIHRlc3QgIiRhbV9faW5jbHVkZSIgPSAiIyI7IHRoZW4KKysgICBlY2hvICcuaW5j bHVkZSAiY29uZmluYyInID4gY29uZm1mCisrICAgaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNv bmZtZiAyPiAvZGV2L251bGxgIiA9ICJkb25lIjsgdGhlbgorKyAgICAgIGFtX19pbmNsdWRlPS5p bmNsdWRlCisrICAgICAgYW1fX3F1b3RlPSJcIiIKKysgICAgICBfYW1fcmVzdWx0PUJTRAorKyAg IGZpCisrZmkKKytBQ19TVUJTVChbYW1fX2luY2x1ZGVdKQorK0FDX1NVQlNUKFthbV9fcXVvdGVd KQorK0FDX01TR19SRVNVTFQoWyRfYW1fcmVzdWx0XSkKKytybSAtZiBjb25maW5jIGNvbmZtZgor K10pCisrCisrIyBGYWtlIHRoZSBleGlzdGVuY2Ugb2YgcHJvZ3JhbXMgdGhhdCBHTlUgbWFpbnRh aW5lcnMgdXNlLiAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1CisrIyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA1Cisr CisrIyBBTV9NSVNTSU5HX1BST0coTkFNRSwgUFJPR1JBTSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAorK1tBQ19SRVFVSVJF KFtBTV9NSVNTSU5HX0hBU19SVU5dKQorKyQxPSR7JDEtIiR7YW1fbWlzc2luZ19ydW59JDIifQor K0FDX1NVQlNUKCQxKV0pCisrCisrCisrIyBBTV9NSVNTSU5HX0hBU19SVU4KKysjIC0tLS0tLS0t LS0tLS0tLS0tLQorKyMgRGVmaW5lIE1JU1NJTkcgaWYgbm90IGRlZmluZWQgc28gZmFyIGFuZCB0 ZXN0IGlmIGl0IHN1cHBvcnRzIC0tcnVuLgorKyMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3Npbmdf cnVuIHRvIHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgorK0FDX0RFRlVOKFtBTV9NSVNT SU5HX0hBU19SVU5dLAorK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCisrQUNf UkVRVUlSRV9BVVhfRklMRShbbWlzc2luZ10pZG5sCisrdGVzdCB4IiR7TUlTU0lORytzZXR9IiA9 IHhzZXQgfHwgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCisrIyBVc2Ug ZXZhbCB0byBleHBhbmQgJFNIRUxMCisraWYgZXZhbCAiJE1JU1NJTkcgLS1ydW4gdHJ1ZSI7IHRo ZW4KKysgIGFtX21pc3NpbmdfcnVuPSIkTUlTU0lORyAtLXJ1biAiCisrZWxzZQorKyAgYW1fbWlz c2luZ19ydW49CisrICBBQ19NU0dfV0FSTihbYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9y IG1pc3NpbmddKQorK2ZpCisrXSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9HX01LRElSX1AKKysjIC0tLS0tLS0tLS0tLS0tLQorKyMg Q2hlY2sgZm9yIGBta2RpciAtcCcuCisrQUNfREVGVU4oW0FNX1BST0dfTUtESVJfUF0sCisrW0FD X1BSRVJFUShbMi42MF0pZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19NS0RJUl9QXSlkbmwKKytk bmwgQXV0b21ha2UgMS44IHRvIDEuOS42IHVzZWQgdG8gZGVmaW5lIG1rZGlyX3AuICBXZSBub3cg dXNlIE1LRElSX1AsCisrZG5sIHdoaWxlIGtlZXBpbmcgYSBkZWZpbml0aW9uIG9mIG1rZGlyX3Ag Zm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisrZG5sIEBNS0RJUl9QQCBpcyBtYWdpYzogQUNf T1VUUFVUIGFkanVzdHMgaXRzIHZhbHVlIGZvciBlYWNoIE1ha2VmaWxlLgorK2RubCBIb3dldmVy IHdlIGNhbm5vdCBkZWZpbmUgbWtkaXJfcCBhcyAkKE1LRElSX1ApIGZvciB0aGUgc2FrZSBvZgor K2RubCBNYWtlZmlsZS5pbnMgdGhhdCBkbyBub3QgZGVmaW5lIE1LRElSX1AsIHNvIHdlIGRvIG91 ciBvd24KKytkbmwgYWRqdXN0bWVudCB1c2luZyB0b3BfYnVpbGRkaXIgKHdoaWNoIGlzIGRlZmlu ZWQgbW9yZSBvZnRlbiB0aGFuCisrZG5sIE1LRElSX1ApLgorK0FDX1NVQlNUKFtta2Rpcl9wXSwg WyIkTUtESVJfUCJdKWRubAorK2Nhc2UgJG1rZGlyX3AgaW4KKysgIFtbXFwvJF1dKiB8ID86W1tc XC9dXSopIDs7CisrICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1rZGlyX3AiIDs7 CisrZXNhYworK10pCisrCisrIyBIZWxwZXIgZnVuY3Rpb25zIGZvciBvcHRpb24gaGFuZGxpbmcu ICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChD KSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA0CisrCisrIyBf QU1fTUFOR0xFX09QVElPTihOQU1FKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19E RUZVTihbX0FNX01BTkdMRV9PUFRJT05dLAorK1tbX0FNX09QVElPTl9dbTRfYnBhdHN1YnN0KCQx LCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQorKworKyMgX0FNX1NFVF9PUFRJT04oTkFNRSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2V0IG9wdGlvbiBOQU1FLiAgUHJl c2VudGx5IHRoYXQgb25seSBtZWFucyBkZWZpbmluZyBhIGZsYWcgZm9yIHRoaXMgb3B0aW9uLgor K0FDX0RFRlVOKFtfQU1fU0VUX09QVElPTl0sCisrW200X2RlZmluZShfQU1fTUFOR0xFX09QVElP TihbJDFdKSwgMSldKQorKworKyMgX0FNX1NFVF9PUFRJT05TKE9QVElPTlMpCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPUFRJT05TIGlzIGEgc3BhY2Utc2VwYXJh dGVkIGxpc3Qgb2YgQXV0b21ha2Ugb3B0aW9ucy4KKytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05T XSwKKytbbTRfZm9yZWFjaF93KFtfQU1fT3B0aW9uXSwgWyQxXSwgW19BTV9TRVRfT1BUSU9OKF9B TV9PcHRpb24pXSldKQorKworKyMgX0FNX0lGX09QVElPTihPUFRJT04sIElGLVNFVCwgW0lGLU5P VC1TRVRdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgRXhlY3V0ZSBJRi1TRVQgaWYgT1BUSU9OIGlzIHNldCwgSUYtTk9ULVNFVCBvdGhlcndpc2Uu CisrQUNfREVGVU4oW19BTV9JRl9PUFRJT05dLAorK1ttNF9pZnNldChfQU1fTUFOR0xFX09QVElP TihbJDFdKSwgWyQyXSwgWyQzXSldKQorKworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhl IGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENv cHlyaWdodCAoQykgMTk5NiwgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNQorKyMgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBzZXJpYWwgNAorKworKyMgQU1fU0FOSVRZX0NIRUNLCisrIyAtLS0tLS0tLS0tLS0tLS0KKytB Q19ERUZVTihbQU1fU0FOSVRZX0NIRUNLXSwKKytbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGJ1 aWxkIGVudmlyb25tZW50IGlzIHNhbmVdKQorKyMgSnVzdCBpbiBjYXNlCisrc2xlZXAgMQorK2Vj aG8gdGltZXN0YW1wID4gY29uZnRlc3QuZmlsZQorKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBz byB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKKysjIGFyZ3VtZW50cy4gIE11 c3QgdHJ5IC1MIGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEKKysjIHN5bWxp bms7IHNvbWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5 bWxpbmtzCisrIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGlu aydzIGNvbnRhaW5pbmcKKysjIGRpcmVjdG9yeSkuCisraWYgKAorKyAgIHNldCBYIGBscyAtTHQg JHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCisrICAgaWYgdGVz dCAiJFsqXSIgPSAiWCI7IHRoZW4KKysgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorKyAgICAgIHNl dCBYIGBscyAtdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAorKyAgIGZpCisrICAg cm0gLWYgY29uZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiRbKl0iICE9ICJYICRzcmNkaXIvY29u ZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKKysgICAgICAmJiB0ZXN0ICIkWypdIiAhPSAiWCBjb25m dGVzdC5maWxlICRzcmNkaXIvY29uZmlndXJlIjsgdGhlbgorKworKyAgICAgICMgSWYgbmVpdGhl ciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KKysg ICAgICAjIGlmLCBmb3IgaW5zdGFuY2UsIENPTkZJR19TSEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhl cml0cyBhCisrICAgICAgIyBicm9rZW4gbHMgYWxpYXMgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBU aGlzIGhhcyBhY3R1YWxseQorKyAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxk IG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KKysgICAgICBBQ19NU0dfRVJST1IoW2xzIC10IGFw cGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KKythbGlhcyBp biB5b3VyIGVudmlyb25tZW50XSkKKysgICBmaQorKworKyAgIHRlc3QgIiRbMl0iID0gY29uZnRl c3QuZmlsZQorKyAgICkKKyt0aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAgIEFDX01T R19FUlJPUihbbmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmls ZXMhCisrQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2tdKQorK2ZpCisrQUNfTVNHX1JFU1VMVCh5ZXMp XSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9H X0lOU1RBTExfU1RSSVAKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT25lIGlzc3VlIHdp dGggdmVuZG9yIGBpbnN0YWxsJyAoZXZlbiBHTlUpIGlzIHRoYXQgeW91IGNhbid0CisrIyBzcGVj aWZ5IHRoZSBwcm9ncmFtIHVzZWQgdG8gc3RyaXAgYmluYXJpZXMuICBUaGlzIGlzIGVzcGVjaWFs bHkKKysjIGFubm95aW5nIGluIGNyb3NzLWNvbXBpbGluZyBlbnZpcm9ubWVudHMsIHdoZXJlIHRo ZSBidWlsZCdzIHN0cmlwCisrIyBpcyB1bmxpa2VseSB0byBoYW5kbGUgdGhlIGhvc3QncyBiaW5h cmllcy4KKysjIEZvcnR1bmF0ZWx5IGluc3RhbGwtc2ggd2lsbCBob25vciBhIFNUUklQUFJPRyB2 YXJpYWJsZSwgc28gd2UKKysjIGFsd2F5cyB1c2UgaW5zdGFsbC1zaCBpbiBgbWFrZSBpbnN0YWxs LXN0cmlwJywgYW5kIGluaXRpYWxpemUKKysjIFNUUklQUFJPRyB3aXRoIHRoZSB2YWx1ZSBvZiB0 aGUgU1RSSVAgdmFyaWFibGUgKHNldCBieSB0aGUgdXNlcikuCisrQUNfREVGVU4oW0FNX1BST0df SU5TVEFMTF9TVFJJUF0sCisrW0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TSF0pZG5sCisr IyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3 aGVuIHRoZSB1c2VyCisrIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVyIGBzdHJp cCcgbWlnaHQgbm90IGJlIHRoZSByaWdodAorKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGls YXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKKysjIHdpbGwgaG9ub3IgdGhl IGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgor K2RubCBEb24ndCB0ZXN0IGZvciAkY3Jvc3NfY29tcGlsaW5nID0geWVzLCBiZWNhdXNlIGl0IG1p Z2h0IGJlIGBtYXliZScuCisraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4K KysgIEFDX0NIRUNLX1RPT0woW1NUUklQXSwgW3N0cmlwXSwgOikKKytmaQorK0lOU1RBTExfU1RS SVBfUFJPR1JBTT0iXCQoaW5zdGFsbF9zaCkgLWMgLXMiCisrQUNfU1VCU1QoW0lOU1RBTExfU1RS SVBfUFJPR1JBTV0pXSkKKysKKysjIENvcHlyaWdodCAoQykgMjAwNiAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBfQU1fU1VC U1RfTk9UTUFLRShWQVJJQUJMRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg UHJldmVudCBBdXRvbWFrZSBmcm9tIG91dHB1dHRpbmcgVkFSSUFCTEUgPSBAVkFSSUFCTEVAIGlu IE1ha2VmaWxlLmluLgorKyMgVGhpcyBtYWNybyBpcyB0cmFjZWQgYnkgQXV0b21ha2UuCisrQUNf REVGVU4oW19BTV9TVUJTVF9OT1RNQUtFXSkKKysKKysjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0 YXJiYWxsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisr IyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDIKKysKKysjIF9BTV9Q Uk9HX1RBUihGT1JNQVQpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgaG93IHRv IGNyZWF0ZSBhIHRhcmJhbGwgaW4gZm9ybWF0IEZPUk1BVC4KKysjIEZPUk1BVCBzaG91bGQgYmUg b25lIG9mIGB2NycsIGB1c3RhcicsIG9yIGBwYXgnLgorKyMKKysjIFN1YnN0aXR1dGUgYSB2YXJp YWJsZSAkKGFtX190YXIpIHRoYXQgaXMgYSBjb21tYW5kCisrIyB3cml0aW5nIHRvIHN0ZG91dCBh IEZPUk1BVC10YXJiYWxsIGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeQorKyMgJHRhcmRpci4KKysj ICAgICB0YXJkaXI9ZGlyZWN0b3J5ICYmICQoYW1fX3RhcikgPiByZXN1bHQudGFyCisrIworKyMg U3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAorKyMg YSB0YXJiYWxsIHJlYWQgZnJvbSBzdGRpbi4KKysjICAgICAkKGFtX191bnRhcikgPCByZXN1bHQu dGFyCisrQUNfREVGVU4oW19BTV9QUk9HX1RBUl0sCisrWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBm b3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKytBTV9NSVNTSU5HX1BST0coW0FNVEFSXSwgW3Rh cl0pCisrbTRfaWYoWyQxXSwgW3Y3XSwKKysgICAgIFthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0g IiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLSddLAorKyAgICAgW200X2Nhc2Uo WyQxXSwgW3VzdGFyXSwsIFtwYXhdLCwKKysgICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93 biB0YXIgZm9ybWF0XSldKQorK0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNyZWF0ZSBhICQxIHRh ciBhcmNoaXZlXSkKKysjIExvb3Agb3ZlciBhbGwga25vd24gbWV0aG9kcyB0byBjcmVhdGUgYSB0 YXIgYXJjaGl2ZSB1bnRpbCBvbmUgd29ya3MuCisrX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQx XSwgW3VzdGFyXSwgW3BsYWludGFyXSkgcGF4IGNwaW8gbm9uZScKKytfYW1fdG9vbHM9JHthbV9j dl9wcm9nX3Rhcl8kMS0kX2FtX3Rvb2xzfQorKyMgRG8gbm90IGZvbGQgdGhlIGFib3ZlIHR3byBs aW5lIGludG8gb25lLCBiZWNhdXNlIFRydTY0IHNoIGFuZAorKyMgU29sYXJpcyBzaCB3aWxsIG5v dCBncm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9mIGAtJy4KKytmb3IgX2FtX3Rvb2wgaW4gJF9hbV90 b29scworK2RvCisrICBjYXNlICRfYW1fdG9vbCBpbgorKyAgZ251dGFyKQorKyAgICBmb3IgX2Ft X3RhciBpbiB0YXIgZ251dGFyIGd0YXI7CisrICAgIGRvCisrICAgICAgQU1fUlVOX0xPRyhbJF9h bV90YXIgLS12ZXJzaW9uXSkgJiYgYnJlYWsKKysgICAgZG9uZQorKyAgICBhbV9fdGFyPSIkX2Ft X3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICIn IiQkdGFyZGlyIicKKysgICAgYW1fX3Rhcl89IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0s IFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJHRhcmRpciInCisrICAgIGFtX191bnRh cj0iJF9hbV90YXIgLXhmIC0iCisrICAgIDs7CisrICBwbGFpbnRhcikKKysgICAgIyBNdXN0IHNr aXAgR05VIHRhcjogaWYgaXQgZG9lcyBub3Qgc3VwcG9ydCAtLWZvcm1hdD0gaXQgZG9lc24ndCBj cmVhdGUKKysgICAgIyB1c3RhciB0YXJiYWxsIGVpdGhlci4KKysgICAgKHRhciAtLXZlcnNpb24p ID4vZGV2L251bGwgMj4mMSAmJiBjb250aW51ZQorKyAgICBhbV9fdGFyPSd0YXIgY2hmIC0gIiQk dGFyZGlyIicKKysgICAgYW1fX3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciInCisrICAgIGFtX191 bnRhcj0ndGFyIHhmIC0nCisrICAgIDs7CisrICBwYXgpCisrICAgIGFtX190YXI9J3BheCAtTCAt eCAkMSAtdyAiJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0ncGF4IC1MIC14ICQxIC13ICIkdGFy ZGlyIicKKysgICAgYW1fX3VudGFyPSdwYXggLXInCisrICAgIDs7CisrICBjcGlvKQorKyAgICBh bV9fdGFyPSdmaW5kICIkJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKysgICAg YW1fX3Rhcl89J2ZpbmQgIiR0YXJkaXIiIC1wcmludCB8IGNwaW8gLW8gLUggJDEgLUwnCisrICAg IGFtX191bnRhcj0nY3BpbyAtaSAtSCAkMSAtZCcKKysgICAgOzsKKysgIG5vbmUpCisrICAgIGFt X190YXI9ZmFsc2UKKysgICAgYW1fX3Rhcl89ZmFsc2UKKysgICAgYW1fX3VudGFyPWZhbHNlCisr ICAgIDs7CisrICBlc2FjCisrCisrICAjIElmIHRoZSB2YWx1ZSB3YXMgY2FjaGVkLCBzdG9wIG5v dy4gIFdlIGp1c3Qgd2FudGVkIHRvIGhhdmUgYW1fX3RhcgorKyAgIyBhbmQgYW1fX3VudGFyIHNl dC4KKysgIHRlc3QgLW4gIiR7YW1fY3ZfcHJvZ190YXJfJDF9IiAmJiBicmVhaworKworKyAgIyB0 YXIvdW50YXIgYSBkdW1teSBkaXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtz CisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrICBta2RpciBjb25mdGVzdC5kaXIKKysgIGVjaG8g R3JlcE1lID4gY29uZnRlc3QuZGlyL2ZpbGUKKysgIEFNX1JVTl9MT0coW3RhcmRpcj1jb25mdGVz dC5kaXIgJiYgZXZhbCAkYW1fX3Rhcl8gPmNvbmZ0ZXN0LnRhcl0pCisrICBybSAtcmYgY29uZnRl c3QuZGlyCisrICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgorKyAgICBBTV9SVU5fTE9H KFskYW1fX3VudGFyIDxjb25mdGVzdC50YXJdKQorKyAgICBncmVwIEdyZXBNZSBjb25mdGVzdC5k aXIvZmlsZSA+L2Rldi9udWxsIDI+JjEgJiYgYnJlYWsKKysgIGZpCisrZG9uZQorK3JtIC1yZiBj b25mdGVzdC5kaXIKKysKKytBQ19DQUNIRV9WQUwoW2FtX2N2X3Byb2dfdGFyXyQxXSwgW2FtX2N2 X3Byb2dfdGFyXyQxPSRfYW1fdG9vbF0pCisrQUNfTVNHX1JFU1VMVChbJGFtX2N2X3Byb2dfdGFy XyQxXSldKQorK0FDX1NVQlNUKFthbV9fdGFyXSkKKytBQ19TVUJTVChbYW1fX3VudGFyXSkKKytd KSAjIF9BTV9QUk9HX1RBUgorKworK200X2luY2x1ZGUoW2NvbmZpZy9heF9ib29zdC5tNF0pCisr bTRfaW5jbHVkZShbY29uZmlnL2F4X215c3FsLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhf b3JhY2xlX29jaS5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2F4X3Bvc3RncmVzcWwubTRdKQor K200X2luY2x1ZGUoW2NvbmZpZy9jcHB1bml0Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvbGli dG9vbC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0b3B0aW9ucy5tNF0pCisrbTRfaW5jbHVk ZShbY29uZmlnL2x0c3VnYXIubTRdKQorK200X2luY2x1ZGUoW2NvbmZpZy9sdHZlcnNpb24ubTRd KQorK200X2luY2x1ZGUoW2NvbmZpZy9sdH5vYnNvbGV0ZS5tNF0pCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svQVVUSE9SUyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUworLS0tIHNvY2kt My4wLjBfNC1wYWNrL0FVVEhPUlMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSw5IEBACisrCisrRGF2aWQgQ291cnRuZXksIERldmVsb3Bl ciwgZGFjb3VydG5leSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytNYXRldXN6IExvc2tvdCwg RGV2ZWxvcGVyLCBtbG9za290IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK01hY2llaiBTb2Jj emFrLCBBZG1pbiBQcm9qZWN0IE1hbmFnZXIsIG1zb2JjemFrIGF0IHVzZXJzLnNvdXJjZWZvcmdl Lm5ldAorK1Bhd2VsIEFsZWtzYW5kZXIgRmVkb3J5bnNraSwgRGV2ZWxvcGVyLCBwZmVkb3IgYXQg dXNlcnMuc291cmNlZm9yZ2UubmV0CisrUmFmYWwgQm9icm93c2tpLCBEZXZlbG9wZXIsIHJib2Jy byBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytKZWFuLU1hcmMsIERldmVsb3Blciwgc2lkanRh bCBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytTdGVwaGVuIEh1dHRvbiwgRGV2ZWxvcGVyLCBz dGVwaGVuaHV0dG9uIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorKworZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9N YWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1 aWxkL01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDcgQEAKKysjIyBidWlsZCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytTVUJESVJTID0gdW5peCBtc3ZjODAKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUu aW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtl ZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1 NDYgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBN YWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7 IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VA CisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAor K3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNs dWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQ QVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAt YyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFs bF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RB TExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFM X0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1B TF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoK KytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1Rf Q09NTU9OID0gUkVBRE1FICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUu aW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxkCisr QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGli dG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZl cnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxf bTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytt a2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9i dWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9 CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hl Y2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vy c2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwt aW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1 cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3Rh bGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFs bC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vy c2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9T VUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9T T1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAor K0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBA QVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisr Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZM QUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9 IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZM QUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9 IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAor K0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19U QAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBA CisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisr R1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisr TElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xA CisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpT QAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFH U0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAor K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RP T0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxA CisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisr U0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA CisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr bHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSB1bml4IG1z dmM4MAorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFr ZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAg ICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVs c2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1 aWxkL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtF KSAtLWdudSAgYnVpbGQvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6 ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlA Y2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAq KSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQ RU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxp YnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3Vi ZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0 aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgor KyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBl ZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25m aWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVz ZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwor KyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBj b21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEn OyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisr CSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsg XAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVj aG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1 YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90 X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVs c2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAor KwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2Vl biIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQt YW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZF X0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4t KiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAg KikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsg ZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7 IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcg JCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisr CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwg ZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1 cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAor KwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsg XAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19G SUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkg IGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6 IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lF UykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7 IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwg Mj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAg ZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBc CisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7 IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICB0YWdz PSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBm aTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdz JCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlx dWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NG TEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytj dGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRh Z3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisr CSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwK KysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19B UkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1f X2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBc CisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFn czoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytk aXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmls ZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNk aXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkg ICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVs c2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAk JGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZp OyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkg ICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAi JChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBkaXN0ZGly PWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRpcj1gJChh bV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRpciAmJiBc CisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRp cj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRp ciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7 IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisr YWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytp bnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhl YzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJl Y3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06 IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2lu c3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xl YW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZv ciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5 IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRB SU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFu OiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisr CS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVy aWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06Cisr CisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2lu Zm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2 aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJz aXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNo ZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl CisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVj dXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczog cHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFt IFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNr IGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0 YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4t bGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwt YW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0 YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJ aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZv IFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRm LWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNo ZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50 YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9z dGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBw cy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKwor K0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01h a2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDExIEBACisrIyMgYnVpbGQvbXN2YzgwL2RsbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVz dC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZj cHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNw cm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52 Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2Ri Y190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJ ZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNv Y2lfZGxsLnZzcHJvcHMKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAv ZGxsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2Vm aWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5p bgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM5NCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1 dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxB UiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRp ciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdF QAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENE UEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxs X3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9 ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMK KytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoK KytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxM ID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9z dF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K KytzdWJkaXIgPSBidWlsZC9tc3ZjODAvZGxsCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rpcikv YWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NP TkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAK KytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVU T01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNf TElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9 IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQ ID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1V VElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9 IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQg PSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElO U1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAor K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBA TERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0g QExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExO X1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytN S0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNR TF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytN WVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9W RVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpE VU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisr T1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZM QUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xF X09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQ QUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBP UlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQ QUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BB Q0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFU SF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisr UE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJT ID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9M REZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFO TElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VE QAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVS U19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBT VFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZF UlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFi c19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190 b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2Fj X2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAor K2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVh ZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJA CisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0g QGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWls ZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3Zl bmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0 YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9 IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJA CisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisr Z3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlh c0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92 ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIg PSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0 YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGli ZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxz dGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIg PSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGlu Y2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dy YW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBw c2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRz dGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZk aXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9i dWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1 aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0 b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5t YWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJv aiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9q IG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3By b2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190 ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1w dHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lf ZGxsLnZzcHJvcHMKKysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2Rpcikv TWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisr CSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisr CSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7 IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisr CWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUg IGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAor KwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCisrLlBSRUNJ T1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNh YzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJ LXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisr dGFnczogVEFHUworK1RBR1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisrCisrZGlz dGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQo dG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSck KERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBl Y2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIg XAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJg OyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8g IiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtz LC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3Ig ZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0 IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVz dCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQg LWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUg JiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGly KS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAg IGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNl IFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsg XAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2FsbC1hbTog TWFrZWZpbGUKKytpbnN0YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQorK3Vu aW5zdGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5z dGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg XAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNU QUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAg ZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwK Kyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFu LWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYg JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFu OiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tZ2VuZXJpYworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0 bWw6IGh0bWwtYW0KKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxs LWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1l eGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjog aW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFs bGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJ LXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKwor K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK KysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToK KysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAor KworKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFu LWxpYnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQor KworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2Ug dG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0 IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAu MF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGli L01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDExIEBACisrIyMgYnVpbGQvbXN2YzgwL2xpYiBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtl dGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0 LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3Qu dmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNx bC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJ b2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwK KysJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9q IHNvY2lfbGliLnZzcHJvcHMKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3Zj ODAvbGliL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01h a2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmls ZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM5NCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9p bnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5p biBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRv IHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElD VUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0 YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNL QUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9 IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0 YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JB TSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkg LWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9 IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNU QUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisr aG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAvbGliCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rp cikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0 Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2Ft X19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQ RU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxs X3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAor K0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNU RklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRS QV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBB UkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisr QVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK KytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05B TFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1Rf VEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisr Qk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytD QyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisr Q1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBD UFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBV TklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZF UlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBA Q1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFU SF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERT WU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9f TiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVF WFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9O ID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0g QElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dS QU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBU QAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQg PSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJT ID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0g QExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AK KytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytN WVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AK KytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBP QkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA CisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisr UkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190 YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxk ID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisr ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2Rp ciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlk aXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisr bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5k aXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9s ZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3By b2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9 IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFy ZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2Nv bmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3Rv cF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9w X2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1J JCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVz dC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZj cHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNw cm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52 Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2Ri Y190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9saWIuc2xuIFwKKysJ ZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNv Y2lfbGliLnZzcHJvcHMKKysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2Rp cikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBc CisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBc CisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0 IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYg XAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlCisrLlBS RUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5z dGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJ ZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000 KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoK KysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJz CisrdGFnczogVEFHUworK1RBR1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisrCisr ZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3Jj ZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJ ICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBl bHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAg JCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBm aTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2FsbC1h bTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQor K3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisr aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJ TlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkg ICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3Rh bGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNs ZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJ QGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgor KwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMg dG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0g LWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1h bTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNs ZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVh bi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKwor K2h0bWw6IGh0bWwtYW0KKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0 YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFs bC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFs bC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0K KysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQor KworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1h bToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJp cAorKworKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGlu c3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGlu c3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1h bQorKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0J MjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOCBAQAorKyMj IGJ1aWxkL21zdmM4MCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytF WFRSQV9ESVNUID0gUkVBRE1FLnR4dCBzb2NpLnZzcHJvcHMKKysKKytTVUJESVJTID0gZGxsIGxp YgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAu MF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmls ZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1NDcg QEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtl ZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdp dGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisr VlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRI X1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAt bSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9z aF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExf REFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lO U1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9V TklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKyti dWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09N TU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQvbXN2YzgwCisrQUNM T0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMg PSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9v bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNp b24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2lu c3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWls ZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9Cisr RElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2st cmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2 ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5m by1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNp dmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxk aXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1y ZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FN VEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9I RUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdL QAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9 IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJ TEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJ QkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09T VF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpB VElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9P U1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJ T04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf V1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVA CisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdT QAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0g QENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5J VF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBD WFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdT QAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBE RVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VD SE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAor K0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisr R0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JF UCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFM TF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9T Q1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RB TExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElC T0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisr TElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAor K01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxB R1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlT UUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AK KytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0g QE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFD TEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJ X0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09S QUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xA CisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JV R1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9O QU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFN RSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lP TkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisr UEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FM X0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVT UUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0g QFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0g QFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hF TEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVE QAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklF REAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9B RF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1 aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0g QGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisr YWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9E VU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisr YW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1 b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2Jp bmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRf YWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AK KytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAor K2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZm X29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHln ZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVj X3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RA CisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hv c3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGly ID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5m b2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tA CisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxl ZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRf RUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9w QAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAor K3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytz ZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3Ny Y2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisr TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1QgPSBSRUFETUUu dHh0IHNvY2kudnNwcm9wcworK1NVQkRJUlMgPSBkbGwgbGliCisrYWxsOiBhbGwtcmVjdXJzaXZl CisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVw cykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVw cyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYg eyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAg ICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bf c3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlJzsgXAor KwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2 YzgwL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBp biBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAg ZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9z dGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwkt cm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVz IGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVu IGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5n ZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtl ZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycs IGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2Vm aWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhl cndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5l LgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2Vk IHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsg XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsg dGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0 IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsg ZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAg KmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRv dF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFp bmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQo U1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkg ICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0i JCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAor Kwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWls Y29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQor KworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgk KEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g XAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0u OyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5 X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQk aW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9u ZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkg IGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRB R1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdT CisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChD VEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkg ICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3Bf YnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0 YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAt ZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChE SVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUg JChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAk JGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAg IHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAk KGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25l CisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2Qp ICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRv cF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rp c3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFt X19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAg ICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFr ZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMt YW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1 bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K KysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlw OgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6 CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVj dXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHlj bGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFr ZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVh bi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0 bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKwor K2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZl CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysK KyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYg TWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKwor K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK KysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2 ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3Rh bGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBj bGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNp dmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWlu c3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWlu c3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFu IFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdl bmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0 YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VA CisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQv dW5peC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZp bGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIwLjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9y eQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9z dGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wg Ll9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorKworK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBi dWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRl cnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVz cWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgky MDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzOTQgQEAKKysj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5h bS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQK KysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEgg PSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRp ciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9A UEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFS QVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQK KytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJ UFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkK Kyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwg PSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RB TEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0g JChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQvdW5peAorK0FDTE9DQUxfTTQg PSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9t eXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQo Q09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09V UkNFUyA9CisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVY SU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1U QVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBB VVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1Rf Q0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RB VEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9M SUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NU X0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJ QkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAK KytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURf TElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIg PSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09T VF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpB VElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1Mg PSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5J VF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9D T05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04g PSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytD WFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFU SF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytE U1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVD SE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBA RUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJ QlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBA CisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisr SU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJ TlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9Q Uk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJ Qk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJ UE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8g PSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNR TF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0g QE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZF UlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAor K09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0g QE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAor K09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9W RVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0 ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0g QFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFD S0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tB R0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhf U0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcg PSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAor K1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdT ID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNR TF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVB U0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVM TEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRA CisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisr YWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9i dWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9 IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBA YWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGlu Z19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1f X3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJp bmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKyti dWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3Zl bmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9 IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlm Zl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytk dmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0g QGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2Fs aWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBo b3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRp ckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2lu c3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIg PSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9j YWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0 X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5j bHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0g QHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25h bWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBz ZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNy Y2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdl dF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1 aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1f Q1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9z dGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wg Ll9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWls ZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMu dGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwu dGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkp CisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQo YW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCAp IFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFr OyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC91bml4 L01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAt LWdudSAgYnVpbGQvdW5peC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmls ZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkg ICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19E RVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMp CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4t bGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK3RhZ3M6IFRBR1MKKytUQUdTOgorKwor K2N0YWdzOiBDVEFHUworK0NUQUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisr CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkg ICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc CisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAor KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRp ciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlz dGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZp bGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBh bGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6 CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisr aW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQor KworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNr LWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJ ICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9F TlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoK KysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAi JChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysK KyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50 ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMg dGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAi JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMp CisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGli dG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAt ZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysK Kytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraW5mbzog aW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisr CisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5z dGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysK Kyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytw ZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKwor Ky5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0g Y2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlz dGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwK KysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwK KysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1h bSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwt aHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5z dGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5z dGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMg bWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVh biBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFt IHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2F4X2Jvb3N0Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9vc3QubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X2Jv b3N0Lm00CTIwMDktMDUtMjIgMjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUz NCBAQAorK2RubCBAc3lub3BzaXMgQVhfQk9PU1QoW01JTklNVU0tVkVSU0lPTl0sIFtBQ1RJT04t SUYtRk9VTkRdLCBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCisrZG5sCisrZG5sIFRlc3QgZm9yIHRo ZSBCb29zdCBDKysgbGlicmFyaWVzIG9mIGEgcGFydGljdWxhciB2ZXJzaW9uIChvciBuZXdlcikK KytkbmwKKytkbmwgSWYgbm8gcGF0aCB0byB0aGUgaW5zdGFsbGVkIGJvb3N0IGxpYnJhcnkgaXMg Z2l2ZW4gdGhlIG1hY3JvCisrZG5sIHNlYXJjaHMgdW5kZXIgL3VzciwgL3Vzci9sb2NhbCwgYW5k IC9vcHQsIGFuZCBldmFsdWF0ZXMgdGhlCisrZG5sICRCT09TVF9ST09UIGVudmlyb25tZW50IHZh cmlhYmxlLgorK2RubAorK2RubCBUaGlzIG1hY3JvIGNhbGxzOgorK2RubAorK2RubCAgIEFDX1NV QlNUKEJPT1NUX0NGTEFHUykgLyBBQ19TVUJTVChCT09TVF9MSUJTKQorK2RubCAgIEFDX1NVQlNU KEJPT1NUX0ZJTEVTWVNURU1fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKKytkbmwgICBBQ19T VUJTVChCT09TVF9JT1NUUkVBTVNfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NFUklBTEla QVRJT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikKKytk bmwgICBBQ19TVUJTVChCT09TVF9TSUdOQUxTX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9E QVRFX1RJTUVfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikKKytkbmwgICBB Q19TVUJTVChCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQikKKytkbmwKKytkbmwgQW5kIHNl dHM6CisrZG5sCisrZG5sICAgSEFWRV9CT09TVAorK2RubCAgIEhBVkVfQk9PU1RfRklMRVNZU1RF TQorK2RubCAgIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TCisrZG5sICAgSEFWRV9CT09TVF9U SFJFQUQKKytkbmwgICBIQVZFX0JPT1NUX0lPU1RSRUFNUworK2RubCAgIEhBVkVfQk9PU1RfU0VS SUFMSVpBVElPTgorK2RubCAgIEhBVkVfQk9PU1RfU0lHTkFMUworK2RubCAgIEhBVkVfQk9PU1Rf REFURV9USU1FCisrZG5sICAgSEFWRV9CT09TVF9SRUdFWAorK2RubCAgIEhBVkVfQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SSworK2RubAorK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMK KytkbmwgQGF1dGhvciBUaG9tYXMgUG9yc2NoYmVyZyA8dGhvbWFzQHJhbmRzcHJpbmdlci5kZT4K KytkbmwgQHZlcnNpb24gMjAwNi0wMS0wMgorK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisr CisrQUNfREVGVU4oW0FYX0JPT1NUXSwKKytbCisrICAgIEFDX0FSR19XSVRIKFtib29zdF0sCisr ICAgICAgICAgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtYm9vc3Q9RElSXSwKKysgICAg ICAgICAgICAgICAgW3VzZSBib29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290 IGRpcmVjdG9yeSBmb3IgYm9vc3QgbGlicmFyeSAob3B0aW9uYWwpXSksCisrICAgICAgICAgICAg ICAgIFsKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgor KwkJICAgICAgICAgICAgd2FudF9ib29zdD0ibm8iCisrICAgICAgICAgICAgICAgIGVsaWYgdGVz dCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIHdhbnRfYm9v c3Q9InllcyIKKysgICAgICAgICAgICAgICAgICAgIGFjX2Jvb3N0X3BhdGg9IiIKKysgICAgICAg ICAgICAgICAgZWxzZQorKwkJCSAgICAgICAgd2FudF9ib29zdD0ieWVzIgorKyAgICAgICAgICAg IAkJYWNfYm9vc3RfcGF0aD0iJHdpdGh2YWwiCisrCQkgICAgICAgIGZpCisrICAgICAgICAgICAg CV0sCisrICAgICAgICAgICAgICAgIFt3YW50X2Jvb3N0PSJ5ZXMiXSkKKysKKysjICAgIEFDX0NB Tk9OSUNBTF9CVUlMRAorK0JPT1NUX01EV19WRVJTSU9OPSIxLTMzLTEiCisrQk9PU1RMSUJfTURX X1ZFUlNJT049IjFfMzNfMSIKKysKKysJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsg dGhlbgorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCAsMS4yMC4wLCQxKQor KwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9u X3JlcSA6ICdcKFtbMC05XV0qXC5bWzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3Jl cV9tYWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCisr CQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3Jl cSA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9z dWJfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTld XSpcLlwoW1swLTldXSpcKSdgCisrCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9z dWJfbWlub3IiID0gIngiIDsgdGhlbgorKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlu b3I9IjAiCisrICAgIAlmaQorKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJf dmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21p bm9yIFwqIDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKKysJCUFDX01T R19DSEVDS0lORyhmb3IgYm9vc3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSkKKysJCXN1 Y2NlZWRlZD1ubworKworKwkJZG5sIGZpcnN0IHdlIGNoZWNrIHRoZSBzeXN0ZW0gbG9jYXRpb24g Zm9yIGJvb3N0IGxpYnJhcmllcworKwkJZG5sIHRoaXMgbG9jYXRpb24gaXMgY2hvc2VuIGlmIGJv b3N0IGxpYnJhcmllcyBhcmUgaW5zdGFsbGVkIAorKwkJZG5sIHdpdGggdGhlIC0tbGF5b3V0PXN5 c3RlbSBvcHRpb24KKysJCWRubCBvciBpZiB5b3UgaW5zdGFsbCBib29zdCB3aXRoIFJQTQorKwkJ aWYgdGVzdCAtZCAvbGliNjQ7IHRoZW4KKysJCQlCT09TVF9MSUJESVJUWVBFPSJsaWI2NCIKKysJ CWVsc2UKKysJCQlCT09TVF9MSUJESVJUWVBFPSJsaWIiCisrCQlmaQorKwkJaWYgdGVzdCAiJGFj X2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCisrCQkJaWYgdGVzdCAiJEJPT1NUX0xJQkRJUlRZUEUi ID09ICJsaWI2NCI7IHRoZW4KKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NU X0xJQkRJUlRZUEUiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBF IjsgdGhlbgorKwkgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8k Qk9PU1RfTElCRElSVFlQRSIKKysJCQkJZWxzZQorKyAgICAgICAgICAgICAgICAgICAgQk9PU1Rf TElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIiCisrCQkJCWZpCisrCQkJZWxzZQorKwkJCQlCT09T VF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJCQlmaQorKwkJCUJPT1NUX0NGTEFHUz0i LUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlIgorKwkJZWxzZQorKwkJCWZvciBhY19ib29zdF9wYXRo X3RtcCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCAvbmFzdG9vbHMvYm9vc3QgOyBkbworKwkJCQlp ZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIgJiYgdGVzdCAtciAi JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiOyB0aGVuCisrCQkJCQlCT09TVF9MSUJT PSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NG TEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZSIKKysJCQkJCWJyZWFrOworKwkJCQlm aQorKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9P U1RfTURXX1ZFUlNJT04vYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNs dWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCI7IHRoZW4KKysJCQkJCUJPT1NUX0xJ QlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJQk9PU1Rf Q0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVS U0lPTiIKKysJCQkKKysJCQkJCWRubCBIYWNrIGZvciB3cm9uZ2x5IGluc3RhbGxlZCBCb29zdCBs aWJyYXJpZXMgKEFNRDY0IGxpYnJhcmllcyBpbnN0YWxsZWQgaW4gYm9vc3QvbGliIGRpcmVjdG9y eSkKKysJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3QgLXIg IiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1w L2xpYjY0IjsgdGhlbgorKwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xp YiIKKysJCQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElCUyIKKysJCQkJCWZpCisrCQkJCQlicmVh azsKKysJCQkJZmkKKysJCQlkb25lCisrCQlmaQorKworKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBG TEFHUyIKKysJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKKysJCWV4cG9ydCBD UFBGTEFHUworKworKwkJTERGTEFHU19TQVZFRD0iJExERkxBR1MiCisrCQlMREZMQUdTPSIkTERG TEFHUyAkQk9PU1RfTElCUyIKKysJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJQUNfVFJZX0NP TVBJTEUoCisrICAgICAgIAlbCisrQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgorK10s CisrICAgICAgIFsKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisr Ly8gRXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlz IHRvbyBvbGQKKysjZW5kaWYKKysKKysJCV0sCisrICAgIAlbCisrICAgICAgICAgQUNfTVNHX1JF U1VMVCh5ZXMpCisrCQkgc3VjY2VlZGVkPXllcworKwkJIGZvdW5kX3N5c3RlbT15ZXMKKysgICAg ICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQorKyAgICAgICBdLAorKyAgICAgICBbCisrICAg ICAgIF0pCisrCisrCQlkbmwgaWYgd2UgZm91bmQgbm8gYm9vc3Qgd2l0aCBzeXN0ZW0gbGF5b3V0 IHdlIHNlYXJjaCBmb3IgYm9vc3QgbGlicmFyaWVzCisrCQlkbmwgYnVpbHQgYW5kIGluc3RhbGxl ZCB3aXRob3V0IHRoZSAtLWxheW91dD1zeXN0ZW0gb3B0aW9uIG9yIGZvciBhIHN0YWdlZChub3Qg aW5zdGFsbGVkKSB2ZXJzaW9uCisrCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIgIT0gInh5ZXMiOyB0 aGVuCisrCQkJX3ZlcnNpb249MAorKwkJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsg dGhlbgorKyAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09T VF9MSUJESVJUWVBFIgorKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAt ciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCisrCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0 X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQlfdmVyc2lvbl90 bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRl XC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNp b25fdG1wIFw+ICRfdmVyc2lvbmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0 aGVuCisrCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQlmaQorKwkJCQkJCVZF UlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAorKwkJCQkJ CUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VO REVSU0NPUkUiCisrCQkJCQlkb25lCisrCQkJCWZpCisrCQkJZWxzZQorKwkJCQlmb3IgYWNfYm9v c3RfcGF0aCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCA7IGRvCisrCQkJCQlpZiB0ZXN0IC1kICIk YWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCisrCQkJCQkJ Zm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVs bGA7IGRvCisrCQkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3Rf cGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKKysJ CQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKKysJCQkJCQkJ aWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQkJX3ZlcnNpb249JF92ZXJz aW9uX3RtcAorKwkJCQkJCQkJYmVzdF9wYXRoPSRhY19ib29zdF9wYXRoCisrCQkJCQkJCWZpCisr CQkJCQkJZG9uZQorKwkJCQkJZmkKKysJCQkJZG9uZQorKworKwkJCQlWRVJTSU9OX1VOREVSU0NP UkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJQk9PU1RfQ0ZMQUdTPSIt SSRiZXN0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgorKwkJCQlCT09T VF9MSUJTPSItTCRiZXN0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCisrCSAgICAJCWlmIHRl c3QgIngkQk9PU1RfUk9PVCIgIT0gIngiOyB0aGVuCisrCQkJCQlpZiB0ZXN0IC1kICIkQk9PU1Rf Uk9PVCIgJiYgdGVzdCAtciAiJEJPT1NUX1JPT1QiOyB0aGVuCisrCQkJCQkJdmVyc2lvbl9kaXI9 YGV4cHIgLy8kQk9PU1RfUk9PVCA6ICcuKi9cKC4qXCknYAorKwkJCQkJCXN0YWdlX3ZlcnNpb249 YGVjaG8gJHZlcnNpb25fZGlyIHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNlZCAncy9fLy4vZydgCisr CQkJCQkJc3RhZ2VfdmVyc2lvbl9zaG9ydGVuPWBleHByICRzdGFnZV92ZXJzaW9uIDogJ1woW1sw LTldXSpcLltbMC05XV0qXCknYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25f c2hvcnRlbiBcPlw9ICRfdmVyc2lvbmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIg OyB0aGVuCisrCQkJCQkJCUFDX01TR19OT1RJQ0UoV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3Qg bGlicmFyeSBmcm9tICRCT09TVF9ST09UKQorKwkJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJEJPT1NU X1JPT1QiCisrCQkJCQkJCUJPT1NUX0xJQlM9Ii1MJEJPT1NUX1JPT1Qvc3RhZ2UvJEJPT1NUX0xJ QkRJUlRZUEUiCisrCQkJCQkJZmkKKysJCQkJCWZpCisrCSAgICAJCWZpCisrCQkJZmkKKysKKysJ CQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisrCQkJZXhwb3J0IENQUEZMQUdT CisrCQkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisrCQkJZXhwb3J0IExERkxBR1MK KysKKysgICAgIAkJQUNfVFJZX0NPTVBJTEUoCisrICAgICAgIAkJWworK0AlOkBpbmNsdWRlIDxi b29zdC92ZXJzaW9uLmhwcD4KKytdLAorKyAgICAgICBbCisrI2lmIEJPT1NUX1ZFUlNJT04gPj0g JFdBTlRfQk9PU1RfVkVSU0lPTgorKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQorKyNlbHNlCisrIyAg ZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCisrI2VuZGlmCisrCisrCQldLAorKyAgICAJ WworKyAgICAgICAgIEFDX01TR19SRVNVTFQoeWVzICgkX3ZlcnNpb24pKQorKwkJIHN1Y2NlZWRl ZD15ZXMKKysgICAgICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQorKyAgICAgICBdLAorKyAg ICAgICBbCisrICAgICAgICAgQUNfTVNHX1JFU1VMVChubyAoJF92ZXJzaW9uKSkKKysgICAgICAg ICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQorKyAgICAgICBdKQorKwkJZmkKKysKKysJCWlmIHRl c3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgorKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIg PSAiMCIgOyB0aGVuCisrCQkJCUFDX01TR19FUlJPUihbW1dlIGNvdWxkIG5vdCBkZXRlY3QgdGhl IGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4g b3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3RpbGwgbm90 IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52aXJvbm1l bnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91 IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNp b24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi5dXSkKKysJCQllbHNlCisr CQkJCUFDX01TR19FUlJPUignWW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJz aW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9y dGVuJykKKysJCQlmaQorKwkJZWxzZQorKwkJCUFDX1NVQlNUKEJPT1NUX0NGTEFHUykKKysJCQlB Q19TVUJTVChCT09TVF9MSUJTKQorKwkJCUFDX0RFRklORShIQVZFX0JPT1NULCxbZGVmaW5lIGlm IHRoZSBCb29zdCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCisrCQkJQUNfQ0FDSEVfQ0hFQ0so W3doZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwKKysJ CQkJCQkgICBheF9jdl9ib29zdF9maWxlc3lzdGVtLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJ CQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9H UkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+XV0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Zmls ZXN5c3RlbTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0 aCggImZvby9iYXIvZGF0YS50eHQiICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gMDtdXSksCisrICAgICAgICAgICAgCQkJCSAgICAgICBheF9jdl9ib29zdF9m aWxlc3lzdGVtPXllcywgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT1ubykKKysJCSAJCSAgICAgICAg CQkJQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfZmls ZXN5c3RlbSIgPSAieWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9GSUxFU1lT VEVNLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6RklMRVNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZV0pCisrCQkJCUJOPWJvb3N0X2ZpbGVzeXN0ZW0KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJ CQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtCT09TVF9GSUxFU1lTVEVNX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChC T09TVF9GSUxFU1lTVEVNX0xJQikgbGlua19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFrXSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19maWxlc3lzdGVtPSJubyJdKQorKyAg CQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX2ZpbGVzeXN0ZW0iID0gInhubyI7IHRoZW4K KysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisr CQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6 OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0sCisrCQkJCQkJICAgYXhfY3Zf Ym9vc3RfcHJvZ3JhbV9vcHRpb25zLAorKwkJCQkJCSAgIFtBQ19MQU5HX1NBVkUKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICBBQ19MQU5HX0NQTFVTUExVUworKwkJCSAgICAgICAgICAgICAg IEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9w cm9ncmFtX29wdGlvbnMuaHBwPl1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW1tib29zdDo6cHJvZ3JhbV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMo IkdlbmVyaWMgb3B0aW9ucyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3By b2dyYW1fb3B0aW9ucz15ZXMsIGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz1ubykKKysJCQkg ICAgICAgICAgICAgICBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIiRheF9j dl9ib29zdF9wcm9ncmFtX29wdGlvbnMiID0geWVzOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZF X0JPT1NUX1BST0dSQU1fT1BUSU9OUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlBST0dSQU1fT1BU SU9OUyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X3Byb2dyYW1fb3B0aW9u cworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1z ICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRC Ti0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OOyBk bworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUI9Ii1sJGF4X2xpYiIg QUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgbGlua19wcm9ncmFtX29wdGlvbnM9 InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3By b2dyYW1fb3B0aW9ucz0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19w cm9ncmFtX29wdGlvbnM9Im5vIiIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJ CUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFp bGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfdGhyZWFkLAorKwkJCQkJCVtBQ19MQU5HX1NB VkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQ1hYRkxBR1NfU0FWRT0kQ1hYRkxBR1MK KysKKysJCQkgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgorKyAgCQkJ CSBDWFhGTEFHUz0iLXB0aHJlYWRzICRDWFhGTEFHUyIKKysJCQkgZWxpZiB0ZXN0ICJ4JGJ1aWxk X29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KKysJCQkJIENYWEZMQUdTPSItbXRocmVhZHMgJENYWEZM QUdTIgorKwkJCSBlbHNlCisrCQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hYRkxBR1MiCisrCQkJ IGZpCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRl IDxib29zdC90aHJlYWQvdGhyZWFkLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtbYm9vc3Q6OnRocmVhZF9ncm91cCB0aHJkczsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwKKysgICAgICAgICAgICAgICAgICAgYXhf Y3ZfYm9vc3RfdGhyZWFkPXllcywgYXhfY3ZfYm9vc3RfdGhyZWFkPW5vKQorKwkJCSBDWFhGTEFH Uz0kQ1hYRkxBR1NfU0FWRQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRl c3QgIngkYXhfY3ZfYm9vc3RfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAgICAgICAgICAg IGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4KKysgCQkJCSAgQk9PU1Rf Q0ZMQUdTPSItcHRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBlbGlmIHRlc3QgIngkYnVp bGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1tdGhyZWFk cyAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGVsc2UKKysJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhy ZWFkICRCT09TVF9DRkxBR1MiCisrCQkJICAgZmkKKysKKysJCQkJQUNfU1VCU1QoQk9PU1RfQ0ZM QUdTKQorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9USFJFQUQsLFtkZWZpbmUgaWYgdGhlIEJv b3N0OjpUSFJFQUQgbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF90aHJlYWQK KysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAk Qk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4t JENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBk bworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9USFJFQURfTElC PSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1RIUkVBRF9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMi IGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9 Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8i OyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhKQorKwkJCQlmaQorKwkJCWZpCisrCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUg Qm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9i b29zdF9pb3N0cmVhbXMsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVT UExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVk ZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgorKwkJCQkJCQkJCQkJCSBA JTpAaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorKwkJCQkJCQkJCQkJ CV1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tzdGQ6OnN0cmluZyAg aW5wdXQgPSAiSGVsbG8gV29ybGQhIjsKKysJCQkJCQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6 Omlvc3RyZWFtczsKKysJCQkJCQkJCQkgaW86OmZpbHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6 bWFrZV9pdGVyYXRvcl9yYW5nZShpbnB1dCkpOworKwkJCQkJCQkJCSByZXR1cm4gMDsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAg YXhfY3ZfYm9vc3RfaW9zdHJlYW1zPXllcywgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vKQorKwkJ CSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9z dHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9JT1NUUkVB TVMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGVd KQorKwkJCQlCTj1ib29zdF9pb3N0cmVhbXMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRD QyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1n dyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10 LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9s aWIsIG1haW4sIFtCT09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X0lPU1RSRUFNU19MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJ CQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9U SUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisr CisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiwK KysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NP TVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxmc3RyZWFtPgorKwkJ CQkJCQkJCQkJCSBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X29hcmNoaXZlLmhwcD4K KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQCU6QGlu Y2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJjaGl2ZS5ocHA+CisrCQkJCQkJCQkJCQkJXV0s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6b2ZzdHJlYW0gb2Zz KCJmaWxlbmFtZSIpOworKwkJCQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9h KG9mcyk7CisrCQkJCQkJCQkJIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXV0pLAorKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zZXJpYWxpemF0 aW9uPXllcywgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj1ubykKKysJCQkgQUNfTEFOR19SRVNU T1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0g Inh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NFUklBTElaQVRJT04sLFtk ZWZpbmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkK KysJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4 X2xpYiwgbWFpbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfU0VS SUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlCTj1ib29zdF93 c2VyaWFsaXphdGlvbgorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQg JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMg IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9N RFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfV1NFUklBTElaQVRJT05fTElC PSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJl YWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5r X3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQi ID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5z dCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0 aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBh eF9jdl9ib29zdF9zaWduYWxzLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19D UExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPGJvb3N0L3NpZ25hbC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0OjpzaWduYWw8dm9pZCAoKT4gc2lnOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAgYXhfY3Zf Ym9vc3Rfc2lnbmFscz15ZXMsIGF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8pCisrCQkJIEFDX0xBTkdf UkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4 eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9TSUdOQUxTLCxbZGVmaW5lIGlm IHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0 X3NpZ25hbHMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0k Q0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRC TiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZF UlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9T SUdOQUxTX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TSUdOQUxTX0xJQikgbGlua190 aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFts aW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJl YWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdh aW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3 aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJ CSAgIGF4X2N2X2Jvb3N0X2RhdGVfdGltZSwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFD X0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShb W0AlOkBpbmNsdWRlIDxib29zdC9kYXRlX3RpbWUvZ3JlZ29yaWFuL2dyZWdvcmlhbl90eXBlcy5o cHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbW3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTAp OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAgICAg YXhfY3ZfYm9vc3RfZGF0ZV90aW1lPXllcywgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPW5vKQorKwkJ CSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfZGF0 ZV90aW1lIiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9EQVRFX1RJ TUUsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGVd KQorKwkJCQlCTj1ib29zdF9kYXRlX3RpbWUKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRD QyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1n dyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10 LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9s aWIsIG1haW4sIFtCT09TVF9EQVRFX1RJTUVfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X0RBVEVfVElNRV9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJ CQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIj0ibm8iID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01T R19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJ ZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFy eSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfcmVnZXgsCisrCQkJCQkJW0FD X0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxT RShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgorKwkJCQkJ CQkJCQkJCV1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6 cmVnZXggcigpOyByZXR1cm4gMDtdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0 X3JlZ2V4PXllcywgYXhfY3ZfYm9vc3RfcmVnZXg9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQor KwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4K KysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUkVHRVgsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpS ZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X3JlZ2V4CisrCQkJCWZv ciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1z IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIk Qk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJ ICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfUkVHRVhfTElCPSItbCRheF9s aWIiIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysg IAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJ CQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJ CWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6VW5p dFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9v c3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xB TkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0Al OkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRl OworKwkJCQkJICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NV SVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAg ICAgICAgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcywgYXhfY3ZfYm9vc3Rf dW5pdF90ZXN0X2ZyYW1ld29yaz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJ CQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID0gInh5ZXMiOyB0 aGVuCisrICAgIAkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSywsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFi bGVdKQorKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKKysgICAgCQlzYXZlZF9sZGZs YWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1t dCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1n dy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAgICAgICAgICAgICAgIExERkxBR1M9IiR7 TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQlBQ19DQUNIRV9DSEVDSyh0aGUgbmFtZSBvZiB0 aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnksCisrCSAgICAgIAkJCQkJICAgYXhf Y3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJ IEFDX0xBTkdfQ1BMVVNQTFVTCisrICAgICAgICAgICAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xB TkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6 dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSog dGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAw O11dKV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ieWVz Il0sW2xpbmtfdGhyZWFkPSJubyJdKQorKworKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysgICAgICAg ICAgICAgICBdKQorKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke3NhdmVkX2xkZmxhZ3N9Igor KwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAgICAg ICAgICAgICAgICAgQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUI9Ii1sJGF4X2xpYiIKKysg ICAgICAgICAgICAgICAgICAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC KQorKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAgICAgICAgIGRvbmUKKysJCQkgICAgaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkgICBBQ19NU0dfTk9USUNF KENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCQlm aQorKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKKysgICAgICAgIExERkxBR1M9 IiRMREZMQUdTX1NBVkVEIgorKwlmaQorK10pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2F4X215c3FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlzcWwubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X215 c3FsLm00CTIwMDktMDUtMjIgMjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE3 MiBAQAorK2RubCAkSWQ6IGF4X215c3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIgbWxv c2tvdCBFeHAgJAorK2RubAorK2RubCBAc3lub3BzaXMgQVhfTElCX01ZU1FMKFtNSU5JTVVNLVZF UlNJT05dKQorK2RubAorK2RubCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJp bGl0eSBvZiBNeVNRTCBjbGllbnQgbGlicmFyeQorK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24g b3IgbmV3ZXIuCisrZG5sIAorK2RubCBBWF9MSUJfTVlTUUwgbWFjcm8gdGFrZXMgb25seSBvbmUg YXJndW1lbnQgd2hpY2ggaXMgb3B0aW9uYWwuIElmIHRoZXJlIGlzIG5vIAorK2RubCByZXF1aXJl ZCB2ZXJzaW9uIHBhc3NlZCwgdGhlbiBtYWNybyBkb2VzIG5vdCBydW4gdmVyc2lvbiB0ZXN0Lgor K2RubAorK2RubCBUaGUgLS13aXRoLW15c3FsIG9wdGlvbiB0YWtlcyBvbmUgb2YgdGhyZWUgcG9z c2libGUgdmFsdWVzOgorK2RubCBubyAgIC0gZG8gbm90IGNoZWNrIGZvciBNeVNRTCBjbGllbnQg bGlicmFyeQorK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIE15U1FMIGxpYnJhcnkgaW4gc3RhbmRh cmQgbG9jYXRpb25zCisrZG5sICAgICAgICAobXlzcWxfY29uZmlnIHNob3VsZCBiZSBpbiB0aGUg UEFUSCkKKytkbmwgcGF0aCAtIGNvbXBsZXRlIHBhdGggdG8gbXlzcWxfY29uZmlnIHV0aWxpdHks IHVzZSB0aGlzIG9wdGlvbgorK2RubCAgICAgICAgaWYgbXlzcWxfY29uZmlnIGNhbid0IGJlIGZv dW5kIGluIHRoZSBQQVRICisrZG5sCisrZG5sIFRoaXMgbWFjcm8gY2FsbHM6CisrZG5sCisrZG5s ICAgQUNfU1VCU1QoTVlTUUxfQ0ZMQUdTKQorK2RubCAgIEFDX1NVQlNUKE1ZU1FMX0xERkxBR1Mp CisrZG5sICAgQUNfU1VCU1QoTVlTUUxfVkVSU0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6Cisr ZG5sCisrZG5sICAgSEFWRV9NWVNRTAorK2RubAorK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFj a2FnZXMKKytkbmwgQGNhdGVnb3J5IEN4eAorK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxt YXRldXN6QGxvc2tvdC5uZXQ+CisrZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA3LzA2LzIzIDAxOjUx OjIyICQKKytkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQorK2RubAorK2RubCAkSWQ6IGF4X215 c3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAorK2RubAorK0FD X0RFRlVOKFtBWF9MSUJfTVlTUUxdLAorK1sKKysgICAgQUNfQVJHX1dJVEgoW215c3FsXSwKKysg ICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtbXlzcWw9QDw6QEFSR0A6PkBdLAorKyAgICAg ICAgICAgIFt1c2UgTXlTUUwgY2xpZW50IGxpYnJhcnkgQDw6QGRlZmF1bHQ9eWVzQDo+QCwgb3B0 aW9uYWxseSBzcGVjaWZ5IHBhdGggdG8gbXlzcWxfY29uZmlnXQorKyAgICAgICAgKSwKKysgICAg ICAgIFsKKysJTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9teXNxbC9pbmNsdWRlIgorKyAgICAgICAg aWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9 Im5vIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAg ICAgICAgIHdhbnRfbXlzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB3YW50 X215c3FsPSJ5ZXMiCisrICAgICAgICAgICAgTVlTUUxfQ09ORklHPSIkd2l0aHZhbCIKKysgICAg ICAgIGZpCisrICAgICAgICBdLAorKyAgICAgICAgW3dhbnRfbXlzcWw9InllcyIKKysJTVlTUUxf aW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KKysgICAgKQorKworKyAg ICBNWVNRTF9DRkxBR1M9IiIKKysgICAgTVlTUUxfTERGTEFHUz0iIgorKyAgICBNWVNRTF9WRVJT SU9OPSIiCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgTXlTUUwgbGlicmFyaWVzIChsaWJt eXNxbGNsaWVudCkKKysgICAgZG5sCisrICAgIAorKyAgICBpZiB0ZXN0ICIkd2FudF9teXNxbCIg PSAieWVzIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FMX0NPTkZJRyIgLW8g dGVzdDsgdGhlbgorKyAgICAgICAgICAgIEFDX1BBVEhfUFJPRyhbTVlTUUxfQ09ORklHXSwgW215 c3FsX2NvbmZpZ10sIFtdKQorKyAgICAgICAgZmkKKysKKysgICAgICAgIGRubCBNWVNRTF9DT05G SUcgaXMgcHJvdmlkZWQgYnV0IGl0IGRvZXMgbm90IHBvaW50IHRvIGV4ZWN1dGFibGUgZmlsZQor KyAgICAgICAgaWYgdGVzdCAhIC14ICIkTVlTUUxfQ09ORklHIjsgdGhlbgorKyAgICAgICAgICAg IEFDX01TR19FUlJPUihbJE1ZU1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3Qg YW4gZXhlY3R1YWJsZSBmaWxlXSkKKysgICAgICAgICAgICBNWVNRTF9DT05GSUc9Im5vIgorKyAg ICAgICAgICAgIGZvdW5kX215c3FsPSJubyIKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0 ZXN0ICIkTVlTUUxfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgIworKyAgICAg ICAgICAgICMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysg ICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeV0p CisrICAgICAgICAgICAgTVlTUUxfaW5jZGlyPQorKyAgICAgICAgICAgIGZvciBteXNxbF9pbmNf ZGlyIGluICRNWVNRTF9pbmNfY2hlY2sKKysgICAgICAgICAgICBkbworKyAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1kICIkbXlzcWxfaW5jX2RpciIgXAorKyAgICAgICAgICAgICAgICAmJiB0ZXN0 IC1mICIkbXlzcWxfaW5jX2Rpci9teXNxbC9teXNxbC5oIgorKyAgICAgICAgICAgICAgICB0aGVu CisrICAgICAgICAgICAgICAgICAgICBNWVNRTF9pbmNkaXI9JG15c3FsX2luY19kaXIKKysgICAg ICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAg ZG9uZQorKworKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRNWVNRTF9pbmNkaXIiCisrICAgICAg ICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kIHRo ZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1ZU1FMX2luY19jaGVjayddKQorKyAgICAgICAgICAg IGZpCisrCisrICAgICAgICAgICAgY2FzZSAiJE1ZU1FMX2luY2RpciIgaW4KKysgICAgICAgICAg ICAgICAgLyogKSA7OworKyAgICAgICAgICAgICAgICAqICkgIEFDX01TR19FUlJPUihbVGhlIE15 U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRl IHBhdGguXSkgOzsKKysgICAgICAgICAgICBlc2FjCisrCisrICAgICAgICAgICAgQUNfTVNHX1JF U1VMVChbJE1ZU1FMX2luY2Rpcl0pCisrCisrICAgICAgICAgICAgaWYgdGVzdCAiJE1ZU1FMX2lu Y2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdT PSIiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgTVlTUUxfQ0ZMQUdTPSItSSR7 TVlTUUxfaW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIE1ZU1FMX0xE RkxBR1M9ImAkTVlTUUxfQ09ORklHIC0tbGlic2AiCisrCisrICAgICAgICAgICAgTVlTUUxfVkVS U0lPTj1gJE1ZU1FMX0NPTkZJRyAtLXZlcnNpb25gCisrCisrICAgICAgICAgICAgQUNfREVGSU5F KFtIQVZFX01ZU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYgTXlTUUwgbGlicmFyaWVzIGFyZSBh dmFpbGFibGVdKQorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJ5ZXMi CisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgorKyAgICAgICAg ZmkKKysgICAgZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJz aW9uIG9mIE15U1FMIGlzIGF2YWlsYWJsZQorKyAgICBkbmwKKysgICAgCisrCisrICAgIG15c3Fs X3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCBbXSwgW10sIFskMV0pCisrCisrICAgIGlmIHRlc3Qg IiRmb3VuZF9teXNxbCIgPSAieWVzIiAtYSAtbiAiJG15c3FsX3ZlcnNpb25fcmVxIjsgdGhlbgor KworKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBNeVNRTCB2ZXJzaW9uIGlzID49ICRteXNx bF92ZXJzaW9uX3JlcV0pCisrCisrICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNp b24gc3RyaW5nIG9mIE15U1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVy IHJlcHJlc2VudGF0aW9uCisrICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAk bXlzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIG15c3FsX3ZlcnNp b25fcmVxX21pbm9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuXChbWzAt OV1dKlwpJ2AKKysgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRteXNxbF92 ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAg ICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAg ICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAg ICAgIG15c3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9yZXFfbWFq b3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk bXlzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcKyAkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICBk bmwgRGVjb21wb3NlIHZlcnNpb24gc3RyaW5nIG9mIGluc3RhbGxlZCBNeVNRTAorKyAgICAgICAg ZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgorKyAgICAgICAgbXlz cWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdcKFtbMC05XV0qXCknYAor KyAgICAgICAgbXlzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbWzAt OV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIG15c3FsX3ZlcnNpb25fbWljcm89YGV4cHIg JE1ZU1FMX1ZFUlNJT04gOiAnW1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAg ICAgICAgaWYgdGVzdCAieCRteXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAgICAg ICAgICAgIG15c3FsX3ZlcnNpb25fbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAg bXlzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJG15c3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAw MCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkbXlzcWxfdmVyc2lv bl9taW5vciBcKiAxMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwr ICRteXNxbF92ZXJzaW9uX21pY3JvYAorKworKyAgICAgICAgbXlzcWxfdmVyc2lvbl9jaGVjaz1g ZXhwciAkbXlzcWxfdmVyc2lvbl9udW1iZXIgXD5cPSAkbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVy YAorKyAgICAgICAgaWYgdGVzdCAiJG15c3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisr ICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgIGVsc2UKKysgICAgICAg ICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBB Q19TVUJTVChbTVlTUUxfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtNWVNRTF9DRkxBR1NdKQor KyAgICBBQ19TVUJTVChbTVlTUUxfTERGTEFHU10pCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2F4X29yYWNsZV9vY2kubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfb3JhY2xl X29jaS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAkyMDA5LTA1LTIyIDIyOjU0OjM3LjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyODYgQEAKKytkbmwgJElkOiBheF9vcmFjbGVfb2Np Lm00LHYgMS4xMSAyMDA4LzA0LzI4IDE5OjU4OjU0IG1sb3Nrb3QgRXhwICQKKytkbmwKKytkbmwg QHN5bm9wc2lzIEFYX0xJQl9PUkFDTEVfT0NJKFtNSU5JTVVNLVZFUlNJT05dKQorK2RubAorK2Ru bCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBPcmFjbGUgT0NJ IEFQSQorK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCisrZG5sIFRoaXMgbWFj cm9zIGNoZWNrcyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGFuZCBsaWJyYXJpZXMgCisrZG5sIGFu ZCBkZWZpbmVzIGNvbXBpbGF0aW9uIGZsYWdzCisrZG5sIAorK2RubCBNYWNybyBzdXBwb3J0cyBm b2xsb3dpbmcgb3B0aW9ucyBhbmQgdGhlaXIgdmFsdWVzOgorK2RubCAxKSBTaW5nbGUtb3B0aW9u IHVzYWdlOgorK2RubCAtLXdpdGgtb3JhY2xlIC0gcGF0aCB0byBPUkFDTEVfSE9NRSBkaXJlY3Rv cnkKKytkbmwgMikgVHdvLW9wdGlvbnMgdXNhZ2UgKGJvdGggb3B0aW9ucyBhcmUgcmVxdWlyZWQp OgorK2RubCAtLXdpdGgtb3JhY2xlLWluY2x1ZGUgLSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9D SSBoZWFkZXJzCisrZG5sIC0td2l0aC1vcmFjbGUtbGliIC0gcGF0aCB0byBkaXJlY3Rvcnkgd2l0 aCBPQ0kgbGlicmFyaWVzIAorK2RubAorK2RubCBOT1RFOiBUaGVzZSBvcHRpb25zIGRlc2NyaWJl ZCBhYm92ZSBkb2VzIG5vdCB0YWtlIHllc3xubyB2YWx1ZXMuCisrZG5sIElmICd5ZXMnIHZhbHVl IGlzIHBhc3NlZCwgdGhlbiBXQVJOSU5HIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQsCisrZG5s ICdubycgdmFsdWUsIGFzIHdlbGwgYXMgdGhlIC0td2l0aG91dC1vcmFjbGUqIHZhcmlhdGlvbnMg d2lsbCBjYXVzZQorK2RubCB0aGUgbWFjcm8gd29uJ3QgY2hlY2sgZW55dGhpbmcuCisrZG5sCisr ZG5sIFRoaXMgbWFjcm8gY2FsbHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9D RkxBR1MpCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9MREZMQUdTKQorK2RubCAgIEFDX1NV QlNUKE9SQUNMRV9PQ0lfVkVSU0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5sCisrZG5s ICAgSEFWRV9PUkFDTEUKKytkbmwKKytkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisr ZG5sIEBjYXRlZ29yeSBDeHgKKytkbmwgQGF1dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBs b3Nrb3QubmV0PgorK2RubCBAdmVyc2lvbiAkRGF0ZTogMjAwOC8wNC8yOCAxOTo1ODo1NCAkCisr ZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKKytkbmwKKytkbmwgJElkOiBheF9vcmFjbGVfb2Np Lm00LHYgMS4xMSAyMDA4LzA0LzI4IDE5OjU4OjU0IG1sb3Nrb3QgRXhwICQKKytkbmwKKytBQ19E RUZVTihbQVhfTElCX09SQUNMRV9PQ0ldLAorK1sKKysgICAgQUNfUkVRVUlSRShbQUNfQ0FOT05J Q0FMX0hPU1RdKQorKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlXSwKKysgICAgICAgIEFDX0hFTFBf U1RSSU5HKFstLXdpdGgtb3JhY2xlPUA8OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9y YWNsZSBPQ0kgQVBJIGZyb20gZ2l2ZW4gcGF0aCB0byBPcmFjbGUgaG9tZSBkaXJlY3RvcnldCisr ICAgICAgICApLAorKyAgICAgICAgWworKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gInll cyI7IHRoZW4KKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisr ICAgICAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAgICAgICAg ICAgIGVsc2UKKysgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAgICAg ICAgZmkgCisrICAgICAgICBmaQorKyAgICAgICAgXSwKKysgICAgICAgIFsKKysgICAgICAgIGlm IHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9k aXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvcmFjbGVfaG9t ZV9kaXI9IiIKKysgICAgICAgIGZpIAorKyAgICAgICAgXQorKyAgICApCisrCisrICAgIEFDX0FS R19XSVRIKFtvcmFjbGUtaW5jbHVkZV0sCisrICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRo LW9yYWNsZS1pbmNsdWRlPUA8OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNsZSBP Q0kgQVBJIGhlYWRlcnMgZnJvbSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysgICAgICAgIFtv cmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdpdGh2YWwiXSwKKysgICAgICAgIFtvcmFjbGVfaG9t ZV9pbmNsdWRlX2Rpcj0iIl0KKysgICAgKQorKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlLWxpYl0s CisrICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9yYWNsZS1saWI9QDw6QERJUkA6PkBd LAorKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2ZW4g cGF0aF0KKysgICAgICAgICksCisrICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2 YWwiXSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9saWJfZGlyPSIiXQorKyAgICApCisrCisrICAg IE9SQUNMRV9PQ0lfQ0ZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iIgorKyAgICBP UkFDTEVfT0NJX1ZFUlNJT049IiIKKysKKysgICAgZG5sCisrICAgIGRubCBDb2xsZWN0IGluY2x1 ZGUvbGliIHBhdGhzCisrICAgIGRubCAKKysgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5v IgorKworKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgorKworKyAgICAg ICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2Rp ciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBkbmwgT1JBQ0xFX0hPTUUgcGF0aCBwcm92 aWRlZAorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGRubCBQcmltYXJ5IHBhdGggdG8gT0NJ IGhlYWRlcnMsIGF2YWlsYWJsZSBpbiBPcmFjbGU+PTEwCisrICAgICAgICAgICAgb3JhY2xlX2lu Y2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL3B1YmxpYyIKKysgICAgICAgICAgICAK KysgICAgICAgICAgICBkbmwgU2Vjb25kYXJ5IHBhdGggdG8gT0NJIGhlYWRlcnMgdXNlZCBieSBv bGRlciB2ZXJzaW9ucworKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVf aG9tZV9kaXIvcmRibXMvZGVtbyIKKysKKysgICAgICAgICAgICBkbmwgTGlicmFyeSBwYXRoCisr ICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvbGliIgorKyAgICAg ICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAg ICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgIGVs aWYgdGVzdCAtbiAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAtbyAtbiAiJG9yYWNsZV9ob21l X2xpYl9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVk ZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gInllcyI7IHRo ZW4KKysgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9pbmNsdWRl X2RpciIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiA9ICJ5 ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysg ICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0g Im5vIiAtYSAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAg ICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9saWJfZGlyIgorKyAgICAgICAgZWxpZiB0 ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdh bnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAg ICBpZiB0ZXN0ICIkd2FudF9vcmFjbGVfYnV0X25vX3BhdGgiID0gInllcyI7IHRoZW4KKysgICAg ICAgIEFDX01TR19XQVJOKFtPcmFjbGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNs ZSBwYXRocyBoYXZlIGJlZW4gcHJvdmlkZWQuIFwKKytQbGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGly ZWN0b3JpZXMgdXNpbmcgLS13aXRoLW9yYWNsZSBvciBcCisrLS13aXRoLW9yYWNsZS1pbmNsdWRl IGFuZCAtLXdpdGgtb3JhY2xlLWxpYiBvcHRpb25zLl0pCisrICAgIGZpCisrCisrICAgIGRubAor KyAgICBkbmwgQ2hlY2sgT0NJIGZpbGVzCisrICAgIGRubAorKyAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAg ICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxB R1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgZG5sIEFkZGl0aW9uYWwgcGF0 aCBmb3Igb2xkZXIgT3JhY2xlIGluc3RhbGxhdGlvbnMgCisrICAgICAgICBpZiB0ZXN0IC1uICIk b3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZM QUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBG aWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2UgJGhv c3Rfb3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAgICAg ICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1ubyA7 OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKKysg ICAgICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKKysg ICAgICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBmaQor KworKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9MSUJT PSIkTElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysgICAg ICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRMSUJT ICRvY2lfbGlicyIKKysKKysgICAgICAgIGRubAorKyAgICAgICAgZG5sIENoZWNrIE9DSSBoZWFk ZXJzCisrICAgICAgICBkbmwKKysgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE9yYWNsZSBP Q0kgaGVhZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyXSkKKysKKysgICAgICAgIEFDX0xBTkdf UFVTSChDKyspCisrICAgICAgICBBQ19DT01QSUxFX0lGRUxTRShbCisrICAgICAgICAgICAgQUNf TEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAgICAgICAgICBb WworKyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJTSU9OKQorKyNpZiBPQ0lfTUFKT1JfVkVSU0lP TiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9PSAyCisrLy8gT3JhY2xlIDEwLjIgZGV0ZWN0 ZWQKKysjZW5kaWYKKysjZWxpZiBkZWZpbmVkKE9DSV9WN19TWU5UQVgpCisrLy8gT0ssIG9sZGVy IE9yYWNsZSBkZXRlY3RlZAorKy8vIFRPRE8gLSBtbG9za290OiBmaW5kIGJldHRlciBtYWNybyB0 byBjaGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7IAorKyNlbHNlCisrIyAgZXJyb3IgT3JhY2xlIG9j aS5oIGhlYWRlciBub3QgZm91bmQKKysjZW5kaWYKKysgICAgICAgICAgICAgICAgXV0KKysgICAg ICAgICAgICApXSwKKysgICAgICAgICAgICBbCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxB R1M9Ii1JJG9yYWNsZV9pbmNsdWRlX2RpciIKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIk b3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9D RkxBR1M9IiRPUkFDTEVfT0NJX0NGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAg ICAgICAgIGZpCisrCisrICAgICAgICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgorKyAgICAg ICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAgXSwKKysgICAgICAgICAg ICBbCisrICAgICAgICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgQUNf TVNHX1JFU1VMVChbbm90IGZvdW5kXSkKKysgICAgICAgICAgICBdCisrICAgICAgICApCisrICAg ICAgICBBQ19MQU5HX1BPUChbQysrXSkKKysgICAgICAgIAorKyAgICAgICAgZG5sCisrICAgICAg ICBkbmwgQ2hlY2sgT0NJIGxpYnJhcmllcworKyAgICAgICAgZG5sCisrICAgICAgICBpZiB0ZXN0 ICIkb2NpX2hlYWRlcl9mb3VuZCIgPSAieWVzIjsgdGhlbgorKworKyAgICAgICAgICAgIEFDX01T R19DSEVDS0lORyhbZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpcl0p CisrCisrICAgICAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKKysgICAgICAgICAgICBBQ19MSU5L X0lGRUxTRShbCisrICAgICAgICAgICAgICAgIEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRl IDxvY2kuaD5dXSwKKysgICAgICAgICAgICAgICAgICAgIFtbCisrT0NJRW52KiBlbnZoID0gMDsK KytPQ0lFbnZDcmVhdGUoJmVudmgsIE9DSV9ERUZBVUxULCAwLCAwLCAwLCAwLCAwLCAwKTsKKytp ZiAoZW52aCkgT0NJSGFuZGxlRnJlZShlbnZoLCBPQ0lfSFRZUEVfRU5WKTsKKysgICAgICAgICAg ICAgICAgICAgIF1dCisrICAgICAgICAgICAgICAgICldLAorKyAgICAgICAgICAgICAgICBbCisr ICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGli cyIKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgICAg ICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorKyAgICAgICAgICAgICAgICBdLAorKyAgICAgICAgICAg ICAgICBbCisrICAgICAgICAgICAgICAgIG9jaV9saWJfZm91bmQ9Im5vIgorKyAgICAgICAgICAg ICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQorKyAgICAgICAgICAgICAgICBdCisrICAg ICAgICAgICAgKQorKyAgICAgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQorKyAgICAgICAgZmkK KysKKysgICAgICAgIENQUEZMQUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdT PSIkc2F2ZWRfTERGTEFHUyIKKysgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQor KworKyAgICBkbmwKKysgICAgZG5sIENoZWNrIHJlcXVpcmVkIHZlcnNpb24gb2YgT3JhY2xlIGlz IGF2YWlsYWJsZQorKyAgICBkbmwKKysgICAgb3JhY2xlX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFd LCBbXSwgW10sIFskMV0pCisrCisrICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5 ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCisrICAgICAgICAtbiAiJG9yYWNs ZV92ZXJzaW9uX3JlcSI7IHRoZW4KKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBj YXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04g ICovLycgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9c Ki4qXCpcLy8vJ2AKKysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNs ZV9pbmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdy ZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICovLycgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8v J2AKKysKKysgICAgICAgIEFDX01TR19DSEVDS0lORyhbaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlz ID49ICRvcmFjbGVfdmVyc2lvbl9yZXFdKQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNs ZV92ZXJzaW9uX21ham9yIiAtYSAtbiAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKwor KyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRv cmFjbGVfdmVyc2lvbl9taW5vciIKKysKKysgICAgICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVp cmVkIHZlcnNpb24gc3RyaW5nIG9mIE9yYWNsZQorKyAgICAgICAgICAgIGRubCBhbmQgY2FsY3Vs YXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgICAgICBvcmFjbGVfdmVyc2lv bl9yZXFfbWFqb3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAor KyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkb3JhY2xlX3ZlcnNp b25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNs ZV92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAx MDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3Jh Y2xlX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgZG5sIENhbGN1 bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uIAorKyAgICAgICAgICAgIG9yYWNsZV92ZXJz aW9uX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBc KiAxMDAwYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFj bGVfdmVyc2lvbl9udW1iZXIgXD5cPSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAg ICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAg ICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAgICAgIEFDX0RF RklORShIQVZFX09SQUNMRSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGli cmFyeSBpcyBhdmFpbGFibGVdKQorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAg QUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW09yYWNs ZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3Jh Y2xlX3ZlcnNpb25fcmVxXSkKKysgICAgICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAg ICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iVU5LTk9XTiIKKysgICAgICAgICAgICBBQ19NU0df UkVTVUxUKFtub10pCisrICAgICAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSB2ZXJzaW9uIHVu a25vd24sIHByb2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlXSkKKysgICAg ICAgIGZpCisrICAgIGZpCisrCisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX1ZFUlNJT05dKQor KyAgICBBQ19TVUJTVChbT1JBQ0xFX09DSV9DRkxBR1NdKQorKyAgICBBQ19TVUJTVChbT1JBQ0xF X09DSV9MREZMQUdTXSkKKytdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfcG9zdGdyZXNxbC5t NAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00CTIwMDktMDUtMjIgMjI6NTQ6MzcuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDE3MSBAQAorK2RubCAkSWQ6IGF4X3Bvc3RncmVzcWwubTQsdiAxLjMgMjAwNy8w Ni8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCisrZG5sCisrZG5sIEBzeW5vcHNpcyBBWF9MSUJf UE9TVEdSRVNRTChbTUlOSU1VTS1WRVJTSU9OXSkKKytkbmwKKytkbmwgVGhpcyBtYWNybyBwcm92 aWRlcyB0ZXN0cyBvZiBhdmFpbGFiaWxpdHkgb2YgUG9zdGdyZVNRTCAnbGlicHEnIGxpYnJhcnkK Kytkbmwgb2YgcGFydGljdWxhciB2ZXJzaW9uIG9yIG5ld2VyLgorK2RubCAKKytkbmwgQVhfTElC X1BPU1RHUkVTUUwgbWFjcm8gdGFrZXMgb25seSBvbmUgYXJndW1lbnQgd2hpY2ggaXMgb3B0aW9u YWwuIElmIHRoZXJlIGlzIG5vIAorK2RubCByZXF1aXJlZCB2ZXJzaW9uIHBhc3NlZCwgdGhlbiBt YWNybyBkb2VzIG5vdCBydW4gdmVyc2lvbiB0ZXN0LgorK2RubAorK2RubCBUaGUgLS13aXRoLXBv c3RncmVzcWwgb3B0aW9uIHRha2VzIG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6CisrZG5s IG5vICAgLSBkbyBub3QgY2hlY2sgZm9yIFBvc3RncmVTUUwgY2xpZW50IGxpYnJhcnkKKytkbmwg eWVzICAtIGRvIGNoZWNrIGZvciBQb3N0Z3JlU1FMIGxpYnJhcnkgaW4gc3RhbmRhcmQgbG9jYXRp b25zCisrZG5sICAgICAgICAocGdfY29uZmlnIHNob3VsZCBiZSBpbiB0aGUgUEFUSCkKKytkbmwg cGF0aCAtIGNvbXBsZXRlIHBhdGggdG8gcGdfY29uZmlnIHV0aWxpdHksIHVzZSB0aGlzIG9wdGlv bgorK2RubCAgICAgICAgaWYgcGdfY29uZmlnIGNhbid0IGJlIGZvdW5kIGluIHRoZSBQQVRICisr ZG5sCisrZG5sIFRoaXMgbWFjcm8gY2FsbHM6CisrZG5sCisrZG5sICAgQUNfU1VCU1QoUE9TVEdS RVNRTF9DRkxBR1MpCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9MREZMQUdTKQorK2RubCAg IEFDX1NVQlNUKFBPU1RHUkVTUUxfVkVSU0lPTikKKytkbmwKKytkbmwgQW5kIHNldHM6CisrZG5s CisrZG5sICAgSEFWRV9QT1NUR1JFU1FMCisrZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQ YWNrYWdlcworK2RubCBAY2F0ZWdvcnkgQ3h4CisrZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3Qg PG1hdGV1c3pAbG9za290Lm5ldD4KKytkbmwgQHZlcnNpb24gJERhdGU6IDIwMDcvMDYvMjMgMDE6 NTE6MjIgJAorK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisrZG5sCisrZG5sICRJZDogYXhf cG9zdGdyZXNxbC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKKytk 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 dWVzcwkyMDA5LTA1LTIzIDEwOjAyOjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNTQy IEBACisrIyEgL2Jpbi9zaAorKyMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0g bmFtZS4KKysjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LAorKyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4CisrIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworK3RpbWVzdGFtcD0nMjAwOC0xMS0xNScKKysKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisrIyB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr IworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysjIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B CisrIyAwMjExMC0xMzAxLCBVU0EuCisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQorKyMgZGlzdHJpYnV0ZSB0aGlz IGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisrIyBjb25maWd1cmF0 aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRl cgorKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJl c3Qgb2YgdGhhdCBwcm9ncmFtLgorKworKworKyMgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBC b3RobmVyIDxwZXJAYm90aG5lci5jb20+LgorKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29u ZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0CisrIyBkaWZmIGFuZCBhIHBy b3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50cnkuCisrIworKyMgVGhpcyBzY3JpcHQgYXR0 ZW1wdHMgdG8gZ3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgc2ltaWxhciB0bworKyMgY29u ZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0 ZG91dCwgYW5kCisrIyBleGl0cyB3aXRoIDAuICBPdGhlcndpc2UsIGl0IGV4aXRzIHdpdGggMS4K KysjCisrIyBUaGUgcGxhbiBpcyB0aGF0IHRoaXMgY2FuIGJlIGNhbGxlZCBieSBjb25maWd1cmUg c2NyaXB0cyBpZiB5b3UKKysjIGRvbid0IHNwZWNpZnkgYW4gZXhwbGljaXQgYnVpbGQgc3lzdGVt IHR5cGUuCisrCisrbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisrCisrdXNhZ2U9 IlwKKytVc2FnZTogJDAgW09QVElPTl0KKysKKytPdXRwdXQgdGhlIGNvbmZpZ3VyYXRpb24gbmFt ZSBvZiB0aGUgc3lzdGVtIFxgJG1lJyBpcyBydW4gb24uCisrCisrT3BlcmF0aW9uIG1vZGVzOgor KyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtdCwg LS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0 CisrICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAor KworK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4i CisrCisrdmVyc2lvbj0iXAorK0dOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCisrCisrT3Jp Z2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyLgorK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5 MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAy LCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9y IGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZv ciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgor KworK2hlbHA9IgorK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysK KysjIFBhcnNlIGNvbW1hbmQgbGluZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2Fz ZSAkMSBpbgorKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hv ICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBl Y2hvICIkdmVyc2lvbiIgOyBleGl0IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAg ICAgIGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBw cm9jZXNzaW5nCisrICAgICAgIHNoaWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4g YXMgaW5wdXQuCisrICAgICAgIGJyZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1l OiBpbnZhbGlkIG9wdGlvbiAkMSRoZWxwIiA+JjIKKysgICAgICAgZXhpdCAxIDs7CisrICAgICog KQorKyAgICAgICBicmVhayA7OworKyAgZXNhYworK2RvbmUKKysKKytpZiB0ZXN0ICQjICE9IDA7 IHRoZW4KKysgIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgZXhp dCAxCisrZmkKKysKKyt0cmFwICdleGl0IDEnIDEgMiAxNQorKworKyMgQ0NfRk9SX0JVSUxEIC0t IGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKysj IGNvbXBpbGVyIHRvIGFpZCBpbiBzeXN0ZW0gZGV0ZWN0aW9uIGlzIGRpc2NvdXJhZ2VkIGFzIGl0 IHJlcXVpcmVzCisrIyB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBj YW4gc2VlIGJlbG93LCBpdCBpcyBhCisrIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0 YWJsZSBmYXNoaW9uLgorKworKyMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRv IGJlIG5hbWVkIGBIT1NUX0NDJy4gV2Ugc3RpbGwKKysjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5l ZCwgYnV0IGl0IGlzIGRlcHJlY2F0ZWQuCisrCisrIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNy ZWF0aW9uIGluc3BpcmVkIGJ5IHRoZSBBdXRvY29uZiB0ZWFtLgorKworK3NldF9jY19mb3JfYnVp bGQ9JworK3RyYXAgImV4aXRjb2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7 IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOworK3RyYXAg InJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBl eGl0IDEiIDEgMiAxMyAxNSA7CisrOiAke1RNUERJUj0vdG1wfSA7CisrIHsgdG1wPWAodW1hc2sg MDc3ICYmIG1rdGVtcCAtZCAiJFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0 IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIiA7IH0gfHwKKysgeyB0ZXN0IC1uICIkUkFORE9N IiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1w KSA7IH0gfHwKKysgeyB0bXA9JFRNUERJUi9jZy0kJCAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0 bXApICYmIGVjaG8gIldhcm5pbmc6IGNyZWF0aW5nIGluc2VjdXJlIHRlbXAgZGlyZWN0b3J5IiA+ JjIgOyB9IHx8CisrIHsgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVj dG9yeSBpbiAkVE1QRElSIiA+JjIgOyBleGl0IDEgOyB9IDsKKytkdW1teT0kdG1wL2R1bW15IDsK Kyt0bXBmaWxlcz0iJGR1bW15LmMgJGR1bW15Lm8gJGR1bW15LnJlbCAkZHVtbXkiIDsKKytjYXNl ICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCisrICwsKSAgICBlY2hvICJpbnQgeDsiID4g JGR1bW15LmMgOworKwlmb3IgYyBpbiBjYyBnY2MgYzg5IGM5OSA7IGRvCisrCSAgaWYgKCRjIC1j IC1vICRkdW1teS5vICRkdW1teS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisrCSAgICAgQ0Nf Rk9SX0JVSUxEPSIkYyI7IGJyZWFrIDsKKysJICBmaSA7CisrCWRvbmUgOworKwlpZiB0ZXN0IHgi JENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgorKwkgIENDX0ZPUl9CVUlMRD1ub19jb21waWxlcl9m b3VuZCA7CisrCWZpCisrCTs7CisrICwsKikgICBDQ19GT1JfQlVJTEQ9JENDIDs7CisrICwqLCop ICBDQ19GT1JfQlVJTEQ9JEhPU1RfQ0MgOzsKKytlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycK KysKKysjIFRoaXMgaXMgbmVlZGVkIHRvIGZpbmQgdW5hbWUgb24gYSBQeXJhbWlkIE9TeCB3aGVu IHJ1biBpbiB0aGUgQlNEIHVuaXZlcnNlLgorKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0 LTA4LTI0KQorK2lmICh0ZXN0IC1mIC8uYXR0YmluL3VuYW1lKSA+L2Rldi9udWxsIDI+JjEgOyB0 aGVuCisrCVBBVEg9JFBBVEg6Ly5hdHRiaW4gOyBleHBvcnQgUEFUSAorK2ZpCisrCisrVU5BTUVf TUFDSElORT1gKHVuYW1lIC1tKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfTUFDSElORT11bmtub3du CisrVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFT RT11bmtub3duCisrVU5BTUVfU1lTVEVNPWAodW5hbWUgLXMpIDI+L2Rldi9udWxsYCAgfHwgVU5B TUVfU1lTVEVNPXVua25vd24KKytVTkFNRV9WRVJTSU9OPWAodW5hbWUgLXYpIDI+L2Rldi9udWxs YCB8fCBVTkFNRV9WRVJTSU9OPXVua25vd24KKysKKysjIE5vdGU6IG9yZGVyIGlzIHNpZ25pZmlj YW50IC0gdGhlIGNhc2UgYnJhbmNoZXMgYXJlIG5vdCBleGNsdXNpdmUuCisrCisrY2FzZSAiJHtV TkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZF UlNJT059IiBpbgorKyAgICAqOk5ldEJTRDoqOiopCisrCSMgTmV0QlNEIChuYnNkKSB0YXJnZXRz IHNob3VsZCAod2hlcmUgYXBwbGljYWJsZSkgbWF0Y2ggb25lIG9yCisrCSMgbW9yZSBvZiB0aGUg dHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKKysJIyAqLSotbmV0YnNk ZWNvZmYqIGFuZCAqLSotbmV0YnNkKi4gIEZvciB0YXJnZXRzIHRoYXQgcmVjZW50bHkKKysJIyBz d2l0Y2hlZCB0byBFTEYsICotKi1uZXRic2QqIHdvdWxkIHNlbGVjdCB0aGUgb2xkCisrCSMgb2Jq ZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKKysJIyBjb21wYXRp YmlsaXR5IGFuZCBhIGNvbnNpc3RlbnQgbWVjaGFuaXNtIGZvciBzZWxlY3RpbmcgdGhlCisrCSMg b2JqZWN0IGZpbGUgZm9ybWF0LgorKwkjCisrCSMgTm90ZTogTmV0QlNEIGRvZXNuJ3QgcGFydGlj dWxhcmx5IGNhcmUgYWJvdXQgdGhlIHZlbmRvcgorKwkjIHBvcnRpb24gb2YgdGhlIG5hbWUuICBX ZSBhbHdheXMgc2V0IGl0IHRvICJ1bmtub3duIi4KKysJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFj aGluZV9hcmNoIgorKwlVTkFNRV9NQUNISU5FX0FSQ0g9YCgvc2Jpbi8kc3lzY3RsIDI+L2Rldi9u dWxsIHx8IFwKKysJICAgIC91c3Ivc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5r bm93bilgCisrCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKysJICAgIGFybWViKSBt YWNoaW5lPWFybWViLXVua25vd24gOzsKKysJICAgIGFybSopIG1hY2hpbmU9YXJtLXVua25vd24g OzsKKysJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7CisrCSAgICBzaDNlYikgbWFj aGluZT1zaC11bmtub3duIDs7CisrCSAgICBzaDVlbCkgbWFjaGluZT1zaDVsZS11bmtub3duIDs7 CisrCSAgICAqKSBtYWNoaW5lPSR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duIDs7CisrCWVz YWMKKysJIyBUaGUgT3BlcmF0aW5nIFN5c3RlbSBpbmNsdWRpbmcgb2JqZWN0IGZvcm1hdCwgaWYg aXQgaGFzIHN3aXRjaGVkCisrCSMgdG8gRUxGIHJlY2VudGx5LCBvciB3aWxsIGluIHRoZSBmdXR1 cmUuCisrCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKysJICAgIGFybSp8aTM4Nnxt NjhrfG5zMzJrfHNoMyp8c3BhcmN8dmF4KQorKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwkJ aWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKKysJCQl8 IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsCisrCQl0aGVuCisrCQkgICAgIyBPbmNlIGFsbCB1dGls aXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgor KwkJICAgICMgUmV0dXJuIG5ldGJzZCBmb3IgZWl0aGVyLiAgRklYPworKwkJICAgIG9zPW5ldGJz ZAorKwkJZWxzZQorKwkJICAgIG9zPW5ldGJzZGVsZgorKwkJZmkKKysJCTs7CisrCSAgICAqKQor KwkgICAgICAgIG9zPW5ldGJzZAorKwkJOzsKKysJZXNhYworKwkjIFRoZSBPUyByZWxlYXNlCisr CSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwg YW5kCisrCSMgdGh1cywgbmVlZCBhIGRpc3RpbmN0IHRyaXBsZXQuIEhvd2V2ZXIsIHRoZXkgZG8g bm90IG5lZWQKKysJIyBrZXJuZWwgdmVyc2lvbiBpbmZvcm1hdGlvbiwgc28gaXQgY2FuIGJlIHJl cGxhY2VkIHdpdGggYQorKwkjIHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdu dS4KKysJY2FzZSAiJHtVTkFNRV9WRVJTSU9OfSIgaW4KKysJICAgIERlYmlhbiopCisrCQlyZWxl YXNlPSctZ251JworKwkJOzsKKysJICAgICopCisrCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAorKwkJOzsKKysJZXNhYworKwkjIFNpbmNlIENQ VV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKKysJIyBjb250YWlu cyByZWR1bmRhbnQgaW5mb3JtYXRpb24sIHRoZSBzaG9ydGVyIGZvcm06CisrCSMgQ1BVX1RZUEUt TUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0gaXMgdXNlZC4KKysJZWNobyAiJHttYWNoaW5l fS0ke29zfSR7cmVsZWFzZX0iCisrCWV4aXQgOzsKKysgICAgKjpPcGVuQlNEOio6KikKKysJVU5B TUVfTUFDSElORV9BUkNIPWBhcmNoIHwgc2VkICdzL09wZW5CU0QuLy8nYAorKwllY2hvICR7VU5B TUVfTUFDSElORV9BUkNIfS11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgKjpla2tvQlNEOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t ZWtrb2JzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOlNvbGlkQlNEOio6KikK KysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc29saWRic2Qke1VOQU1FX1JFTEVBU0V9 CisrCWV4aXQgOzsKKysgICAgbWFjcHBjOk1pckJTRDoqOiopCisrCWVjaG8gcG93ZXJwYy11bmtu b3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOk1pckJTRDoqOiop CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBhbHBoYTpPU0YxOio6KikKKysJY2FzZSAkVU5BTUVfUkVMRUFTRSBp bgorKwkqNC4wKQorKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7 cHJpbnQgJDN9J2AKKysJCTs7CisrCSo1LiopCisrCSAgICAgICAgVU5BTUVfUkVMRUFTRT1gL3Vz ci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AKKysJCTs7CisrCWVzYWMKKysJIyBB Y2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUg b24KKysJIyBPU0YvMSBhbmQgVHJ1NjQgc3lzdGVtcyBwcm9kdWNlZCBzaW5jZSAxOTk1LiAgSSBo b3BlIHRoYXQKKysJIyBjb3ZlcnMgbW9zdCBzeXN0ZW1zIHJ1bm5pbmcgdG9kYXkuICBUaGlzIGNv ZGUgcGlwZXMgdGhlIENQVQorKwkjIHR5cGVzIHRocm91Z2ggaGVhZCAtbiAxLCBzbyB3ZSBvbmx5 IGRldGVjdCB0aGUgdHlwZSBvZiBDUFUgMC4KKysJQUxQSEFfQ1BVX1RZUEU9YC91c3Ivc2Jpbi9w c3JpbmZvIC12IHwgc2VkIC1uIC1lICdzL14gIFRoZSBhbHBoYSBcKC4qXCkgcHJvY2Vzc29yLiok L1wxL3AnIHwgaGVhZCAtbiAxYAorKwljYXNlICIkQUxQSEFfQ1BVX1RZUEUiIGluCisrCSAgICAi RVY0ICgyMTA2NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7CisrCSAgICAiRVY0LjUg KDIxMDY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKysJICAgICJMQ0E0ICgyMTA2 Ni8yMTA2OCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7CisrCSAgICAiRVY1ICgyMTE2 NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjUiIDs7CisrCSAgICAiRVY1LjYgKDIxMTY0 QSkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjU2IiA7OworKwkgICAgIkVWNS42ICgyMTE2 NFBDKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBjYTU2IiA7OworKwkgICAgIkVWNS43ICgy MTE2NFBDKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBjYTU3IiA7OworKwkgICAgIkVWNiAo MjEyNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2IiA7OworKwkgICAgIkVWNi43ICgy MTI2NEEpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2NyIgOzsKKysJICAgICJFVjYuOENC ICgyMTI2NEMpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKysJICAgICJFVjYu OEFMICgyMTI2NEIpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKysJICAgICJF VjYuOENYICgyMTI2NEQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKysJICAg ICJFVjYuOUEgKDIxMjY0L0VWNjlBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjkiIDs7 CisrCSAgICAiRVY3ICgyMTM2NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjciIDs7Cisr CSAgICAiRVY3LjkgKDIxMzY0QSkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjc5IiA7Owor Kwllc2FjCisrCSMgQSBQbi5uIHZlcnNpb24gaXMgYSBwYXRjaGVkIHZlcnNpb24uCisrCSMgQSBW bi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCB2ZXJzaW9uLgorKwkjIEEgVG4ubiB2ZXJzaW9uIGlz IGEgcmVsZWFzZWQgZmllbGQgdGVzdCB2ZXJzaW9uLgorKwkjIEEgWG4ubiB2ZXJzaW9uIGlzIGFu IHVucmVsZWFzZWQgZXhwZXJpbWVudGFsIGJhc2VsZXZlbC4KKysJIyAxLjIgdXNlcyAiMS4yIiBm b3IgdW5hbWUgLXIuCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFN RV9SRUxFQVNFfSB8IHNlZCAtZSAncy9eW1BWVFhdLy8nIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BR UlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAorKwlleGl0IDs7CisrICAg IEFscGhhXCAqOldpbmRvd3NfTlQqOiopCisrCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4 IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KKysJIyBTaG91bGQgd2Ug Y2hhbmdlIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFk CisrCSMgb2YgdGhlIHNwZWNpZmljIEFscGhhIG1vZGVsPworKwllY2hvIGFscGhhLXBjLWludGVy aXgKKysJZXhpdCA7OworKyAgICAyMTA2NDpXaW5kb3dzX05UOjUwOjMpCisrCWVjaG8gYWxwaGEt ZGVjLXdpbm50My41CisrCWV4aXQgOzsKKysgICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiop CisrCWVjaG8gbTY4ay11bmtub3duLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjpbQWFdbWlnYVtP b11bU3NdOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcworKwll eGl0IDs7CisrICAgICo6W01tXW9ycGhbT29dW1NzXToqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLW1vcnBob3MKKysJZXhpdCA7OworKyAgICAqOk9TLzM5MDoqOiopCisrCWVj aG8gaTM3MC1pYm0tb3BlbmVkaXRpb24KKysJZXhpdCA7OworKyAgICAqOnovVk06KjoqKQorKwll Y2hvIHMzOTAtaWJtLXp2bW9lCisrCWV4aXQgOzsKKysgICAgKjpPUzQwMDoqOiopCisrICAgICAg ICBlY2hvIHBvd2VycGMtaWJtLW9zNDAwCisrCWV4aXQgOzsKKysgICAgYXJtOlJJU0MqOjEuWzAx Ml0qOip8YXJtOnJpc2NpeDoxLlswMTJdKjoqKQorKwllY2hvIGFybS1hY29ybi1yaXNjaXgke1VO QU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgYXJtOnJpc2NvczoqOip8YXJtOlJJU0NPUzoq OiopCisrCWVjaG8gYXJtLXVua25vd24tcmlzY29zCisrCWV4aXQgOzsKKysgICAgU1IyPzAxOkhJ LVVYL01QUDoqOiogfCBTUjgwMDA6SEktVVgvTVBQOio6KikKKysJZWNobyBocHBhMS4xLWhpdGFj aGktaGl1eG1wcAorKwlleGl0IDs7CisrICAgIFB5cmFtaWQqOk9TeCo6KjoqIHwgTUlTKjpPU3gq Oio6KiB8IE1JUyo6U01QX0RDLU9TeCo6KjoqKQorKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5t aWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgorKwlpZiB0ZXN0ICJg KC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYCIgPSBhdHQgOyB0aGVuCisrCQllY2hvIHB5cmFt aWQtcHlyYW1pZC1zeXN2MworKwllbHNlCisrCQllY2hvIHB5cmFtaWQtcHlyYW1pZC1ic2QKKysJ ZmkKKysJZXhpdCA7OworKyAgICBOSUxFKjoqOio6ZGNvc3gpCisrCWVjaG8gcHlyYW1pZC1weXJh bWlkLXN2cjQKKysJZXhpdCA7OworKyAgICBEUlM/NjAwMDp1bml4OjQuMDo2KikKKysJZWNobyBz cGFyYy1pY2wtbng2CisrCWV4aXQgOzsKKysgICAgRFJTPzYwMDA6VU5JWF9TVjo0LjIqOjcqIHwg RFJTPzYwMDA6aXNpczo0LjIqOjcqKQorKwljYXNlIGAvdXNyL2Jpbi91bmFtZSAtcGAgaW4KKysJ ICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDc7IGV4aXQgOzsKKysJZXNhYyA7OworKyAgICBz dW40SDpTdW5PUzo1Lio6KikKKysJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1F X1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICBzdW40KjpTdW5P Uzo1Lio6KiB8IHRhZHBvbGUqOlN1bk9TOjUuKjoqKQorKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlz MmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7Cisr ICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQorKwlldmFsICRzZXRf Y2NfZm9yX2J1aWxkCisrCVNVTl9BUkNIPSJpMzg2IgorKwkjIElmIHRoZXJlIGlzIGEgY29tcGls ZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KKysJIyBOb3Rl IHRoYXQgdGhlIFN1biBjYyBkb2VzIG5vdCB0dXJuIF9fTFA2NF9fIGludG8gMSBsaWtlIGdjYyBk b2VzLgorKwkjIFRoaXMgdGVzdCB3b3JrcyBmb3IgYm90aCBjb21waWxlcnMuCisrCWlmIFsgIiRD Q19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorKwkgICAgaWYgZWNo byAnXG4jaWZkZWYgX19hbWQ2NFxuSVNfNjRCSVRfQVJDSFxuI2VuZGlmJyB8IFwKKysJCShDQ09Q VFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBcCisrCQlncmVwIElTXzY0QklU X0FSQ0ggPi9kZXYvbnVsbAorKwkgICAgdGhlbgorKwkJU1VOX0FSQ0g9Ing4Nl82NCIKKysJICAg IGZpCisrCWZpCisrCWVjaG8gJHtTVU5fQVJDSH0tcGMtc29sYXJpczJgZWNobyAke1VOQU1FX1JF TEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICBzdW40KjpTdW5PUzo2 KjoqKQorKwkjIEFjY29yZGluZyB0byBjb25maWcuc3ViLCB0aGlzIGlzIHRoZSBwcm9wZXIgd2F5 IHRvIGNhbm9uaWNhbGl6ZQorKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0 IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAorKwkjIGl0J3MgbGlrZWx5IHRvIGJlIG1vcmUgbGlr ZSBTb2xhcmlzIHRoYW4gU3VuT1M0LgorKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzM2BlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQq OlN1bk9TOio6KikKKysJY2FzZSAiYC91c3IvYmluL2FyY2ggLWtgIiBpbgorKwkgICAgU2VyaWVz KnxTNCopCisrCQlVTkFNRV9SRUxFQVNFPWB1bmFtZSAtdmAKKysJCTs7CisrCWVzYWMKKysJIyBK YXBhbmVzZSBMYW5ndWFnZSB2ZXJzaW9ucyBoYXZlIGEgdmVyc2lvbiBudW1iZXIgbGlrZSBgNC4x LjMtSkwnLgorKwllY2hvIHNwYXJjLXN1bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzLy0vXy8nYAorKwlleGl0IDs7CisrICAgIHN1bjMqOlN1bk9TOio6KikKKysJZWNobyBt NjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBzdW4qOio6NC4y QlNEOiopCisrCVVOQU1FX1JFTEVBU0U9YChzZWQgMXEgL2V0Yy9tb3RkIHwgYXdrICd7cHJpbnQg c3Vic3RyKCQ1LDEsMyl9JykgMj4vZGV2L251bGxgCisrCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9 IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKKysJY2FzZSAiYC9iaW4vYXJjaGAiIGluCisrCSAg ICBzdW4zKQorKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJCTs7Cisr CSAgICBzdW40KQorKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCQk7 OworKwllc2FjCisrCWV4aXQgOzsKKysgICAgYXVzaHA6U3VuT1M6KjoqKQorKwllY2hvIHNwYXJj LWF1c3BleC1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAjIFRoZSBzaXR1 YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQor KyAgICAjIGNhbiBiZSB2aXJ0dWFsbHkgZXZlcnl0aGluZyAoZXZlcnl0aGluZyB3aGljaCBpcyBu b3QKKysgICAgIyAiYXRhcmlzdCIgb3IgImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBh IHByb2Nlc3NvcgorKyAgICAjID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJv bSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQiCisrICAgICMgdG8gdGhlIGxvd2VyY2FzZSB2ZXJzaW9u ICJtaW50IiAob3IgImZyZWVtaW50IikuICBGaW5hbGx5CisrICAgICMgdGhlIHN5c3RlbSBuYW1l ICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkgbm90CisrICAgICMgTWlO VC4gIEJ1dCBNaU5UIGlzIGRvd253YXJkIGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3Vs ZAorKyAgICAjIGJlIG5vIHByb2JsZW0uCisrICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRh cmlzdFtlXToqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBt NjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgYXRhcmkqOipN aU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorKwllY2hv IG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAg KmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoq OiopCisrICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KKysJZXhp dCA7OworKyAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6 KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0K KysgICAgICAgIGV4aXQgOzsKKysgICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoq OiogfCAqaGFkZXMqOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLWhhZGVzLW1pbnQke1VO QU1FX1JFTEVBU0V9CisrICAgICAgICBleGl0IDs7CisrICAgICo6Kk1pTlQ6KjoqIHwgKjoqbWlu dDoqOiogfCAqOipUT1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLXVua25vd24tbWludCR7VU5B TUVfUkVMRUFTRX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgbTY4azptYWNodGVuOio6KikKKysJ ZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg cG93ZXJwYzptYWNodGVuOio6KikKKysJZWNobyBwb3dlcnBjLWFwcGxlLW1hY2h0ZW4ke1VOQU1F X1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgUklTQyo6TWFjaDoqOiopCisrCWVjaG8gbWlwcy1k ZWMtbWFjaF9ic2Q0LjMKKysJZXhpdCA7OworKyAgICBSSVNDKjpVTFRSSVg6KjoqKQorKwllY2hv IG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBWQVgqOlVM VFJJWCo6KjoqKQorKwllY2hvIHZheC1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgIDIwMjA6Q0xJWDoqOiogfCAyNDMwOkNMSVg6KjoqKQorKwllY2hvIGNsaXBwZXIt aW50ZXJncmFwaC1jbGl4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIG1pcHM6Kjoq OlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNl ZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrI2luY2x1 ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJpbnRmKCkgcHJvdG90eXBlICovCisrCWludCBtYWluIChp bnQgYXJnYywgY2hhciAqYXJndltdKSB7CisrI2Vsc2UKKysJaW50IG1haW4gKGFyZ2MsIGFyZ3Yp IGludCBhcmdjOyBjaGFyICphcmd2W107IHsKKysjZW5kaWYKKysJI2lmIGRlZmluZWQgKGhvc3Rf bWlwcykgJiYgZGVmaW5lZCAoTUlQU0VCKQorKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQor KwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N5c3ZcbiIsIGFyZ3ZbMV0pOyBleGl0ICgw KTsKKysJI2VuZGlmCisrCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQpCisrCSAgcHJpbnRmICgi bWlwcy1taXBzLXJpc2NvcyVzc3ZyNFxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworKwkjZW5kaWYK KysJI2lmIGRlZmluZWQgKFNZU1RZUEVfQlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCisr CSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzYnNkXG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7 CisrCSNlbmRpZgorKwkjZW5kaWYKKysJICBleGl0ICgtMSk7CisrCX0KKytFT0YKKysJJENDX0ZP Ul9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYKKysJICBkdW1teWFyZz1gZWNobyAiJHtVTkFN RV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCAmJgorKwkgIFNZU1RF TV9OQU1FPWAkZHVtbXkgJGR1bW15YXJnYCAmJgorKwkgICAgeyBlY2hvICIkU1lTVEVNX05BTUUi OyBleGl0OyB9CisrCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhp dCA7OworKyAgICBNb3Rvcm9sYTpQb3dlck1BWF9PUzoqOiopCisrCWVjaG8gcG93ZXJwYy1tb3Rv cm9sYS1wb3dlcm1heAorKwlleGl0IDs7CisrICAgIE1vdG9yb2xhOio6NC4zOlBMOC0qKQorKwll Y2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisrCWV4aXQgOzsKKysgICAgTmlnaHRfSGF3azoq Oio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5OlBvd2VyTUFYX09TOio6KikKKysJZWNobyBwb3dlcnBj LWhhcnJpcy1wb3dlcm1heAorKwlleGl0IDs7CisrICAgIE5pZ2h0X0hhd2s6UG93ZXJfVU5JWDoq OiopCisrCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJ1bml4CisrCWV4aXQgOzsKKysgICAgbTg4 azpDWC9VWDo3KjoqKQorKwllY2hvIG04OGstaGFycmlzLWN4dXg3CisrCWV4aXQgOzsKKysgICAg bTg4azoqOjQqOlI0KikKKysJZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0CisrCWV4aXQgOzsKKysg ICAgbTg4azoqOjMqOlIzKikKKysJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisrCWV4aXQgOzsK KysgICAgQVZpaU9OOmRndXg6KjoqKQorKyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBm b3IgYWxsIGFyY2hpdGVjdHVyZXMKKysgICAgICAgIFVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4v dW5hbWUgLXBgCisrCWlmIFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMDAgXSB8fCBbICRVTkFN RV9QUk9DRVNTT1IgPSBtYzg4MTEwIF0KKysJdGhlbgorKwkgICAgaWYgWyAke1RBUkdFVF9CSU5B UllfSU5URVJGQUNFfXggPSBtODhrZGd1eGVsZnggXSB8fCBcCisrCSAgICAgICBbICR7VEFSR0VU X0JJTkFSWV9JTlRFUkZBQ0V9eCA9IHggXQorKwkgICAgdGhlbgorKwkJZWNobyBtODhrLWRnLWRn dXgke1VOQU1FX1JFTEVBU0V9CisrCSAgICBlbHNlCisrCQllY2hvIG04OGstZGctZGd1eGJjcyR7 VU5BTUVfUkVMRUFTRX0KKysJICAgIGZpCisrCWVsc2UKKysJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4 JHtVTkFNRV9SRUxFQVNFfQorKwlmaQorKyAJZXhpdCA7OworKyAgICBNODgqOkRvbHBoaW5PUzoq OiopCSMgRG9scGhpbk9TIChTVlIzKQorKwllY2hvIG04OGstZG9scGhpbi1zeXN2MworKwlleGl0 IDs7CisrICAgIE04OCo6KjpSMyo6KikKKysJIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZS MworKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKKysJZXhpdCA7OworKyAgICBYRDg4KjoqOio6 KikgIyBUZWt0cm9uaXggWEQ4OCBzeXN0ZW0gcnVubmluZyBVVGVrViAoU1ZSMykKKysJZWNobyBt ODhrLXRla3Ryb25peC1zeXN2MworKwlleGl0IDs7CisrICAgIFRlazQzWzAtOV1bMC05XTpVVGVr Oio6KikgIyBUZWt0cm9uaXggNDMwMCBzeXN0ZW0gcnVubmluZyBVVGVrIChCU0QpCisrCWVjaG8g bTY4ay10ZWt0cm9uaXgtYnNkCisrCWV4aXQgOzsKKysgICAgKjpJUklYKjoqOiopCisrCWVjaG8g bWlwcy1zZ2ktaXJpeGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy9nJ2AKKysJ ZXhpdCA7OworKyAgICA/Pz8/Pz8/PzpBSVg/OlsxMl0uMToyKSAgICMgQUlYIDIuMi4xIG9yIEFJ WCAyLjEuMSBpcyBSVC9QQyBBSVguCisrCWVjaG8gcm9tcC1pYm0tYWl4ICAgICAjIHVuYW1lIC1t IGdpdmVzIGFuIDggaGV4LWNvZGUgQ1BVIGlkCisrCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5v dGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcKKysgICAgaSo4NjpBSVg6 KjoqKQorKwllY2hvIGkzODYtaWJtLWFpeAorKwlleGl0IDs7CisrICAgIGlhNjQ6QUlYOio6KikK KysJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCisrCQlJQk1fUkVWPWAvdXNyL2Jp bi9vc2xldmVsYAorKwllbHNlCisrCQlJQk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9S RUxFQVNFfQorKwlmaQorKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0K KysJZXhpdCA7OworKyAgICAqOkFJWDoyOjMpCisrCWlmIGdyZXAgYm9zMzI1IC91c3IvaW5jbHVk ZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkJZXZhbCAkc2V0X2NjX2Zvcl9idWls ZAorKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCQkjaW5jbHVkZSA8c3lzL3N5 c3RlbWNmZy5oPgorKworKwkJbWFpbigpCisrCQkJeworKwkJCWlmICghX19wb3dlcl9wYygpKQor KwkJCQlleGl0KDEpOworKwkJCXB1dHMoInBvd2VycGMtaWJtLWFpeDMuMi41Iik7CisrCQkJZXhp dCgwKTsKKysJCQl9CisrRU9GCisrCQlpZiAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXku YyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YAorKwkJdGhlbgorKwkJCWVjaG8gIiRTWVNURU1fTkFN RSIKKysJCWVsc2UKKysJCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKKysJCWZpCisrCWVsaWYg Z3JlcCBib3MzMjQgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisr CQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKKysJZWxzZQorKwkJZWNobyByczYwMDAtaWJtLWFp eDMuMgorKwlmaQorKwlleGl0IDs7CisrICAgICo6QUlYOio6WzQ1Nl0pCisrCUlCTV9DUFVfSUQ9 YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBwcm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwg YXdrICd7IHByaW50ICQxIH0nYAorKwlpZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVf SUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCUlCTV9BUkNIPXJz NjAwMAorKwllbHNlCisrCQlJQk1fQVJDSD1wb3dlcnBjCisrCWZpCisrCWlmIFsgLXggL3Vzci9i aW4vb3NsZXZlbCBdIDsgdGhlbgorKwkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKysJZWxz ZQorKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKysJZmkKKysJ ZWNobyAke0lCTV9BUkNIfS1pYm0tYWl4JHtJQk1fUkVWfQorKwlleGl0IDs7CisrICAgICo6QUlY Oio6KikKKysJZWNobyByczYwMDAtaWJtLWFpeAorKwlleGl0IDs7CisrICAgIGlibXJ0OjQuNEJT RDoqfHJvbXAtaWJtOkJTRDoqKQorKwllY2hvIHJvbXAtaWJtLWJzZDQuNAorKwlleGl0IDs7Cisr ICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9Q QyBCU0QgYW5kCisrCWVjaG8gcm9tcC1pYm0tYnNkJHtVTkFNRV9SRUxFQVNFfSAgICMgNC4zIHdp dGggdW5hbWUgYWRkZWQgdG8KKysJZXhpdCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0LjMKKysgICAgKjpCT1NYOio6KikKKysJZWNobyByczYw MDAtYnVsbC1ib3N4CisrCWV4aXQgOzsKKysgICAgRFBYLzI/MDA6Qi5PLlMuOio6KikKKysJZWNo byBtNjhrLWJ1bGwtc3lzdjMKKysJZXhpdCA7OworKyAgICA5MDAwL1szNF0/Pzo0LjNic2Q6MS4q OiopCisrCWVjaG8gbTY4ay1ocC1ic2QKKysJZXhpdCA7OworKyAgICBocDMwMDo0LjRCU0Q6Kjoq IHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQorKwllY2hvIG02OGstaHAtYnNkNC40CisrCWV4 aXQgOzsKKysgICAgOTAwMC9bMzQ2NzhdPz86SFAtVVg6KjoqKQorKwlIUFVYX1JFVj1gZWNobyAk e1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKKysJY2FzZSAiJHtVTkFN RV9NQUNISU5FfSIgaW4KKysJICAgIDkwMDAvMzE/ICkgICAgICAgICAgICBIUF9BUkNIPW02ODAw MCA7OworKwkgICAgOTAwMC9bMzRdPz8gKSAgICAgICAgIEhQX0FSQ0g9bTY4ayA7OworKwkgICAg OTAwMC9bNjc4XVswLTldWzAtOV0pCisrCQlpZiBbIC14IC91c3IvYmluL2dldGNvbmYgXTsgdGhl bgorKwkJICAgIHNjX2NwdV92ZXJzaW9uPWAvdXNyL2Jpbi9nZXRjb25mIFNDX0NQVV9WRVJTSU9O IDI+L2Rldi9udWxsYAorKyAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3Iv YmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCisrICAgICAgICAgICAgICAg ICAgICBjYXNlICIke3NjX2NwdV92ZXJzaW9ufSIgaW4KKysgICAgICAgICAgICAgICAgICAgICAg NTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7OyAjIENQVV9QQV9SSVNDMV8wCisrICAgICAgICAgICAg ICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorKyAg ICAgICAgICAgICAgICAgICAgICA1MzIpICAgICAgICAgICAgICAgICAgICAgICMgQ1BVX1BBX1JJ U0MyXzAKKysgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2tlcm5lbF9iaXRzfSIg aW4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsK KysgICAgICAgICAgICAgICAgICAgICAgICAgIDY0KSBIUF9BUkNIPSJocHBhMi4wdyIgOzsKKysJ CQkgICcnKSBIUF9BUkNIPSJocHBhMi4wIiA7OyAgICMgSFAtVVggMTAuMjAKKysgICAgICAgICAg ICAgICAgICAgICAgICBlc2FjIDs7CisrICAgICAgICAgICAgICAgICAgICBlc2FjCisrCQlmaQor KwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCisrCQkgICAgZXZhbCAkc2V0X2NjX2Zv cl9idWlsZAorKwkJICAgIHNlZCAncy9eICAgICAgICAgICAgICAvLycgPDwgRU9GID4kZHVtbXku YworKworKyAgICAgICAgICAgICAgI2RlZmluZSBfSFBVWF9TT1VSQ0UKKysgICAgICAgICAgICAg ICNpbmNsdWRlIDxzdGRsaWIuaD4KKysgICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4K KysKKysgICAgICAgICAgICAgIGludCBtYWluICgpCisrICAgICAgICAgICAgICB7CisrICAgICAg ICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisrICAgICAgICAgICAgICAgICAg bG9uZyBiaXRzID0gc3lzY29uZihfU0NfS0VSTkVMX0JJVFMpOworKyAgICAgICAgICAgICAgI2Vu ZGlmCisrICAgICAgICAgICAgICAgICAgbG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJT SU9OKTsKKysKKysgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkKKysgICAgICAgICAgICAg IAl7CisrICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAi KTsgYnJlYWs7CisrICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhw cGExLjEiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzJfMDoKKysg ICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKysgICAgICAgICAgICAg IAkgICAgc3dpdGNoIChiaXRzKQorKyAgICAgICAgICAgICAgCQl7CisrICAgICAgICAgICAgICAJ CWNhc2UgNjQ6IHB1dHMgKCJocHBhMi4wdyIpOyBicmVhazsKKysgICAgICAgICAgICAgIAkJY2Fz ZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCQlkZWZhdWx0 OiBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKKysgICAgICAgICAgICAgIAkJfSBicmVhazsKKysg ICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCisrICAg ICAgICAgICAgICAJICAgIHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAg I2VuZGlmCisrICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7 CisrICAgICAgICAgICAgICAJfQorKyAgICAgICAgICAgICAgICAgIGV4aXQgKDApOworKyAgICAg ICAgICAgICAgfQorK0VPRgorKwkJICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15 ICRkdW1teS5jIDI+L2Rldi9udWxsKSAmJiBIUF9BUkNIPWAkZHVtbXlgCisrCQkgICAgdGVzdCAt eiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQorKwkJZmkgOzsKKysJZXNhYworKwlpZiBbICR7 SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KKysJdGhlbgorKwkgICAgZXZhbCAkc2V0X2NjX2Zvcl9i dWlsZAorKworKwkgICAgIyBocHBhMi4wdy1ocC1ocHV4KiBoYXMgYSA2NC1iaXQga2VybmVsIGFu ZCBhIGNvbXBpbGVyIGdlbmVyYXRpbmcKKysJICAgICMgMzItYml0IGNvZGUuICBocHBhNjQtaHAt aHB1eCogaGFzIHRoZSBzYW1lIGtlcm5lbCBhbmQgYSBjb21waWxlcgorKwkgICAgIyBnZW5lcmF0 aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFuZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToK KysJICAgICMKKysJICAgICMgJCBDQ19GT1JfQlVJTEQ9Y2MgLi9jb25maWcuZ3Vlc3MKKysJICAg ICMgPT4gaHBwYTIuMHctaHAtaHB1eDExLjIzCisrCSAgICAjICQgQ0NfRk9SX0JVSUxEPSJjYyAr REEyLjB3IiAuL2NvbmZpZy5ndWVzcworKwkgICAgIyA9PiBocHBhNjQtaHAtaHB1eDExLjIzCisr CisrCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+ L2Rldi9udWxsKSB8CisrCQlncmVwIF9fTFA2NF9fID4vZGV2L251bGwKKysJICAgIHRoZW4KKysJ CUhQX0FSQ0g9ImhwcGEyLjB3IgorKwkgICAgZWxzZQorKwkJSFBfQVJDSD0iaHBwYTY0IgorKwkg ICAgZmkKKysJZmkKKysJZWNobyAke0hQX0FSQ0h9LWhwLWhwdXgke0hQVVhfUkVWfQorKwlleGl0 IDs7CisrICAgIGlhNjQ6SFAtVVg6KjoqKQorKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVB U0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKKysJZWNobyBpYTY0LWhwLWhwdXgke0hQVVhf UkVWfQorKwlleGl0IDs7CisrICAgIDMwNTAqOkhJLVVYOio6KikKKysJZXZhbCAkc2V0X2NjX2Zv cl9idWlsZAorKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworKwkjaW5jbHVkZSA8dW5p c3RkLmg+CisrCWludAorKwltYWluICgpCisrCXsKKysJICBsb25nIGNwdSA9IHN5c2NvbmYgKF9T Q19DUFVfVkVSU0lPTik7CisrCSAgLyogVGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lT X0hQX01DNjhLIGVycm9uZW91c2x5IHJldHVybnMKKysJICAgICB0cnVlIGZvciBDUFVfUEFfUklT QzFfMC4gIENQVV9JU19QQV9SSVNDIHJldHVybnMgY29ycmVjdAorKwkgICAgIHJlc3VsdHMsIGhv d2V2ZXIuICAqLworKwkgIGlmIChDUFVfSVNfUEFfUklTQyAoY3B1KSkKKysJICAgIHsKKysJICAg ICAgc3dpdGNoIChjcHUpCisrCQl7CisrCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJo cHBhMS4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzFf MTogcHV0cyAoImhwcGExLjEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBjYXNlIENQ VV9QQV9SSVNDMl8wOiBwdXRzICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Cisr CQkgIGRlZmF1bHQ6IHB1dHMgKCJocHBhLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKysJCX0K KysJICAgIH0KKysJICBlbHNlIGlmIChDUFVfSVNfSFBfTUM2OEsgKGNwdSkpCisrCSAgICBwdXRz ICgibTY4ay1oaXRhY2hpLWhpdXh3ZTIiKTsKKysJICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFj aGktaGl1eHdlMiIpOworKwkgIGV4aXQgKDApOworKwl9CisrRU9GCisrCSRDQ19GT1JfQlVJTEQg LW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgICYmCisrCQl7IGVjaG8g IiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KKysJZWNobyB1bmtub3duLWhpdGFjaGktaGl1eHdlMgor KwlleGl0IDs7CisrICAgIDkwMDAvNz8/OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5XTo0LjNic2Q6 KjoqICkKKysJZWNobyBocHBhMS4xLWhwLWJzZAorKwlleGl0IDs7CisrICAgIDkwMDAvOD8/OjQu M2JzZDoqOiopCisrCWVjaG8gaHBwYTEuMC1ocC1ic2QKKysJZXhpdCA7OworKyAgICAqOT8/KjpN UEUvaVg6KjoqIHwgKjMwMDAqOk1QRS9pWDoqOiopCisrCWVjaG8gaHBwYTEuMC1ocC1tcGVpeAor KwlleGl0IDs7CisrICAgIGhwNz8/Ok9TRjE6KjoqIHwgaHA4P1s3OV06T1NGMToqOiogKQorKwll Y2hvIGhwcGExLjEtaHAtb3NmCisrCWV4aXQgOzsKKysgICAgaHA4Pz86T1NGMToqOiopCisrCWVj aG8gaHBwYTEuMC1ocC1vc2YKKysJZXhpdCA7OworKyAgICBpKjg2Ok9TRjE6KjoqKQorKwlpZiBb IC14IC91c3Ivc2Jpbi9zeXN2ZXJzaW9uIF0gOyB0aGVuCisrCSAgICBlY2hvICR7VU5BTUVfTUFD SElORX0tdW5rbm93bi1vc2YxbWsKKysJZWxzZQorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tb3NmMQorKwlmaQorKwlleGl0IDs7CisrICAgIHBhcmlzYyo6TGl0ZXMqOio6KikK KysJZWNobyBocHBhMS4xLWhwLWxpdGVzCisrCWV4aXQgOzsKKysgICAgQzEqOkNvbnZleE9TOio6 KiB8IGNvbnZleDpDb252ZXhPUzpDMSo6KikKKysJZWNobyBjMS1jb252ZXgtYnNkCisrICAgICAg ICBleGl0IDs7CisrICAgIEMyKjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzIqOiop CisrCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYworKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1i c2QKKysJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QKKysJZmkKKysgICAgICAgIGV4aXQgOzsKKysg ICAgQzM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM0KjoqKQorKwllY2hvIGMz NC1jb252ZXgtYnNkCisrICAgICAgICBleGl0IDs7CisrICAgIEMzOCo6Q29udmV4T1M6KjoqIHwg Y29udmV4OkNvbnZleE9TOkMzOCo6KikKKysJZWNobyBjMzgtY29udmV4LWJzZAorKyAgICAgICAg ZXhpdCA7OworKyAgICBDNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkM0KjoqKQor KwllY2hvIGM0LWNvbnZleC1ic2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQ1JBWSpZLU1QOio6 KjoqKQorKwllY2hvIHltcC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3Mv XC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIENSQVkqW0EtWl05MDoqOio6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSBcCisrCXwgc2Vk IC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAorKwkgICAgICAtZSB5L0FCQ0RFRkdISUpL TE1OT1BRUlNUVVZXWFlaL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LyBcCisrCSAgICAgIC1l ICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICBDUkFZKlRTOio6KjoqKQorKwllY2hv IHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgv JworKwlleGl0IDs7CisrICAgIENSQVkqVDNFOio6KjoqKQorKwllY2hvIGFscGhhZXY1LWNyYXkt dW5pY29zbWske1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKysJZXhp dCA7OworKyAgICBDUkFZKlNWMToqOio6KikKKysJZWNobyBzdjEtY3JheS11bmljb3Mke1VOQU1F X1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICAqOlVO SUNPUy9tcDoqOiopCisrCWVjaG8gY3JheW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9 IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKysJZXhpdCA7OworKyAgICBGMzBbMDFdOlVOSVhf U3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklYX1N5c3RlbV9WOio6KikKKysJRlVKSVRTVV9QUk9DPWB1 bmFtZSAtbSB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1u b3BxcnN0dXZ3eHl6J2AKKysgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNl ZCAtZSAncy9cLy8vJ2AKKysgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFT RX0gfCBzZWQgLWUgJ3MvIC9fLydgCisrICAgICAgICBlY2hvICIke0ZVSklUU1VfUFJPQ30tZnVq aXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgorKyAgICAgICAgZXhpdCA7OworKyAg ICA1MDAwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCisrICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUg LXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJz dHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCisrICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAk e1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVm Z2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAorKyAgICAgICAgZWNobyAi c3BhcmMtZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgorKwlleGl0IDs7Cisr ICAgIGkqODY6QlNELzM4NjoqOiogfCBpKjg2OkJTRC9PUzoqOiogfCAqOkFzY2VuZFwgRW1iZWRk ZWQvT1M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtYnNkaSR7VU5BTUVfUkVMRUFT RX0KKysJZXhpdCA7OworKyAgICBzcGFyYyo6QlNEL09TOio6KikKKysJZWNobyBzcGFyYy11bmtu b3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpCU0QvT1M6KjoqKQor KwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQorKwll eGl0IDs7CisrICAgICo6RnJlZUJTRDoqOiopCisrCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgor KwkgICAgcGM5OCkKKysJCWVjaG8gaTM4Ni11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JF TEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisrCSAgICBhbWQ2NCkKKysJCWVjaG8geDg2 XzY0LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0u Ki8vJ2AgOzsKKysJICAgICopCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVl YnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OworKwllc2Fj CisrCWV4aXQgOzsKKysgICAgaSo6Q1lHV0lOKjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtY3lnd2luCisrCWV4aXQgOzsKKysgICAgKjpNSU5HVyo6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLW1pbmd3MzIKKysJZXhpdCA7OworKyAgICBpKjp3aW5kb3dzMzIqOiopCisrICAg IAkjIHVuYW1lIC1tIGluY2x1ZGVzICItcGMiIG9uIHRoaXMgc3lzdGVtLgorKyAgICAJZWNobyAk e1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIKKysJZXhpdCA7OworKyAgICBpKjpQVyo6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLXB3MzIKKysJZXhpdCA7OworKyAgICAqOkludGVyaXgqOlsz NDU2XSopCisrICAgIAljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KKysJICAgIHg4NikKKysJCWVj aG8gaTU4Ni1wYy1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwkgICAgRU02 NFQgfCBhdXRoZW50aWNhbWQgfCBnZW51aW5laW50ZWwpCisrCQllY2hvIHg4Nl82NC11bmtub3du LWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisrCQlleGl0IDs7CisrCSAgICBJQTY0KQorKwkJZWNo byBpYTY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKysJCWV4aXQgOzsKKysJZXNh YyA7OworKyAgICBbMzQ1XTg2OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93c185ODoqIHwg WzM0NV04NjpXaW5kb3dzX05UOiopCisrCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCisr CWV4aXQgOzsKKysgICAgaSo6V2luZG93c19OVCo6KiB8IFBlbnRpdW0qOldpbmRvd3NfTlQqOiop CisrCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmlj IFBPU0lYIHN1YnN5c3RlbT8KKysJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVy c2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKKysJIyBVTkFNRV9NQUNISU5FIGJhc2VkIG9u IHRoZSBvdXRwdXQgb2YgdW5hbWUgaW5zdGVhZCBvZiBpMzg2PworKwllY2hvIGk1ODYtcGMtaW50 ZXJpeAorKwlleGl0IDs7CisrICAgIGkqOlVXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5F fS1wYy11d2luCisrCWV4aXQgOzsKKysgICAgYW1kNjQ6Q1lHV0lOKjoqOiogfCB4ODZfNjQ6Q1lH V0lOKjoqOiopCisrCWVjaG8geDg2XzY0LXVua25vd24tY3lnd2luCisrCWV4aXQgOzsKKysgICAg cCo6Q1lHV0lOKjoqKQorKwllY2hvIHBvd2VycGNsZS11bmtub3duLWN5Z3dpbgorKwlleGl0IDs7 CisrICAgIHByZXAqOlN1bk9TOjUuKjoqKQorKwllY2hvIHBvd2VycGNsZS11bmtub3duLXNvbGFy aXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsK KysgICAgKjpHTlU6KjoqKQorKwkjIHRoZSBHTlUgc3lzdGVtCisrCWVjaG8gYGVjaG8gJHtVTkFN RV9NQUNISU5FfXxzZWQgLWUgJ3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VOQU1F X1JFTEVBU0V9fHNlZCAtZSAncywvLiokLCwnYAorKwlleGl0IDs7CisrICAgICo6R05VLyo6Kjoq KQorKwkjIG90aGVyIHN5c3RlbXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKysJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdzLF5b Xi9dKi8sLCcgfCB0ciAnW0EtWl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQg LWUgJ3MvWy0oXS4qLy8nYC1nbnUKKysJZXhpdCA7OworKyAgICBpKjg2Ok1pbml4Oio6KikKKysJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbml4CisrCWV4aXQgOzsKKysgICAgYXJtKjpMaW51 eDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJaWYgZWNobyBfX0FSTV9FQUJJX18g fCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorKwkgICAgfCBncmVwIC1xIF9fQVJN X0VBQklfXworKwl0aGVuCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51 eC1nbnUKKysJZWxzZQorKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgt Z251ZWFiaQorKwlmaQorKwlleGl0IDs7CisrICAgIGF2cjMyKjpMaW51eDoqOiopCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGNyaXM6 TGludXg6KjoqKQorKwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBj cmlzdjMyOkxpbnV4Oio6KikKKysJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251CisrCWV4aXQg OzsKKysgICAgZnJ2OkxpbnV4Oio6KikKKysgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251 CisrCWV4aXQgOzsKKysgICAgaWE2NDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5F fS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIG0zMnIqOkxpbnV4Oio6KikKKysJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAg bTY4KjpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdu dQorKwlleGl0IDs7CisrICAgIG1pcHM6TGludXg6KjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1 aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCSN1bmRlZiBDUFUKKysJI3Vu ZGVmIG1pcHMKKysJI3VuZGVmIG1pcHNlbAorKwkjaWYgZGVmaW5lZChfX01JUFNFTF9fKSB8fCBk ZWZpbmVkKF9fTUlQU0VMKSB8fCBkZWZpbmVkKF9NSVBTRUwpIHx8IGRlZmluZWQoTUlQU0VMKQor KwlDUFU9bWlwc2VsCisrCSNlbHNlCisrCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmlu ZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisrCUNQ VT1taXBzCisrCSNlbHNlCisrCUNQVT0KKysJI2VuZGlmCisrCSNlbmRpZgorK0VPRgorKwlldmFs ICJgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCisrCSAg ICAvXkNQVS97CisrCQlzOiA6OmcKKysJCXAKKysJICAgIH0nYCIKKysJdGVzdCB4IiR7Q1BVfSIg IT0geCAmJiB7IGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKysJOzsK KysgICAgbWlwczY0OkxpbnV4Oio6KikKKysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwlzZWQg J3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworKwkjdW5kZWYgQ1BVCisrCSN1bmRlZiBtaXBzNjQK KysJI3VuZGVmIG1pcHM2NGVsCisrCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQo X19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCisrCUNQVT1t aXBzNjRlbAorKwkjZWxzZQorKwkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9f TUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQorKwlDUFU9bWlw czY0CisrCSNlbHNlCisrCUNQVT0KKysJI2VuZGlmCisrCSNlbmRpZgorK0VPRgorKwlldmFsICJg JENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCisrCSAgICAv XkNQVS97CisrCQlzOiA6OmcKKysJCXAKKysJICAgIH0nYCIKKysJdGVzdCB4IiR7Q1BVfSIgIT0g eCAmJiB7IGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKysJOzsKKysg ICAgb3IzMjpMaW51eDoqOiopCisrCWVjaG8gb3IzMi11bmtub3duLWxpbnV4LWdudQorKwlleGl0 IDs7CisrICAgIHBwYzpMaW51eDoqOiopCisrCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4LWdu dQorKwlleGl0IDs7CisrICAgIHBwYzY0OkxpbnV4Oio6KikKKysJZWNobyBwb3dlcnBjNjQtdW5r bm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBhbHBoYTpMaW51eDoqOiopCisrCWNhc2Ug YHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9wJyA8IC9wcm9jL2NwdWluZm9g IGluCisrCSAgRVY1KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjUgOzsKKysJICBFVjU2KSAgVU5B TUVfTUFDSElORT1hbHBoYWV2NTYgOzsKKysJICBQQ0E1NikgVU5BTUVfTUFDSElORT1hbHBoYXBj YTU2IDs7CisrCSAgUENBNTcpIFVOQU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OworKwkgIEVWNikg ICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7CisrCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxw aGFldjY3IDs7CisrCSAgRVY2OCopIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY4IDs7CisrICAgICAg ICBlc2FjCisrCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jpbi9zaCB8IGdyZXAgbGQuc28u MSA+L2Rldi9udWxsCisrCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7IGVs c2UgTElCQz0iIiA7IGZpCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdu dSR7TElCQ30KKysJZXhpdCA7OworKyAgICBwYWRyZTpMaW51eDoqOiopCisrCWVjaG8gc3BhcmMt dW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBw YTpMaW51eDoqOiopCisrCSMgTG9vayBmb3IgQ1BVIGxldmVsCisrCWNhc2UgYGdyZXAgJ15jcHVb XmEtel0qOicgL3Byb2MvY3B1aW5mbyAyPi9kZXYvbnVsbCB8IGN1dCAtZCcgJyAtZjJgIGluCisr CSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7CisrCSAgUEE4KikgZWNo byBocHBhMi4wLXVua25vd24tbGludXgtZ251IDs7CisrCSAgKikgICAgZWNobyBocHBhLXVua25v d24tbGludXgtZ251IDs7CisrCWVzYWMKKysJZXhpdCA7OworKyAgICBwYXJpc2M2NDpMaW51eDoq OiogfCBocHBhNjQ6TGludXg6KjoqKQorKwllY2hvIGhwcGE2NC11bmtub3duLWxpbnV4LWdudQor KwlleGl0IDs7CisrICAgIHMzOTA6TGludXg6KjoqIHwgczM5MHg6TGludXg6KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0taWJtLWxpbnV4CisrCWV4aXQgOzsKKysgICAgc2g2NCo6TGludXg6 KjoqKQorKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgc2gqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgc3BhcmM6TGludXg6KjoqIHwgc3BhcmM2NDpM aW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwll eGl0IDs7CisrICAgIHZheDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMt bGludXgtZ251CisrCWV4aXQgOzsKKysgICAgeDg2XzY0OkxpbnV4Oio6KikKKysJZWNobyB4ODZf NjQtdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICB4dGVuc2EqOkxpbnV4Oio6KikK KysgICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7 CisrICAgIGkqODY6TGludXg6KjoqKQorKwkjIFRoZSBCRkQgbGlua2VyIGtub3dzIHdoYXQgdGhl IGRlZmF1bHQgb2JqZWN0IGZpbGUgZm9ybWF0IGlzLCBzbworKwkjIGZpcnN0IHNlZSBpZiBpdCB3 aWxsIHRlbGwgdXMuIGNkIHRvIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmV2ZW50CisrCSMgcHJv YmxlbXMgd2l0aCBvdGhlciBwcm9ncmFtcyBvciBkaXJlY3RvcmllcyBjYWxsZWQgYGxkJyBpbiB0 aGUgcGF0aC4KKysJIyBTZXQgTENfQUxMPUMgdG8gZW5zdXJlIGxkIG91dHB1dHMgbWVzc2FnZXMg aW4gRW5nbGlzaC4KKysJbGRfc3VwcG9ydGVkX3RhcmdldHM9YGNkIC87IExDX0FMTD1DIGxkIC0t aGVscCAyPiYxIFwKKysJCQkgfCBzZWQgLW5lICcvc3VwcG9ydGVkIHRhcmdldHM6LyFkCisrCQkJ CSAgICBzL1sgCV1bIAldKi8gL2cKKysJCQkJICAgIHMvLipzdXBwb3J0ZWQgdGFyZ2V0czogKi8v CisrCQkJCSAgICBzLyAuKi8vCisrCQkJCSAgICBwJ2AKKysgICAgICAgIGNhc2UgIiRsZF9zdXBw b3J0ZWRfdGFyZ2V0cyIgaW4KKysJICBlbGYzMi1pMzg2KQorKwkJVEVOVEFUSVZFPSIke1VOQU1F X01BQ0hJTkV9LXBjLWxpbnV4LWdudSIKKysJCTs7CisrCSAgYS5vdXQtaTM4Ni1saW51eCkKKysJ CWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251YW91dCIKKysJCWV4aXQgOzsKKysJ ICAiIikKKysJCSMgRWl0aGVyIGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxk KSBvcgorKwkJIyBvbmUgdGhhdCBkb2VzIG5vdCBnaXZlIHVzIHVzZWZ1bCAtLWhlbHAuCisrCQll Y2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudW9sZGxkIgorKwkJZXhpdCA7OworKwll c2FjCisrCSMgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQg b3IgZWxmCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+ JGR1bW15LmMKKysJI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCSNpZmRlZiBfX0VMRl9fCisrCSMg aWZkZWYgX19HTElCQ19fCisrCSMgIGlmIF9fR0xJQkNfXyA+PSAyCisrCUxJQkM9Z251CisrCSMg IGVsc2UKKysJTElCQz1nbnVsaWJjMQorKwkjICBlbmRpZgorKwkjIGVsc2UKKysJTElCQz1nbnVs aWJjMQorKwkjIGVuZGlmCisrCSNlbHNlCisrCSNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIp IHx8IGRlZmluZWQoX19QR0kpIHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX1NV TlBST19DQykKKysJTElCQz1nbnUKKysJI2Vsc2UKKysJTElCQz1nbnVhb3V0CisrCSNlbmRpZgor KwkjZW5kaWYKKysJI2lmZGVmIF9fZGlldGxpYmNfXworKwlMSUJDPWRpZXRsaWJjCisrCSNlbmRp ZgorK0VPRgorKwlldmFsICJgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8 IHNlZCAtbiAnCisrCSAgICAvXkxJQkMveworKwkJczogOjpnCisrCQlwCisrCSAgICB9J2AiCisr CXRlc3QgeCIke0xJQkN9IiAhPSB4ICYmIHsKKysJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMt bGludXgtJHtMSUJDfSIKKysJCWV4aXQKKysJfQorKwl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4 ICYmIHsgZWNobyAiJHtURU5UQVRJVkV9IjsgZXhpdDsgfQorKwk7OworKyAgICBpKjg2OkRZTklY L3B0eDo0KjoqKQorKwkjIHB0eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlO SVgvcHR4IGluIHRoZXJlLgorKwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQg cHV0IHRoZSBub2RlbmFtZSBpbiBib3RoCisrCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisrCWVj aG8gaTM4Ni1zZXF1ZW50LXN5c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpVTklYX1NWOjQuMk1Q OjIuKikKKysgICAgICAgICMgVW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0 IGhhcyBpdHMgb3duIHZlcnNpb24KKysgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3 aXRoIDIuLi4KKysgICAgICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5 c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKKysJIyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1z LgorKyAgICAgICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQu CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059Cisr CWV4aXQgOzsKKysgICAgaSo4NjpPUy8yOio6KikKKysJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmlu ZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKKysJIyBpcyBwcm9iYWJseSBp bnN0YWxsZWQuCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14CisrCWV4aXQgOzsK KysgICAgaSo4NjpYVFMtMzAwOio6U1RPUCkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tc3RvcAorKwlleGl0IDs7CisrICAgIGkqODY6YXRoZW9zOio6KikKKysJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tYXRoZW9zCisrCWV4aXQgOzsKKysgICAgaSo4NjpzeWxsYWJsZToq OiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeWxsYWJsZQorKwlleGl0IDs7CisrICAg IGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6 NC4wKjoqKQorKwllY2hvIGkzODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4 aXQgOzsKKysgICAgaSo4NjoqRE9TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1z ZG9zZGpncHAKKysJZXhpdCA7OworKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQu KjoqKQorKwlVTkFNRV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8v J2AKKysJaWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rl di9udWxsOyB0aGVuCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1F X1JFTH0KKysJZWxzZQorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JF TH0KKysJZmkKKysJZXhpdCA7OworKyAgICBpKjg2Oio6NTpbNjc4XSopCisrICAgIAkjIFVuaXhX YXJlIDcueCwgT3BlblVOSVggYW5kIE9wZW5TZXJ2ZXIgNi4KKysJY2FzZSBgL2Jpbi91bmFtZSAt WCB8IGdyZXAgIl5NYWNoaW5lImAgaW4KKysJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9 aTQ4NiA7OworKwkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7CisrCSAg ICAqUGVudCp8KkNlbGVyb24pIFVOQU1FX01BQ0hJTkU9aTY4NiA7OworKwllc2FjCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNU RU19JHtVTkFNRV9WRVJTSU9OfQorKwlleGl0IDs7CisrICAgIGkqODY6KjozLjI6KikKKysJaWYg dGVzdCAtZiAvdXNyL29wdGlvbnMvY2IubmFtZTsgdGhlbgorKwkJVU5BTUVfUkVMPWBzZWQgLW4g J3MvLipWZXJzaW9uIC8vcCcgPC91c3Ivb3B0aW9ucy9jYi5uYW1lYAorKwkJZWNobyAke1VOQU1F X01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKKysJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9u dWxsID4vZGV2L251bGwgOyB0aGVuCisrCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAg UmVsZWFzZXxzZWQgLWUgJ3MvLio9IC8vJylgCisrCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4 NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKKysJCSgvYmluL3VuYW1lIC1YfGdy ZXAgJ15NYWNoaW5lLipQZW50aXVtJyA+L2Rldi9udWxsKSBcCisrCQkJJiYgVU5BTUVfTUFDSElO RT1pNTg2CisrCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2 L251bGwpIFwKKysJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKKysJCSgvYmluL3VuYW1lIC1YfGdy ZXAgJ15NYWNoaW5lLipQZW50aXVtIFBybycgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01B Q0hJTkU9aTY4NgorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKKysJ ZWxzZQorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorKwlmaQorKwlleGl0IDs7 CisrICAgIHBjOio6KjoqKQorKwkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKKysgICAg ICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50 cyBub3RoaW5nIGFib3V0CisrICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2Fm ZSBieSBhc3N1bWluZyBpMzg2LgorKwllY2hvIGkzODYtcGMtbXNkb3NkamdwcAorKyAgICAgICAg ZXhpdCA7OworKyAgICBJbnRlbDpNYWNoOjMqOiopCisrCWVjaG8gaTM4Ni1wYy1tYWNoMworKwll eGl0IDs7CisrICAgIHBhcmFnb246KjoqOiopCisrCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisrCWV4 aXQgOzsKKysgICAgaTg2MDoqOjQuKjoqKSAjIGk4NjAtU1ZSNAorKwlpZiBncmVwIFN0YXJkZW50 IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorKwkgIGVj aG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBp ODYwLVNWUjQKKysJZWxzZSAjIEFkZCBvdGhlciBpODYwLVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0 aGV5IGFyZSBkaXNjb3ZlcmVkLgorKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JF TEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisrCWZpCisrCWV4aXQgOzsKKysgICAgbWluaSo6 Q1RJWDpTWVMqNToqKQorKwkjICJtaW5pZnJhbWUiCisrCWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQt c3lzdgorKwlleGl0IDs7CisrICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKKysJZWNobyBt NjhrLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7CisrICAgIE02ODA/MDpELU5JWDo1LjM6KikK KysJZWNobyBtNjhrLWRpYWItZG5peAorKwlleGl0IDs7CisrICAgIE02OCo6KjpSM1ZbNTY3OF0q OiopCisrCXRlc3QgLXIgL3N5c1Y2OCAmJiB7IGVjaG8gJ202OGstbW90b3JvbGEtc3lzdic7IGV4 aXQ7IH0gOzsKKysgICAgM1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwg M1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMu MCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBT SEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjApCisrCU9TX1JFTD0nJworKwl0ZXN0IC1y IC9ldGMvLnJlbGlkIFwKKysJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAt OV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYv bnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0 LjMke09TX1JFTH07IGV4aXQ7IH0KKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4v Z3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMk e09TX1JFTH07IGV4aXQ7IH0gOzsKKysgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6 NC4wOiopCisrICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rl di9udWxsIFwKKysgICAgICAgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7 CisrICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorKwllY2hvIG02 OGstdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWM2ODAz MDpVTklYX1N5c3RlbV9WOjQuKjoqKQorKwllY2hvIG02OGstYXRhcmktc3lzdjQKKysJZXhpdCA7 OworKyAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWx5bnhv cyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICByczYwMDA6THlueE9TOjIuKjoqKQor KwllY2hvIHJzNjAwMC11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICBQb3dlclBDOkx5bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBv d2VyUEM6THlueE9TOjQuMCo6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisrCWVjaG8g bWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSTSo6UmVsaWFu dFVOSVgtKjoqOiopCisrCWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICBSTSo6 U0lOSVgtKjoqOiopCisrCWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICAqOlNJ TklYLSo6KjoqKQorKwlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgor KwkJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1zbmktc3lzdjQKKysJZWxzZQorKwkJZWNobyBuczMyay1zbmktc3lzdgorKwlm aQorKwlleGl0IDs7CisrICAgIFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGgg SE1QIElYIDQwMDAnIFNWUjQvTVAgZWZmb3J0CisrICAgICAgICAgICAgICAgICAgICAgICMgc2F5 cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKysgICAgICAgIGVjaG8gaTU4 Ni11bmlzeXMtc3lzdjQKKysgICAgICAgIGV4aXQgOzsKKysgICAgKjpVTklYX1N5c3RlbV9WOjQq OkZUWCopCisrCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KKysJ IyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVz PyAtZGptCisrCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjoq Oio6RlRYKikKKysJIyBGcm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisrCWVjaG8gaTg2MC1z dHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpWT1M6KjoqKQorKwkjIEZyb20gUGF1 bC5HcmVlbkBzdHJhdHVzLmNvbS4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9z CisrCWV4aXQgOzsKKysgICAgKjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVz LmNvbS4KKysJZWNobyBocHBhMS4xLXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAgbWM2OCo6 QS9VWDoqOiopCisrCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgbmV3cyo6TkVXUy1PUzo2KjoqKQorKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2Cisr CWV4aXQgOzsKKysgICAgUlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6 KjoqIHwgUiowMDA6VU5JWF9TVjoqOiopCisrCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorKwkg ICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZWxzZQorKwkgICAg ICAgIGVjaG8gbWlwcy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrICAgICAg ICBleGl0IDs7CisrICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2Fy ZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KKysJZWNobyBwb3dlcnBjLWJlLWJlb3MKKysJZXhpdCA7 OworKyAgICBCZU1hYzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9u ZSwgUFBDIG9ubHkuCisrCWVjaG8gcG93ZXJwYy1hcHBsZS1iZW9zCisrCWV4aXQgOzsKKysgICAg QmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJ ZWNobyBpNTg2LXBjLWJlb3MKKysJZXhpdCA7OworKyAgICBCZVBDOkhhaWt1Oio6KikJIyBIYWlr dSBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCisrCWVjaG8gaTU4Ni1wYy1oYWlrdQor KwlleGl0IDs7CisrICAgIFNYLTQ6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4NC1uZWMtc3VwZXJ1 eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBTWC01OlNVUEVSLVVYOio6KikKKysJ ZWNobyBzeDUtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gt NjpTVVBFUi1VWDoqOiopCisrCWVjaG8gc3g2LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQor KwlleGl0IDs7CisrICAgIFNYLTc6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4Ny1uZWMtc3VwZXJ1 eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBTWC04OlNVUEVSLVVYOio6KikKKysJ ZWNobyBzeDgtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gt OFI6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4OHItbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9 CisrCWV4aXQgOzsKKysgICAgUG93ZXIqOlJoYXBzb2R5Oio6KikKKysJZWNobyBwb3dlcnBjLWFw cGxlLXJoYXBzb2R5JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UmhhcHNvZHk6 KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVB U0V9CisrCWV4aXQgOzsKKysgICAgKjpEYXJ3aW46KjoqKQorKwlVTkFNRV9QUk9DRVNTT1I9YHVu YW1lIC1wYCB8fCBVTkFNRV9QUk9DRVNTT1I9dW5rbm93bgorKwljYXNlICRVTkFNRV9QUk9DRVNT T1IgaW4KKysJICAgIHVua25vd24pIFVOQU1FX1BST0NFU1NPUj1wb3dlcnBjIDs7CisrCWVzYWMK KysJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQor KwlleGl0IDs7CisrICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQor KwlVTkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYAorKwlpZiB0ZXN0ICIkVU5BTUVfUFJPQ0VTU09S IiA9ICJ4ODYiOyB0aGVuCisrCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgorKwkJVU5BTUVfTUFDSElO RT1wYworKwlmaQorKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50 by1xbngke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpRTlg6Kjo0KikKKysJZWNo byBpMzg2LXBjLXFueAorKwlleGl0IDs7CisrICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6KikK KysJZWNobyBuc2UtdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBO U1ItPzpOT05TVE9QX0tFUk5FTDoqOiopCisrCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JF TEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpOb25TdG9wLVVYOio6KikKKysJZWNobyBtaXBzLWNv bXBhcS1ub25zdG9wdXgKKysJZXhpdCA7OworKyAgICBCUzIwMDA6UE9TSVgqOio6KikKKysJZWNo byBiczIwMDAtc2llbWVucy1zeXN2CisrCWV4aXQgOzsKKysgICAgRFMvKjpVTklYX1N5c3RlbV9W Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JF TEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpQbGFuOToqOiopCisrCSMgInVuYW1lIC1tIiBpcyBu b3QgY29uc2lzdGVudCwgc28gdXNlICRjcHV0eXBlIGluc3RlYWQuIDM4NgorKwkjIGlzIGNvbnZl cnRlZCB0byBpMzg2IGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIHg4NgorKwkjIG9wZXJhdGlu ZyBzeXN0ZW1zLgorKwlpZiB0ZXN0ICIkY3B1dHlwZSIgPSAiMzg2IjsgdGhlbgorKwkgICAgVU5B TUVfTUFDSElORT1pMzg2CisrCWVsc2UKKysJICAgIFVOQU1FX01BQ0hJTkU9IiRjcHV0eXBlIgor KwlmaQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQorKwlleGl0IDs7Cisr ICAgICo6VE9QUy0xMDoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMTAKKysJZXhpdCA7 OworKyAgICAqOlRFTkVYOio6KikKKysJZWNobyBwZHAxMC11bmtub3duLXRlbmV4CisrCWV4aXQg OzsKKysgICAgS1MxMDpUT1BTLTIwOio6KiB8IEtMMTA6VE9QUy0yMDoqOiogfCBUWVBFNDpUT1BT LTIwOio6KikKKysJZWNobyBwZHAxMC1kZWMtdG9wczIwCisrCWV4aXQgOzsKKysgICAgWEtMLTE6 VE9QUy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKKysJZWNobyBwZHAxMC14a2wtdG9wczIw CisrCWV4aXQgOzsKKysgICAgKjpUT1BTLTIwOio6KikKKysJZWNobyBwZHAxMC11bmtub3duLXRv cHMyMAorKwlleGl0IDs7CisrICAgICo6SVRTOio6KikKKysJZWNobyBwZHAxMC11bmtub3duLWl0 cworKwlleGl0IDs7CisrICAgIFNFSToqOio6U0VJVVgpCisrICAgICAgICBlY2hvIG1pcHMtc2Vp LXNlaXV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6RHJhZ29uRmx5Oio6KikK KysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZHJhZ29uZmx5YGVjaG8gJHtVTkFNRV9S RUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYAorKwlleGl0IDs7CisrICAgICo6KlZNUzoqOiop CisrICAgIAlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAorKwljYXNlICIk e1VOQU1FX01BQ0hJTkV9IiBpbgorKwkgICAgQSopIGVjaG8gYWxwaGEtZGVjLXZtcyA7IGV4aXQg OzsKKysJICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyA7IGV4aXQgOzsKKysJICAgIFYqKSBlY2hv IHZheC1kZWMtdm1zIDsgZXhpdCA7OworKwllc2FjIDs7CisrICAgICo6WEVOSVg6KjpTeXNWKQor KwllY2hvIGkzODYtcGMteGVuaXgKKysJZXhpdCA7OworKyAgICBpKjg2OnNreW9zOio6KikKKysJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNreW9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfWAgfCBz ZWQgLWUgJ3MvIC4qJC8vJworKwlleGl0IDs7CisrICAgIGkqODY6cmRvczoqOiopCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1yZG9zCisrCWV4aXQgOzsKKytlc2FjCisrCisrI2VjaG8gJyhO byB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCisr I2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06 JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgorKworK2V2YWwgJHNldF9jY19mb3JfYnVpbGQKKytjYXQg PiRkdW1teS5jIDw8RU9GCisrI2lmZGVmIF9TRVFVRU5UXworKyMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisrIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorKyNlbmRpZgorK21haW4gKCkKKyt7Cisr I2lmIGRlZmluZWQgKHNvbnkpCisrI2lmIGRlZmluZWQgKE1JUFNFQikKKysgIC8qIEJGRCB3YW50 cyAiYnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5n ZWQsCisrICAgICBJIGRvbid0IGtub3cuLi4uICAqLworKyAgcHJpbnRmICgibWlwcy1zb255LWJz ZFxuIik7IGV4aXQgKDApOworKyNlbHNlCisrI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyAgcHJp bnRmICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAorKyNpZmRlZiBORVdTT1M0CisrICAgICAgICAg ICI0IgorKyNlbHNlCisrCSAgIiIKKysjZW5kaWYKKysgICAgICAgICApOyBleGl0ICgwKTsKKysj ZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX19hcm0pICYmIGRlZmluZWQgKF9fYWNv cm4pICYmIGRlZmluZWQgKF9fdW5peCkKKysgIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXhcbiIp OyBleGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoaHAzMDApICYmICFkZWZpbmVk IChocHV4KQorKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYK KysKKysjaWYgZGVmaW5lZCAoTmVYVCkKKysjaWYgIWRlZmluZWQgKF9fQVJDSElURUNUVVJFX18p CisrI2RlZmluZSBfX0FSQ0hJVEVDVFVSRV9fICJtNjhrIgorKyNlbmRpZgorKyAgaW50IHZlcnNp b247CisrICB2ZXJzaW9uPWAoaG9zdGluZm8gfCBzZWQgLW4gJ3MvLipOZVhUIE1hY2ggXChbMC05 XSpcKS4qL1wxL3AnKSAyPi9kZXYvbnVsbGA7CisrICBpZiAodmVyc2lvbiA8IDQpCisrICAgIHBy aW50ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7 CisrICBlbHNlCisrICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRF Q1RVUkVfXywgdmVyc2lvbik7CisrICBleGl0ICgwKTsKKysjZW5kaWYKKysKKysjaWYgZGVmaW5l ZCAoTVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKKysjaWYgZGVmaW5lZCAoVU1BWFYpCisrICBw cmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOworKyNlbHNlCisrI2lmIGRl ZmluZWQgKENNVSkKKysgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7 CisrI2Vsc2UKKysgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1ic2RcbiIpOyBleGl0ICgwKTsKKysj ZW5kaWYKKysjZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX18zODZCU0RfXykKKysg IHByaW50ZiAoImkzODYtcGMtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRl ZmluZWQgKHNlcXVlbnQpCisrI2lmIGRlZmluZWQgKGkzODYpCisrICBwcmludGYgKCJpMzg2LXNl cXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysjaWYgZGVmaW5lZCAobnMzMjAw MCkKKysgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKKysjZW5k aWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1NFUVVFTlRfKQorKyAgICBzdHJ1Y3QgdXRz bmFtZSB1bjsKKysKKysgICAgdW5hbWUoJnVuKTsKKysKKysgICAgaWYgKHN0cm5jbXAodW4udmVy c2lvbiwgIlYyIiwgMikgPT0gMCkgeworKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MlxuIik7 IGV4aXQgKDApOworKyAgICB9CisrICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMSIsIDIp ID09IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCisrCXByaW50ZiAoImkzODYtc2VxdWVu dC1wdHgxXG4iKTsgZXhpdCAoMCk7CisrICAgIH0KKysgICAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50 LXB0eFxuIik7IGV4aXQgKDApOworKworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkICh2YXgpCisr IyBpZiAhZGVmaW5lZCAodWx0cml4KQorKyMgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyMgIGlm IGRlZmluZWQgKEJTRCkKKysjICAgaWYgQlNEID09IDQzCisrICAgICAgcHJpbnRmICgidmF4LWRl Yy1ic2Q0LjNcbiIpOyBleGl0ICgwKTsKKysjICAgZWxzZQorKyMgICAgaWYgQlNEID09IDE5OTAw NgorKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7IGV4aXQgKDApOworKyMg ICAgZWxzZQorKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisrIyAg ICBlbmRpZgorKyMgICBlbmRpZgorKyMgIGVsc2UKKysgICAgcHJpbnRmICgidmF4LWRlYy1ic2Rc biIpOyBleGl0ICgwKTsKKysjICBlbmRpZgorKyMgZWxzZQorKyAgICBwcmludGYgKCJ2YXgtZGVj LXVsdHJpeFxuIik7IGV4aXQgKDApOworKyMgZW5kaWYKKysjZW5kaWYKKysKKysjaWYgZGVmaW5l ZCAoYWxsaWFudCkgJiYgZGVmaW5lZCAoaTg2MCkKKysgIHByaW50ZiAoImk4NjAtYWxsaWFudC1i c2RcbiIpOyBleGl0ICgwKTsKKysjZW5kaWYKKysKKysgIGV4aXQgKDEpOworK30KKytFT0YKKysK KyskQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCAmJiBTWVNURU1f TkFNRT1gJGR1bW15YCAmJgorKwl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KKysKKysj IEFwb2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJvbm1lbnQuCisrCisrdGVz dCAtZCAvdXNyL2Fwb2xsbyAmJiB7IGVjaG8gJHtJU1B9LWFwb2xsby0ke1NZU1RZUEV9OyBleGl0 OyB9CisrCisrIyBDb252ZXggdmVyc2lvbnMgdGhhdCBwcmVkYXRlIHVuYW1lIGNhbiB1c2UgZ2V0 c3lzaW5mbygxKQorKworK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCisrdGhlbgor KyAgICBjYXNlIGBnZXRzeXNpbmZvIC1mIGNwdV90eXBlYCBpbgorKyAgICBjMSopCisrCWVjaG8g YzEtY29udmV4LWJzZAorKwlleGl0IDs7CisrICAgIGMyKikKKysJaWYgZ2V0c3lzaW5mbyAtZiBz Y2FsYXJfYWNjCisrCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorKwllbHNlIGVjaG8gYzItY29u dmV4LWJzZAorKwlmaQorKwlleGl0IDs7CisrICAgIGMzNCopCisrCWVjaG8gYzM0LWNvbnZleC1i c2QKKysJZXhpdCA7OworKyAgICBjMzgqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisrCWV4aXQg OzsKKysgICAgYzQqKQorKwllY2hvIGM0LWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBlc2Fj CisrZmkKKysKKytjYXQgPiYyIDw8RU9GCisrJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlw ZQorKworK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3RhbXAsIGhhcyBmYWlsZWQg dG8gcmVjb2duaXplCisrdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMg YWR2aXNlZCB0aGF0IHlvdQorK2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRvIGRhdGUgdmVyc2lvbiBv ZiB0aGUgY29uZmlnIHNjcmlwdHMgZnJvbQorKworKyAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUu b3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1I RUFECisrYW5kCisrICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZp Zy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECisrCisrSWYgdGhlIHZlcnNp b24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCisrc2VuZCB0aGUg Zm9sbG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKKytw ZXJ0aW5lbnQgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGluIG9yZGVyIHRvIHByb3ZpZGUg dGhlIG5lZWRlZAorK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KKysKKytjb25m aWcuZ3Vlc3MgdGltZXN0YW1wID0gJHRpbWVzdGFtcAorKworK3VuYW1lIC1tID0gYCh1bmFtZSAt bSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC1yID0gYCh1bmFtZSAtcikg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4v ZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2 L251bGwgfHwgZWNobyB1bmtub3duYAorKworKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jp bi91bmFtZSAtcCkgMj4vZGV2L251bGxgCisrL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5h bWUgLVgpIDI+L2Rldi9udWxsYAorKworK2hvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3Rp bmZvKSAyPi9kZXYvbnVsbGAKKysvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZl cnNlKSAyPi9kZXYvbnVsbGAKKysvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9h cmNoIC1rKSAyPi9kZXYvbnVsbGAKKysvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2Fy Y2gpIDI+L2Rldi9udWxsYAorKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29z bGV2ZWwpIDI+L2Rldi9udWxsYAorKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29u dmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsYAorKworK1VOQU1FX01BQ0hJTkUgPSAke1VOQU1F X01BQ0hJTkV9CisrVU5BTUVfUkVMRUFTRSA9ICR7VU5BTUVfUkVMRUFTRX0KKytVTkFNRV9TWVNU RU0gID0gJHtVTkFNRV9TWVNURU19CisrVU5BTUVfVkVSU0lPTiA9ICR7VU5BTUVfVkVSU0lPTn0K KytFT0YKKysKKytleGl0IDEKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQt aG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6 ICJ0aW1lc3RhbXA9JyIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKKysj IHRpbWUtc3RhbXAtZW5kOiAiJyIKKysjIEVuZDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9jb25maWcvY29uZmlnLnN1YiBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5zdWIK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1YgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmln LnN1YgkyMDA5LTA1LTIzIDEwOjAyOjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNjc3 IEBACisrIyEgL2Jpbi9zaAorKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUg c2NyaXB0LgorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYs IDE5OTcsIDE5OTgsIDE5OTksCisrIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIw MDUsIDIwMDYsIDIwMDcsIDIwMDgKKysjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisrCisrdGltZXN0YW1wPScyMDA4LTA5LTA4JworKworKyMgVGhpcyBmaWxlIGlzIChpbiBwcmlu Y2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgorKyMgVGhlIHByZXNlbmNlIG9mIGEg bWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQorKyMg Y2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNvZnR3 YXJlIGNhbi4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG cmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQorKyMgMDIxMTAtMTMwMSwg VVNBLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2Yg YSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJh dGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRp c3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3Jh bS4KKysKKysKKysjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5v cmc+LiAgU3VibWl0IGEgY29udGV4dAorKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQg Q2hhbmdlTG9nIGVudHJ5LgorKyMKKysjIENvbmZpZ3VyYXRpb24gc3Vicm91dGluZSB0byB2YWxp ZGF0ZSBhbmQgY2Fub25pY2FsaXplIGEgY29uZmlndXJhdGlvbiB0eXBlLgorKyMgU3VwcGx5IHRo ZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiB0eXBlIGFzIGFuIGFyZ3VtZW50LgorKyMgSWYgaXQg aXMgaW52YWxpZCwgd2UgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBvbiBzdGRlcnIgYW5kIGV4aXQg d2l0aCBjb2RlIDEuCisrIyBPdGhlcndpc2UsIHdlIHByaW50IHRoZSBjYW5vbmljYWwgY29uZmln IHR5cGUgb24gc3Rkb3V0IGFuZCBzdWNjZWVkLgorKworKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2Vk IHRvIGJlIHRoZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCisrIyBhbmQgcmVjb2duaXplIGFs bCB0aGUgQ1BVIHR5cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKKysjIHRoYXQgYXJlIG1l YW5pbmdmdWwgd2l0aCAqYW55KiBHTlUgc29mdHdhcmUuCisrIyBFYWNoIHBhY2thZ2UgaXMgcmVz cG9uc2libGUgZm9yIHJlcG9ydGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucworKyMgaXQg ZG9lcyBub3Qgc3VwcG9ydC4gIFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNo CisrIyBhIGZhaWx1cmUgdG8gc3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1l YW5pbmdsZXNzCisrIyBjb25maWd1cmF0aW9uLgorKworKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxl IGlzIHRvIG1hcCBhbGwgdGhlIHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCisrIyBtYWNo aW5lIHNwZWNpZmljYXRpb24gaW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3Jt OgorKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KKysjIG9yIGluIHNv bWUgY2FzZXMsIHRoZSBuZXdlciBmb3VyLXBhcnQgZm9ybToKKysjCUNQVV9UWVBFLU1BTlVGQUNU VVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTQorKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkg b3RoZXIgdHlwZSBvZiBzcGVjaWZpY2F0aW9uLgorKworK21lPWBlY2hvICIkMCIgfCBzZWQgLWUg J3MsLiovLCwnYAorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BT WVMKKysgICAgICAgJDAgW09QVElPTl0gQUxJQVMKKysKKytDYW5vbmljYWxpemUgYSBjb25maWd1 cmF0aW9uIG5hbWUuCisrCisrT3BlcmF0aW9uIG1vZGVzOgorKyAgLWgsIC0taGVscCAgICAgICAg IHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQg ZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisrICAtdiwgLS12ZXJzaW9uICAg ICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorKworK1JlcG9ydCBidWdzIGFuZCBw YXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisrCisrdmVyc2lvbj0iXAorK0dO VSBjb25maWcuc3ViICgkdGltZXN0YW1wKQorKworK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5Mywg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNv cHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCisrd2FycmFudHk7IG5vdCBldmVuIGZvciBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorKwor K2hlbHA9IgorK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKysKKysj IFBhcnNlIGNvbW1hbmQgbGluZQorK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworKyAgY2FzZSAk MSBpbgorKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorKyAgICAgICBlY2hvICIk dGltZXN0YW1wIiA7IGV4aXQgOzsKKysgICAgLS12ZXJzaW9uIHwgLXYgKQorKyAgICAgICBlY2hv ICIkdmVyc2lvbiIgOyBleGl0IDs7CisrICAgIC0taGVscCB8IC0taCogfCAtaCApCisrICAgICAg IGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKKysgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9j ZXNzaW5nCisrICAgICAgIHNoaWZ0OyBicmVhayA7OworKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMg aW5wdXQuCisrICAgICAgIGJyZWFrIDs7CisrICAgIC0qICkKKysgICAgICAgZWNobyAiJG1lOiBp bnZhbGlkIG9wdGlvbiAkMSRoZWxwIgorKyAgICAgICBleGl0IDEgOzsKKysKKysgICAgKmxvY2Fs KikKKysgICAgICAgIyBGaXJzdCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMu CisrICAgICAgIGVjaG8gJDEKKysgICAgICAgZXhpdCA7OworKworKyAgICAqICkKKysgICAgICAg YnJlYWsgOzsKKysgIGVzYWMKKytkb25lCisrCisrY2FzZSAkIyBpbgorKyAwKSBlY2hvICIkbWU6 IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCisrICAgIGV4aXQgMTs7CisrIDEpIDs7CisrICop IGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorKyAgICBleGl0IDE7Owor K2VzYWMKKysKKysjIFNlcGFyYXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5Z IGFuZCBPUyBvciBLRVJORUwtT1MgKGlmIGFueSkuCisrIyBIZXJlIHdlIG11c3QgcmVjb2duaXpl IGFsbCB0aGUgdmFsaWQgS0VSTkVMLU9TIGNvbWJpbmF0aW9ucy4KKyttYXliZV9vcz1gZWNobyAk MSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKKytjYXNlICRtYXliZV9v cyBpbgorKyAgbnRvLXFueCogfCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1u ZXdsaWIqIHwgbGludXgtdWNsaWJjKiB8IFwKKysgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgt Z251KiB8IGtmcmVlYnNkKi1nbnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwK KysgIHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwgcnRtay1ub3ZhKikKKysgICAgb3M9LSRtYXli ZV9vcworKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1d Ki1bXi1dKlwpJC9cMS8nYAorKyAgICA7OworKyAgKikKKysgICAgYmFzaWNfbWFjaGluZT1gZWNo byAkMSB8IHNlZCAncy8tW14tXSokLy8nYAorKyAgICBpZiBbICRiYXNpY19tYWNoaW5lICE9ICQx IF0KKysgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAorKyAgICBlbHNlIG9z PTsgZmkKKysgICAgOzsKKytlc2FjCisrCisrIyMjIExldCdzIHJlY29nbml6ZSBjb21tb24gbWFj aGluZXMgYXMgbm90IGJlaW5nIG9wZXJhdGluZyBzeXN0ZW1zIHNvCisrIyMjIHRoYXQgdGhpbmdz IGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28KKysjIyMgcmVj b2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMs IHNvIHdlCisrIyMjIGNhbiBwcm92aWRlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgYmVsb3cu CisrY2FzZSAkb3MgaW4KKysJLXN1bipvcyopCisrCQkjIFByZXZlbnQgZm9sbG93aW5nIGNsYXVz ZSBmcm9tIGhhbmRsaW5nIHRoaXMgaW52YWxpZCBpbnB1dC4KKysJCTs7CisrCS1kZWMqIHwgLW1p cHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBc CisrCS1hdHQqIHwgLTczMDAqIHwgLTMzMDAqIHwgLWRlbHRhKiB8IC1tb3Rvcm9sYSogfCAtc3Vu WzIzNF0qIHwgXAorKwktdW5pY29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1h cG9sbG8gfCAtYWx0b3MqIHwgXAorKwktY29udmVyZ2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMy KiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAorKwktY1sxMjNdKiB8IC1jb252ZXgq IHwgLXN1biB8IC1jcmRzIHwgLW9tcm9uKiB8IC1kZyB8IC11bHRyYSB8IC10dGkqIHwgXAorKwkt aGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1t YXNzY29tcCB8IFwKKysJLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSkKKysJCW9zPQor KwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysJLXNpbSB8IC1jaXNjbyB8IC1va2kgfCAtd2Vj IHwgLXdpbmJvbmQpCisrCQlvcz0KKysJCWJhc2ljX21hY2hpbmU9JDEKKysJCTs7CisrCS1zY291 dCkKKysJCTs7CisrCS13cnMpCisrCQlvcz0tdnh3b3JrcworKwkJYmFzaWNfbWFjaGluZT0kMQor KwkJOzsKKysJLWNob3J1c29zKikKKysJCW9zPS1jaG9ydXNvcworKwkJYmFzaWNfbWFjaGluZT0k MQorKwkJOzsKKysgCS1jaG9ydXNyZGIpCisrIAkJb3M9LWNob3J1c3JkYgorKwkJYmFzaWNfbWFj aGluZT0kMQorKyAJCTs7CisrCS1oaXV4KikKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwktc2Nv NikKKysJCW9zPS1zY281djYKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3Mv ODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY281KQorKwkJb3M9LXNjbzMuMnY1CisrCQliYXNp Y19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwkt c2NvNCkKKysJCW9zPS1zY28zLjJ2NAorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAt ZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXNjbzMuMi5bNC05XSopCisrCQlvcz1gZWNo byAkb3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvMy4ydls0LTld KikKKysJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7 OworKwktc2NvNXY2KikKKysJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQg b3IgbmV3ZXIuCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2 LXBjLydgCisrCQk7OworKwktc2NvKikKKysJCW9zPS1zY28zLjJ2MgorKwkJYmFzaWNfbWFjaGlu ZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXVkayopCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7 OworKwktaXNjKQorKwkJb3M9LWlzYzIuMgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNl ZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLWNsaXgqKQorKwkJYmFzaWNfbWFjaGlu ZT1jbGlwcGVyLWludGVyZ3JhcGgKKysJCTs7CisrCS1pc2MqKQorKwkJYmFzaWNfbWFjaGluZT1g ZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLWx5bngqKQorKwkJ b3M9LWx5bnhvcworKwkJOzsKKysJLXB0eCopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwg c2VkIC1lICdzLzg2LS4qLzg2LXNlcXVlbnQvJ2AKKysJCTs7CisrCS13aW5kb3dzbnQqKQorKwkJ b3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzL3dpbmRvd3NudC93aW5udC8nYAorKwkJOzsKKysJLXBz b3MqKQorKwkJb3M9LXBzb3MKKysJCTs7CisrCS1taW50IHwgLW1pbnRbMC05XSopCisrCQliYXNp Y19tYWNoaW5lPW02OGstYXRhcmkKKysJCW9zPS1taW50CisrCQk7OworK2VzYWMKKysKKysjIERl Y29kZSBhbGlhc2VzIGZvciBjZXJ0YWluIENQVS1DT01QQU5ZIGNvbWJpbmF0aW9ucy4KKytjYXNl ICRiYXNpY19tYWNoaW5lIGluCisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0 aG91dCBjb21wYW55IG5hbWUuCisrCSMgU29tZSBhcmUgb21pdHRlZCBoZXJlIGJlY2F1c2UgdGhl eSBoYXZlIHNwZWNpYWwgbWVhbmluZ3MgYmVsb3cuCisrCTE3NTBhIHwgNTgwIFwKKysJfCBhMjlr IFwKKysJfCBhbHBoYSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFscGhhZXY2Wzc4XSB8 IGFscGhhcGNhNVs2N10gXAorKwl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04XSB8IGFscGhhNjRl djU2IHwgYWxwaGE2NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAorKwl8IGFtMzNfMi4wIFwK KysJfCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZb MzQ1XVtsYl0gfCBhdnIgfCBhdnIzMiBcCisrCXwgYmZpbiBcCisrCXwgYzR4IHwgY2xpcHBlciBc CisrCXwgZDEwdiB8IGQzMHYgfCBkbHggfCBkc3AxNnh4IFwKKysJfCBmaWRvIHwgZnIzMCB8IGZy diBcCisrCXwgaDgzMDAgfCBoODUwMCB8IGhwcGEgfCBocHBhMS5bMDFdIHwgaHBwYTIuMCB8IGhw cGEyLjBbbnddIHwgaHBwYTY0IFwKKysJfCBpMzcwIHwgaTg2MCB8IGk5NjAgfCBpYTY0IFwKKysJ fCBpcDJrIHwgaXEyMDAwIFwKKysJfCBtMzJjIHwgbTMyciB8IG0zMnJsZSB8IG02ODAwMCB8IG02 OGsgfCBtODhrIFwKKysJfCBtYXhxIHwgbWIgfCBtaWNyb2JsYXplIHwgbWNvcmUgfCBtZXAgfCBt ZXRhZyBcCisrCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisr CXwgbWlwczE2IFwKKysJfCBtaXBzNjQgfCBtaXBzNjRlbCBcCisrCXwgbWlwczY0b2N0ZW9uIHwg bWlwczY0b2N0ZW9uZWwgXAorKwl8IG1pcHM2NG9yaW9uIHwgbWlwczY0b3Jpb25lbCBcCisrCXwg bWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwKKysJfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwg XAorKwl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVsIFwKKysJfCBtaXBzNjR2cjQzMDAg fCBtaXBzNjR2cjQzMDBlbCBcCisrCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAor Kwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkwMGVsIFwKKysJfCBtaXBzaXNhMzIgfCBtaXBz aXNhMzJlbCBcCisrCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKysJfCBtaXBzaXNh NjQgfCBtaXBzaXNhNjRlbCBcCisrCXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRyMmVsIFwKKysJ fCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisrCXwgbWlwc2lzYTY0c3I3MWsgfCBt aXBzaXNhNjRzcjcxa2VsIFwKKysJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAorKwl8IG1uMTAy MDAgfCBtbjEwMzAwIFwKKysJfCBtdCBcCisrCXwgbXNwNDMwIFwKKysJfCBuaW9zIHwgbmlvczIg XAorKwl8IG5zMTZrIHwgbnMzMmsgXAorKwl8IG9yMzIgXAorKwl8IHBkcDEwIHwgcGRwMTEgfCBw aiB8IHBqbCBcCisrCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJw Y2xlIHwgcHBjYmUgXAorKwl8IHB5cmFtaWQgXAorKwl8IHNjb3JlIFwKKysJfCBzaCB8IHNoWzEy MzRdIHwgc2hbMjRdYSB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8 IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAorKwl8IHNoNjQgfCBzaDY0bGUgXAorKwl8IHNwYXJjIHwg c3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2NHYgfCBzcGFyYzg2eCB8IHNwYXJjbGV0IHwgc3Bh cmNsaXRlIFwKKysJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYgXAor Kwl8IHNwdSB8IHN0cm9uZ2FybSBcCisrCXwgdGFob2UgfCB0aHVtYiB8IHRpYzR4IHwgdGljODAg fCB0cm9uIFwKKysJfCB2ODUwIHwgdjg1MGUgXAorKwl8IHdlMzJrIFwKKysJfCB4ODYgfCB4YzE2 eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKKysJfCB6OGsg fCB6ODApCisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7Cisr CW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMikKKysJCSMgTW90b3JvbGEgNjhIQzEx LzEyLgorKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCisrCQlvcz0tbm9u ZQorKwkJOzsKKysJbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUy MDAgfCB2NzAgfCB3NjUgfCB6OGspCisrCQk7OworKwltczEpCisrCQliYXNpY19tYWNoaW5lPW10 LXVua25vd24KKysJCTs7CisrCisrCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24n CisrCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAorKwkj ICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMu CisrCWkqODYgfCB4ODZfNjQpCisrCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYwor KwkgIDs7CisrCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCisr CSotKi0qKQorKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxg JGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJCTs7Cisr CSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aCBjb21wYW55IG5hbWUuCisrCTU4 MC0qIFwKKysJfCBhMjlrLSogXAorKwl8IGFscGhhLSogfCBhbHBoYWV2WzQtOF0tKiB8IGFscGhh ZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSogXAorKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThd LSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxwaGE2NGV2Nls3OF0tKiBcCisrCXwgYWxwaGFwY2E1WzY3 XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCisrCXwgYXJtLSogIHwgYXJtYmUtKiB8 IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCisrCXwgYXZyLSogfCBhdnIzMi0qIFwKKysJ fCBiZmluLSogfCBiczIwMDAtKiBcCisrCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwg YzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCisrCXwgY2xpcHBlci0qIHwgY3JheW52 LSogfCBjeWRyYS0qIFwKKysJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCisrCXwgZWx4c2kt KiBcCisrCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBm eDgwLSogXAorKwl8IGg4MzAwLSogfCBoODUwMC0qIFwKKysJfCBocHBhLSogfCBocHBhMS5bMDFd LSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAorKwl8IGkqODYtKiB8 IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCisrCXwgaXAyay0qIHwgaXEyMDAwLSogXAorKwl8 IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKKysJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2 XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAorKwl8IG04ODExMC0qIHwgbTg4 ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiB8IG1ldGFnLSogXAorKwl8IG1pcHMtKiB8IG1pcHNiZS0q IHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKKysJfCBtaXBzMTYtKiBcCisrCXwg bWlwczY0LSogfCBtaXBzNjRlbC0qIFwKKysJfCBtaXBzNjRvY3Rlb24tKiB8IG1pcHM2NG9jdGVv bmVsLSogXAorKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAorKwl8IG1pcHM2 NHI1OTAwLSogfCBtaXBzNjRyNTkwMGVsLSogXAorKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVs LSogXAorKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisrCXwgbWlwczY0 dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKKysJfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2 NHZyNTAwMGVsLSogXAorKwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCisr CXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKKysJfCBtaXBzaXNhMzJyMi0qIHwgbWlw c2lzYTMycjJlbC0qIFwKKysJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorKwl8IG1p cHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAorKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlw c2lzYTY0c2IxZWwtKiBcCisrCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwt KiBcCisrCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCisrCXwgbW1peC0qIFwKKysJfCBt dC0qIFwKKysJfCBtc3A0MzAtKiBcCisrCXwgbmlvcy0qIHwgbmlvczItKiBcCisrCXwgbm9uZS0q IHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCisrCXwgb3Jpb24tKiBcCisrCXwgcGRwMTAt KiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisrCXwgcG93ZXJw Yy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0q IFwKKysJfCBweXJhbWlkLSogXAorKwl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKKysJfCBzaC0qIHwg c2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSog fCBzaGJlLSogXAorKwl8IHNobGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0q IHwgc2g2NGxlLSogXAorKwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3Bh cmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0qIFwKKysJfCBzcGFyY2xpdGUtKiBcCisr CXwgc3BhcmN2OC0qIHwgc3BhcmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJv bmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAorKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKKysJfCB0 aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAt KiB8IHRpbGUtKiBcCisrCXwgdHJvbi0qIFwKKysJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSog XAorKwl8IHdlMzJrLSogXAorKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAw LSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAorKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNh Ki0qIFwKKysJfCB5bXAtKiBcCisrCXwgejhrLSogfCB6ODAtKikKKysJCTs7CisrCSMgUmVjb2du aXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xvYiBt YXRjaC4KKysJeHRlbnNhKikKKysJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93 bgorKwkJOzsKKysJIyBSZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQgYWxp YXNlcyB3aGljaCBzdGFuZAorKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5kIHNv bWV0aW1lcyBldmVuIGFuIE9TLgorKwkzODZic2QpCisrCQliYXNpY19tYWNoaW5lPWkzODYtdW5r bm93bgorKwkJb3M9LWJzZAorKwkJOzsKKysJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0LTcz MDAgfCBwYzczMDAgfCBzYWZhcmkgfCB1bml4cGMpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1h dHQKKysJCTs7CisrCTNiKikKKysJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisrCQk7OworKwlh MjlraGlmKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LXVkaQorKwkJOzsKKysg ICAgCWFiYWN1cykKKysJCWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KKysJCTs7CisrCWFk b2JlNjhrKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKKysJCW9zPS1zY291dAorKwkJ OzsKKysJYWxsaWFudCB8IGZ4ODApCisrCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAorKwkJ OzsKKysJYWx0b3MgfCBhbHRvczMwNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MKKysJ CTs7CisrCWFtMjlrKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKKysJCW9zPS1ic2QKKysJ CTs7CisrCWFtZDY0KQorKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKysJCTs7CisrCWFtZDY0 LSopCisrCQliYXNpY19tYWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9eW14tXSotLy8nYAorKwkJOzsKKysJYW1kYWhsKQorKwkJYmFzaWNfbWFjaGluZT01ODAtYW1k YWhsCisrCQlvcz0tc3lzdgorKwkJOzsKKysJYW1pZ2EgfCBhbWlnYS0qKQorKwkJYmFzaWNfbWFj aGluZT1tNjhrLXVua25vd24KKysJCTs7CisrCWFtaWdhb3MgfCBhbWlnYWRvcykKKysJCWJhc2lj X21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tYW1pZ2FvcworKwkJOzsKKysJYW1pZ2F1bml4 IHwgYW1peCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQlvcz0tc3lzdjQKKysJ CTs7CisrCWFwb2xsbzY4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworKwkJb3M9LXN5 c3YKKysJCTs7CisrCWFwb2xsbzY4YnNkKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbwor KwkJb3M9LWJzZAorKwkJOzsKKysJYXV4KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisr CQlvcz0tYXV4CisrCQk7OworKwliYWxhbmNlKQorKwkJYmFzaWNfbWFjaGluZT1uczMyay1zZXF1 ZW50CisrCQlvcz0tZHluaXgKKysJCTs7CisrCWJsYWNrZmluKQorKwkJYmFzaWNfbWFjaGluZT1i ZmluLXVua25vd24KKysJCW9zPS1saW51eAorKwkJOzsKKysJYmxhY2tmaW4tKikKKysJCWJhc2lj X21hY2hpbmU9YmZpbi1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJb3M9LWxpbnV4CisrCQk7OworKwljOTApCisrCQliYXNpY19tYWNoaW5lPWM5MC1jcmF5Cisr CQlvcz0tdW5pY29zCisrCQk7OworKyAgICAgICAgY2VnY2MpCisrCQliYXNpY19tYWNoaW5lPWFy bS11bmtub3duCisrCQlvcz0tY2VnY2MKKysJCTs7CisrCWNvbnZleC1jMSkKKysJCWJhc2ljX21h Y2hpbmU9YzEtY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzIpCisrCQliYXNp Y19tYWNoaW5lPWMyLWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMzMikKKysJ CWJhc2ljX21hY2hpbmU9YzMyLWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29udmV4LWMz NCkKKysJCWJhc2ljX21hY2hpbmU9YzM0LWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsKKysJY29u dmV4LWMzOCkKKysJCWJhc2ljX21hY2hpbmU9YzM4LWNvbnZleAorKwkJb3M9LWJzZAorKwkJOzsK KysJY3JheSB8IGo5MCkKKysJCWJhc2ljX21hY2hpbmU9ajkwLWNyYXkKKysJCW9zPS11bmljb3MK KysJCTs7CisrCWNyYXludikKKysJCWJhc2ljX21hY2hpbmU9Y3JheW52LWNyYXkKKysJCW9zPS11 bmljb3NtcAorKwkJOzsKKysJY3IxNikKKysJCWJhc2ljX21hY2hpbmU9Y3IxNi11bmtub3duCisr CQlvcz0tZWxmCisrCQk7OworKwljcmRzIHwgdW5vcykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1j cmRzCisrCQk7OworKwljcmlzdjMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhmcyopCisrCQliYXNpY19t YWNoaW5lPWNyaXN2MzItYXhpcworKwkJOzsKKysJY3JpcyB8IGNyaXMtKiB8IGV0cmF4KikKKysJ CWJhc2ljX21hY2hpbmU9Y3Jpcy1heGlzCisrCQk7OworKwljcngpCisrCQliYXNpY19tYWNoaW5l PWNyeC11bmtub3duCisrCQlvcz0tZWxmCisrCQk7OworKwlkYTMwIHwgZGEzMC0qKQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLWRhMzAKKysJCTs7CisrCWRlY3N0YXRpb24gfCBkZWNzdGF0aW9uLTMx MDAgfCBwbWF4IHwgcG1heC0qIHwgcG1pbiB8IGRlYzMxMDAgfCBkZWNzdGF0bikKKysJCWJhc2lj X21hY2hpbmU9bWlwcy1kZWMKKysJCTs7CisrCWRlY3N5c3RlbTEwKiB8IGRlYzEwKikKKysJCWJh c2ljX21hY2hpbmU9cGRwMTAtZGVjCisrCQlvcz0tdG9wczEwCisrCQk7OworKwlkZWNzeXN0ZW0y MCogfCBkZWMyMCopCisrCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYworKwkJb3M9LXRvcHMyMAor KwkJOzsKKysJZGVsdGEgfCAzMzAwIHwgbW90b3JvbGEtMzMwMCB8IG1vdG9yb2xhLWRlbHRhIFwK KysJICAgICAgfCAzMzAwLW1vdG9yb2xhIHwgZGVsdGEtbW90b3JvbGEpCisrCQliYXNpY19tYWNo aW5lPW02OGstbW90b3JvbGEKKysJCTs7CisrCWRlbHRhODgpCisrCQliYXNpY19tYWNoaW5lPW04 OGstbW90b3JvbGEKKysJCW9zPS1zeXN2MworKwkJOzsKKysJZGljb3MpCisrCQliYXNpY19tYWNo aW5lPWk2ODYtcGMKKysJCW9zPS1kaWNvcworKwkJOzsKKysJZGpncHApCisrCQliYXNpY19tYWNo aW5lPWk1ODYtcGMKKysJCW9zPS1tc2Rvc2RqZ3BwCisrCQk7OworKwlkcHgyMCB8IGRweDIwLSop CisrCQliYXNpY19tYWNoaW5lPXJzNjAwMC1idWxsCisrCQlvcz0tYm9zeAorKwkJOzsKKysJZHB4 MiogfCBkcHgyKi1idWxsKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWJ1bGwKKysJCW9zPS1zeXN2 MworKwkJOzsKKysJZWJtb24yOWspCisrCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisrCQlvcz0t ZWJtb24KKysJCTs7CisrCWVseHNpKQorKwkJYmFzaWNfbWFjaGluZT1lbHhzaS1lbHhzaQorKwkJ b3M9LWJzZAorKwkJOzsKKysJZW5jb3JlIHwgdW1heCB8IG1tYXgpCisrCQliYXNpY19tYWNoaW5l PW5zMzJrLWVuY29yZQorKwkJOzsKKysJZXMxODAwIHwgT1NFNjhrIHwgb3NlNjhrIHwgb3NlIHwg T1NFKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWVyaWNzc29uCisrCQlvcz0tb3NlCisrCQk7Owor KwlmeDI4MDApCisrCQliYXNpY19tYWNoaW5lPWk4NjAtYWxsaWFudAorKwkJOzsKKysJZ2VuaXgp CisrCQliYXNpY19tYWNoaW5lPW5zMzJrLW5zCisrCQk7OworKwlnbWljcm8pCisrCQliYXNpY19t YWNoaW5lPXRyb24tZ21pY3JvCisrCQlvcz0tc3lzdgorKwkJOzsKKysJZ28zMikKKysJCWJhc2lj X21hY2hpbmU9aTM4Ni1wYworKwkJb3M9LWdvMzIKKysJCTs7CisrCWgzMDUwciogfCBoaXV4KikK KysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisrCQlvcz0taGl1eHdlMgorKwkJOzsK KysJaDgzMDBobXMpCisrCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKKysJCW9zPS1obXMK KysJCTs7CisrCWg4MzAweHJheSkKKysJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQorKwkJ b3M9LXhyYXkKKysJCTs7CisrCWg4NTAwaG1zKQorKwkJYmFzaWNfbWFjaGluZT1oODUwMC1oaXRh Y2hpCisrCQlvcz0taG1zCisrCQk7OworKwloYXJyaXMpCisrCQliYXNpY19tYWNoaW5lPW04OGst aGFycmlzCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCWhwMzAwLSopCisrCQliYXNpY19tYWNoaW5l PW02OGstaHAKKysJCTs7CisrCWhwMzAwYnNkKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisr CQlvcz0tYnNkCisrCQk7OworKwlocDMwMGhwdXgpCisrCQliYXNpY19tYWNoaW5lPW02OGstaHAK KysJCW9zPS1ocHV4CisrCQk7OworKwlocDNrOVswLTldWzAtOV0gfCBocDlbMC05XVswLTldKQor KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisrCQk7OworKwlocDlrMlswLTldWzAtOV0gfCBo cDlrMzFbMC05XSkKKysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWhwCisrCQk7OworKwlocDlrM1sy LTldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPW02OGstaHAKKysJCTs7CisrCWhwOWs2WzAtOV1b MC05XSB8IGhwNlswLTldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKKysJCTs7 CisrCWhwOWs3WzAtNzldWzAtOV0gfCBocDdbMC03OV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9 aHBwYTEuMS1ocAorKwkJOzsKKysJaHA5azc4WzAtOV0gfCBocDc4WzAtOV0pCisrCQkjIEZJWE1F OiByZWFsbHkgaHBwYTIuMC1ocAorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7Owor KwlocDlrOFs2N10xIHwgaHA4WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4MFsyNF0gfCBocDlrOFs3 OF05IHwgaHA4Wzc4XTkgfCBocDlrODkzIHwgaHA4OTMpCisrCQkjIEZJWE1FOiByZWFsbHkgaHBw YTIuMC1ocAorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrOFswLTld WzEzNjc5XSB8IGhwOFswLTldWzEzNjc5XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAor KwkJOzsKKysJaHA5azhbMC05XVswLTldIHwgaHA4WzAtOV1bMC05XSkKKysJCWJhc2ljX21hY2hp bmU9aHBwYTEuMC1ocAorKwkJOzsKKysJaHBwYS1uZXh0KQorKwkJb3M9LW5leHRzdGVwMworKwkJ OzsKKysJaHBwYW9zZikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorKwkJb3M9LW9zZgor KwkJOzsKKysJaHBwcm8pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCW9zPS1wcm9l bGYKKysJCTs7CisrCWkzNzAtaWJtKiB8IGlibSopCisrCQliYXNpY19tYWNoaW5lPWkzNzAtaWJt CisrCQk7OworKyMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91bGQgdGhp cyBiZSBzeXN2My4yPworKwlpKjg2djMyKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNl ZCAtZSAncy84Ni4qLzg2LXBjLydgCisrCQlvcz0tc3lzdjMyCisrCQk7OworKwlpKjg2djQqKQor KwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisrCQlv cz0tc3lzdjQKKysJCTs7CisrCWkqODZ2KQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNl ZCAtZSAncy84Ni4qLzg2LXBjLydgCisrCQlvcz0tc3lzdgorKwkJOzsKKysJaSo4NnNvbDIpCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9z PS1zb2xhcmlzMgorKwkJOzsKKysJaTM4Nm1hY2gpCisrCQliYXNpY19tYWNoaW5lPWkzODYtbWFj aAorKwkJb3M9LW1hY2gKKysJCTs7CisrCWkzODYtdnN0YSB8IHZzdGEpCisrCQliYXNpY19tYWNo aW5lPWkzODYtdW5rbm93bgorKwkJb3M9LXZzdGEKKysJCTs7CisrCWlyaXMgfCBpcmlzNGQpCisr CQliYXNpY19tYWNoaW5lPW1pcHMtc2dpCisrCQljYXNlICRvcyBpbgorKwkJICAgIC1pcml4KikK KysJCQk7OworKwkJICAgICopCisrCQkJb3M9LWlyaXg0CisrCQkJOzsKKysJCWVzYWMKKysJCTs7 CisrCWlzaTY4IHwgaXNpKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQorKwkJb3M9LXN5c3YK KysJCTs7CisrCW02OGtub21tdSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQlv cz0tbGludXgKKysJCTs7CisrCW02OGtub21tdS0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQlvcz0tbGludXgKKysJ CTs7CisrCW04OGstb21yb24qKQorKwkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCisrCQk7Owor KwltYWdudW0gfCBtMzIzMCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1taXBzCisrCQlvcz0tc3lz dgorKwkJOzsKKysJbWVybGluKQorKwkJYmFzaWNfbWFjaGluZT1uczMyay11dGVrCisrCQlvcz0t c3lzdgorKwkJOzsKKysJbWluZ3czMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJb3M9 LW1pbmd3MzIKKysJCTs7CisrCW1pbmd3MzJjZSkKKysJCWJhc2ljX21hY2hpbmU9YXJtLXVua25v d24KKysJCW9zPS1taW5ndzMyY2UKKysJCTs7CisrCW1pbmlmcmFtZSkKKysJCWJhc2ljX21hY2hp bmU9bTY4MDAwLWNvbnZlcmdlbnQKKysJCTs7CisrCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlO VCB8ICpNaU5UWzAtOV0qKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCisrCQlvcz0tbWlu dAorKwkJOzsKKysJbWlwczMqLSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAorKwkJOzsKKysJbWlwczMqKQorKwkJYmFz aWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQv J2AtdW5rbm93bgorKwkJOzsKKysJbW9uaXRvcikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202 OGsKKysJCW9zPS1jb2ZmCisrCQk7OworKwltb3JwaG9zKQorKwkJYmFzaWNfbWFjaGluZT1wb3dl cnBjLXVua25vd24KKysJCW9zPS1tb3JwaG9zCisrCQk7OworKwltc2RvcykKKysJCWJhc2ljX21h Y2hpbmU9aTM4Ni1wYworKwkJb3M9LW1zZG9zCisrCQk7OworKwltczEtKikKKysJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMxLS9tdC0vJ2AKKysJCTs7 CisrCW12cykKKysJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKysJCW9zPS1tdnMKKysJCTs7Cisr CW5jcjMwMDApCisrCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCisrCQlvcz0tc3lzdjQKKysJCTs7 CisrCW5ldGJzZDM4NikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisrCQlvcz0tbmV0 YnNkCisrCQk7OworKwluZXR3aW5kZXIpCisrCQliYXNpY19tYWNoaW5lPWFybXY0bC1yZWJlbAor KwkJb3M9LWxpbnV4CisrCQk7OworKwluZXdzIHwgbmV3czcwMCB8IG5ld3M4MDAgfCBuZXdzOTAw KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJCTs7CisrCW5l d3MxMDAwKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQorKwkJb3M9LW5ld3NvcworKwkJ OzsKKysJbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNvbnkK KysJCW9zPS1uZXdzb3MKKysJCTs7CisrCW5lY3Y3MCkKKysJCWJhc2ljX21hY2hpbmU9djcwLW5l YworKwkJb3M9LXN5c3YKKysJCTs7CisrCW5leHQgfCBtKi1uZXh0ICkKKysJCWJhc2ljX21hY2hp bmU9bTY4ay1uZXh0CisrCQljYXNlICRvcyBpbgorKwkJICAgIC1uZXh0c3RlcCogKQorKwkJCTs7 CisrCQkgICAgLW5zMiopCisrCQkgICAgICBvcz0tbmV4dHN0ZXAyCisrCQkJOzsKKysJCSAgICAq KQorKwkJICAgICAgb3M9LW5leHRzdGVwMworKwkJCTs7CisrCQllc2FjCisrCQk7OworKwluaDMw MDApCisrCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCisrCQlvcz0tY3h1eAorKwkJOzsKKysJ bmhbNDVdMDAwKQorKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworKwkJb3M9LWN4dXgKKysJ CTs7CisrCW5pbmR5OTYwKQorKwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCisrCQlvcz0tbmlu ZHkKKysJCTs7CisrCW1vbjk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorKwkJb3M9 LW1vbjk2MAorKwkJOzsKKysJbm9uc3RvcHV4KQorKwkJYmFzaWNfbWFjaGluZT1taXBzLWNvbXBh cQorKwkJb3M9LW5vbnN0b3B1eAorKwkJOzsKKysJbnAxKQorKwkJYmFzaWNfbWFjaGluZT1ucDEt Z291bGQKKysJCTs7CisrCW5zci10YW5kZW0pCisrCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0K KysJCTs7CisrCW9wNTBuLSogfCBvcDYwYy0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9r aQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJb3BlbnJpc2MgfCBvcGVucmlzYy0qKQorKwkJYmFz aWNfbWFjaGluZT1vcjMyLXVua25vd24KKysJCTs7CisrCW9zNDAwKQorKwkJYmFzaWNfbWFjaGlu ZT1wb3dlcnBjLWlibQorKwkJb3M9LW9zNDAwCisrCQk7OworKwlPU0U2ODAwMCB8IG9zZTY4MDAw KQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KKysJCW9zPS1vc2UKKysJCTs7Cisr CW9zNjhrKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5vbmUKKysJCW9zPS1vczY4aworKwkJOzsK KysJcGEtaGl0YWNoaSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisrCQlvcz0t aGl1eHdlMgorKwkJOzsKKysJcGFyYWdvbikKKysJCWJhc2ljX21hY2hpbmU9aTg2MC1pbnRlbAor KwkJb3M9LW9zZgorKwkJOzsKKysJcGFyaXNjKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhLXVua25v d24KKysJCW9zPS1saW51eAorKwkJOzsKKysJcGFyaXNjLSopCisrCQliYXNpY19tYWNoaW5lPWhw cGEtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51 eAorKwkJOzsKKysJcGJkKQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10dGkKKysJCTs7CisrCXBi YikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKKysJCTs7CisrCXBjNTMyIHwgcGM1MzItKikK KysJCWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKKysJCTs7CisrCXBjOTgpCisrCQliYXNpY19t YWNoaW5lPWkzODYtcGMKKysJCTs7CisrCXBjOTgtKikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1g ZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1 bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQorKwkJYmFzaWNfbWFjaGluZT1pNTg2 LXBjCisrCQk7OworKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyop CisrCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKysJCTs7CisrCXBlbnRpdW1paSB8IHBlbnRpdW0y IHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisrCQk7 OworKwlwZW50aXVtNCkKKysJCWJhc2ljX21hY2hpbmU9aTc4Ni1wYworKwkJOzsKKysJcGVudGl1 bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQorKwkJYmFzaWNf bWFjaGluZT1pNTg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisr CQk7OworKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCisrCQliYXNp Y19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AK KysJCTs7CisrCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRp dW0zLSopCisrCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg J3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW00LSopCisrCQliYXNpY19tYWNoaW5lPWk3 ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBu KQorKwkJYmFzaWNfbWFjaGluZT1wbi1nb3VsZAorKwkJOzsKKysJcG93ZXIpCWJhc2ljX21hY2hp bmU9cG93ZXItaWJtCisrCQk7OworKwlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3du CisrCQk7OworKwlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGNsZSB8IHBvd2VycGNsaXR0bGUg fCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVu a25vd24KKysJCTs7CisrCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCisrCQliYXNpY19tYWNo aW5lPXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJOzsKKysJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KKysJCTs7Cisr CXBwYzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwg c2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwcGM2NGxlIHwgcG93ZXJwYzY0bGl0dGxlIHwg cHBjNjQtbGUgfCBwb3dlcnBjNjQtbGl0dGxlKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRs ZS11bmtub3duCisrCQk7OworKwlwcGM2NGxlLSogfCBwb3dlcnBjNjRsaXR0bGUtKikKKysJCWJh c2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlte LV0qLS8vJ2AKKysJCTs7CisrCXBzMikKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1pYm0KKysJCTs7 CisrCXB3MzIpCisrCQliYXNpY19tYWNoaW5lPWk1ODYtdW5rbm93bgorKwkJb3M9LXB3MzIKKysJ CTs7CisrCXJkb3MpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1yZG9zCisrCQk7 OworKwlyb202OGspCisrCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisrCQlvcz0tY29mZgor KwkJOzsKKysJcm1bNDZdMDApCisrCQliYXNpY19tYWNoaW5lPW1pcHMtc2llbWVucworKwkJOzsK KysJcnRwYyB8IHJ0cGMtKikKKysJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKysJCTs7CisrCXMz OTAgfCBzMzkwLSopCisrCQliYXNpY19tYWNoaW5lPXMzOTAtaWJtCisrCQk7OworKwlzMzkweCB8 IHMzOTB4LSopCisrCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQorKwkJOzsKKysJc2EyOTIwMCkK KysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrCXNiMSkKKysJ CWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KKysJCTs7CisrCXNiMWVsKQorKwkJ YmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCisrCQk7OworKwlzZGUpCisrCQli YXNpY19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKKysJCW9zPS1lbGYKKysJCTs7CisrCXNlaSkKKysJ CWJhc2ljX21hY2hpbmU9bWlwcy1zZWkKKysJCW9zPS1zZWl1eAorKwkJOzsKKysJc2VxdWVudCkK KysJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50CisrCQk7OworKwlzaCkKKysJCWJhc2ljX21h Y2hpbmU9c2gtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJc2g1ZWwpCisrCQliYXNpY19t YWNoaW5lPXNoNWxlLXVua25vd24KKysJCTs7CisrCXNoNjQpCisrCQliYXNpY19tYWNoaW5lPXNo NjQtdW5rbm93bgorKwkJOzsKKysJc3BhcmNsaXRlLXdycyB8IHNpbXNvLXdycykKKysJCWJhc2lj X21hY2hpbmU9c3BhcmNsaXRlLXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXNwczcpCisr CQliYXNpY19tYWNoaW5lPW02OGstYnVsbAorKwkJb3M9LXN5c3YyCisrCQk7OworKwlzcHVyKQor KwkJYmFzaWNfbWFjaGluZT1zcHVyLXVua25vd24KKysJCTs7CisrCXN0MjAwMCkKKysJCWJhc2lj X21hY2hpbmU9bTY4ay10YW5kZW0KKysJCTs7CisrCXN0cmF0dXMpCisrCQliYXNpY19tYWNoaW5l PWk4NjAtc3RyYXR1cworKwkJb3M9LXN5c3Y0CisrCQk7OworKwlzdW4yKQorKwkJYmFzaWNfbWFj aGluZT1tNjgwMDAtc3VuCisrCQk7OworKwlzdW4yb3MzKQorKwkJYmFzaWNfbWFjaGluZT1tNjgw MDAtc3VuCisrCQlvcz0tc3Vub3MzCisrCQk7OworKwlzdW4yb3M0KQorKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW4zb3MzKQorKwkJYmFzaWNf bWFjaGluZT1tNjhrLXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuM29zNCkKKysJCWJh c2ljX21hY2hpbmU9bTY4ay1zdW4KKysJCW9zPS1zdW5vczQKKysJCTs7CisrCXN1bjRvczMpCisr CQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorKwkJb3M9LXN1bm9zMworKwkJOzsKKysJc3VuNG9z NCkKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlz dW40c29sMikKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc29sYXJpczIKKysJ CTs7CisrCXN1bjMgfCBzdW4zLSopCisrCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisrCQk7Owor KwlzdW40KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCTs7CisrCXN1bjM4NiB8IHN1 bjM4NmkgfCByb2FkcnVubmVyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgorKwkJOzsKKysJ c3YxKQorKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJ c3ltbWV0cnkpCisrCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAorKwkJb3M9LWR5bml4Cisr CQk7OworKwl0M2UpCisrCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNyYXkKKysJCW9zPS11bmlj b3MKKysJCTs7CisrCXQ5MCkKKysJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKKysJCW9zPS11bmlj b3MKKysJCTs7CisrCXRpYzU0eCB8IGM1NHgqKQorKwkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5r bm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpYzU1eCB8IGM1NXgqKQorKwkJYmFzaWNfbWFj aGluZT10aWM1NXgtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRpYzZ4IHwgYzZ4KikK KysJCWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgorKwkJb3M9LWNvZmYKKysJCTs7CisrCXRp bGUqKQorKwkJYmFzaWNfbWFjaGluZT10aWxlLXVua25vd24KKysJCW9zPS1saW51eC1nbnUKKysJ CTs7CisrCXR4MzkpCisrCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5LXVua25vd24KKysJCTs7Cisr CXR4MzllbCkKKysJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzllbC11bmtub3duCisrCQk7OworKwl0 b2FkMSkKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAteGtsCisrCQlvcz0tdG9wczIwCisrCQk7Owor Kwl0b3dlciB8IHRvd2VyLTMyKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5jcgorKwkJOzsKKysJ dHBmKQorKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKysJCW9zPS10cGYKKysJCTs7CisrCXVk aTI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS11ZGkKKysJCTs7CisrCXVs dHJhMykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKKysJCW9zPS1zeW0xCisrCQk7OworKwl2 ODEwIHwgbmVjdjgxMCkKKysJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMKKysJCW9zPS1ub25lCisr CQk7OworKwl2YXh2KQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQlvcz0tc3lzdgorKwkJ OzsKKysJdm1zKQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQlvcz0tdm1zCisrCQk7Owor Kwl2cHAqfHZ4fHZ4LSopCisrCQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQorKwkJOzsKKysJ dnh3b3Jrczk2MCkKKysJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKKysJCW9zPS12eHdvcmtzCisr CQk7OworKwl2eHdvcmtzNjgpCisrCQliYXNpY19tYWNoaW5lPW02OGstd3JzCisrCQlvcz0tdnh3 b3JrcworKwkJOzsKKysJdnh3b3JrczI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay13cnMKKysJ CW9zPS12eHdvcmtzCisrCQk7OworKwl3NjUqKQorKwkJYmFzaWNfbWFjaGluZT13NjUtd2RjCisr CQlvcz0tbm9uZQorKwkJOzsKKysJdzg5ay0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdp bmJvbmQKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCXhib3gpCisrCQliYXNpY19tYWNoaW5lPWk2 ODYtcGMKKysJCW9zPS1taW5ndzMyCisrCQk7OworKwl4cHMgfCB4cHMxMDApCisrCQliYXNpY19t YWNoaW5lPXhwczEwMC1ob25leXdlbGwKKysJCTs7CisrCXltcCkKKysJCWJhc2ljX21hY2hpbmU9 eW1wLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXo4ay0qLWNvZmYpCisrCQliYXNpY19t YWNoaW5lPXo4ay11bmtub3duCisrCQlvcz0tc2ltCisrCQk7OworKwl6ODAtKi1jb2ZmKQorKwkJ YmFzaWNfbWFjaGluZT16ODAtdW5rbm93bgorKwkJb3M9LXNpbQorKwkJOzsKKysJbm9uZSkKKysJ CWJhc2ljX21hY2hpbmU9bm9uZS1ub25lCisrCQlvcz0tbm9uZQorKwkJOzsKKysKKysjIEhlcmUg d2UgaGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4g IEl0IGlzIGluCisrIyBzb21lIGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0dXJlciwgaW4gb3RoZXJz LCBpdCBpcyB0aGUgbW9zdCBwb3B1bGFyLgorKwl3ODlrKQorKwkJYmFzaWNfbWFjaGluZT1ocHBh MS4xLXdpbmJvbmQKKysJCTs7CisrCW9wNTBuKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9r aQorKwkJOzsKKysJb3A2MGMpCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisrCQk7Owor Kwlyb21wKQorKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQorKwkJOzsKKysJbW1peCkKKysJCWJh c2ljX21hY2hpbmU9bW1peC1rbnV0aAorKwkJOzsKKysJcnM2MDAwKQorKwkJYmFzaWNfbWFjaGlu ZT1yczYwMDAtaWJtCisrCQk7OworKwl2YXgpCisrCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKysJ CTs7CisrCXBkcDEwKQorKwkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3Qg YSBzYWZlIGJldAorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC11bmtub3duCisrCQk7OworKwlwZHAx MSkKKysJCWJhc2ljX21hY2hpbmU9cGRwMTEtZGVjCisrCQk7OworKwl3ZTMyaykKKysJCWJhc2lj X21hY2hpbmU9d2UzMmstYXR0CisrCQk7OworKwlzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFszNF1l YiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCisrCQliYXNpY19tYWNoaW5lPXNoLXVua25vd24K KysJCTs7CisrCXNwYXJjIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2 KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCTs7CisrCWN5ZHJhKQorKwkJYmFzaWNf bWFjaGluZT1jeWRyYS1jeWRyb21lCisrCQk7OworKwlvcmlvbikKKysJCWJhc2ljX21hY2hpbmU9 b3Jpb24taGlnaGxldmVsCisrCQk7OworKwlvcmlvbjEwNSkKKysJCWJhc2ljX21hY2hpbmU9Y2xp cHBlci1oaWdobGV2ZWwKKysJCTs7CisrCW1hYyB8IG1wdyB8IG1hYy1tcHcpCisrCQliYXNpY19t YWNoaW5lPW02OGstYXBwbGUKKysJCTs7CisrCXBtYWMgfCBwbWFjLW1wdykKKysJCWJhc2ljX21h Y2hpbmU9cG93ZXJwYy1hcHBsZQorKwkJOzsKKysJKi11bmtub3duKQorKwkJIyBNYWtlIHN1cmUg dG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxpemVkIG1hY2hpbmUgbmFtZS4KKysJCTs7Cisr CSopCisrCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFz aWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2Fj CisrCisrIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0 dXJlcnMuCisrY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKwkqLWRpZ2l0YWwqKQorKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCisr CQk7OworKwkqLWNvbW1vZG9yZSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8nYAorKwkJOzsKKysJKikKKysJCTs7CisrZXNh YworKworKyMgRGVjb2RlIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWlu IG9wZXJhdGluZyBzeXN0ZW1zLgorKworK2lmIFsgeCIkb3MiICE9IHgiIiBdCisrdGhlbgorK2Nh c2UgJG9zIGluCisrICAgICAgICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNl cworKyAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0 eXBlcy4KKysJIyAtc29sYXJpcyogaXMgYSBiYXNpYyBzeXN0ZW0gdHlwZSwgd2l0aCB0aGlzIG9u ZSBleGNlcHRpb24uCisrCS1zb2xhcmlzMSB8IC1zb2xhcmlzMS4qKQorKwkJb3M9YGVjaG8gJG9z IHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9zNHwnYAorKwkJOzsKKysJLXNvbGFyaXMpCisrCQlv cz0tc29sYXJpczIKKysJCTs7CisrCS1zdnI0KikKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJLXVu aXh3YXJlKikKKysJCW9zPS1zeXN2NC4ydXcKKysJCTs7CisrCS1nbnUvbGludXgqKQorKwkJb3M9 YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AKKysJCTs7CisrCSMg Rmlyc3QgYWNjZXB0IHRoZSBiYXNpYyBzeXN0ZW0gdHlwZXMuCisrCSMgVGhlIHBvcnRhYmxlIHN5 c3RlbXMgY29tZXMgZmlyc3QuCisrCSMgRWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiBBICos IHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCisrCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1 c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5c3ZyNC4KKysJLWdudSogfCAtYnNkKiB8IC1tYWNo KiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAorKwkgICAgICB8IC0q dm1zKiB8IC1zY28qIHwgLWVzaXgqIHwgLWlzYyogfCAtYWl4KiB8IC1zdW5vcyB8IC1zdW5vc1sz NF0qXAorKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgq IHwgLXNvbGFyaXMqIHwgLXN5bSogXAorKwkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyog fCAtbXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKKysJICAgICAgfCAtYW9z KiBcCisrCSAgICAgIHwgLW5pbmR5KiB8IC12eHNpbSogfCAtdnh3b3JrcyogfCAtZWJtb24qIHwg LWhtcyogfCAtbXZzKiBcCisrCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyog fCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAorKwkgICAgICB8IC1oaXV4KiB8IC0zODZic2Qq IHwgLWtuZXRic2QqIHwgLW1pcmJzZCogfCAtbmV0YnNkKiBcCisrCSAgICAgIHwgLW9wZW5ic2Qq IHwgLXNvbGlkYnNkKiBcCisrCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVl YnNkKiB8IC1yaXNjaXgqIHwgLWx5bnhvcyogXAorKwkgICAgICB8IC1ib3N4KiB8IC1uZXh0c3Rl cCogfCAtY3h1eCogfCAtYW91dCogfCAtZWxmKiB8IC1vYWJpKiBcCisrCSAgICAgIHwgLXB0eCog fCAtY29mZiogfCAtZWNvZmYqIHwgLXdpbm50KiB8IC1kb21haW4qIHwgLXZzdGEqIFwKKysJICAg ICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBc CisrCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIHwgLWNlZ2NjKiBcCisrCSAgICAg IHwgLWN5Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMq IFwKKysJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwg LWxpbnV4LXVjbGliYyogXAorKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAt dWRrKiBcCisrCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkq IHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCisrCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCog fCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAorKwkgICAgICB8IC1zdG9ybS1jaGFv cyogfCAtdG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKKysJICAgICAgfCAt b3MyKiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAorKwkgICAg ICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRp c3MqIFwKKysJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2Vp KiB8IC1kcmFnb25mbHkqIFwKKysJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8 IC10b3BwZXJzKiB8IC1kcm9wcyopCisrCSMgUmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVT VCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKysJCTs7CisrCS1xbngqKQor KwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQorKwkJCTs7 CisrCQkgICAgKikKKysJCQlvcz0tbnRvJG9zCisrCQkJOzsKKysJCWVzYWMKKysJCTs7CisrCS1u dG8tcW54KikKKysJCTs7CisrCS1udG8qKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50 b3xudG8tcW54fCdgCisrCQk7OworKwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwg LW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCisrCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8 IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3UqIFwKKysJICAgICAg fCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxu ZXdzKikKKysJCTs7CisrCS1tYWMqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xt YWNvc3wnYAorKwkJOzsKKysJLWxpbnV4LWRpZXRsaWJjKQorKwkJb3M9LWxpbnV4LWRpZXRsaWJj CisrCQk7OworKwktbGludXgqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxp bnV4LWdudXwnYAorKwkJOzsKKysJLXN1bm9zNSopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUg J3N8c3Vub3M1fHNvbGFyaXMyfCdgCisrCQk7OworKwktc3Vub3M2KikKKysJCW9zPWBlY2hvICRv cyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKKysJCTs7CisrCS1vcGVuZWQqKQorKwkJ b3M9LW9wZW5lZGl0aW9uCisrCQk7OworKyAgICAgICAgLW9zNDAwKikKKysJCW9zPS1vczQwMAor KwkJOzsKKysJLXdpbmNlKikKKysJCW9zPS13aW5jZQorKwkJOzsKKysJLW9zZnJvc2UqKQorKwkJ b3M9LW9zZnJvc2UKKysJCTs7CisrCS1vc2YqKQorKwkJb3M9LW9zZgorKwkJOzsKKysJLXV0ZWsq KQorKwkJb3M9LWJzZAorKwkJOzsKKysJLWR5bml4KikKKysJCW9zPS1ic2QKKysJCTs7CisrCS1h Y2lzKikKKysJCW9zPS1hb3MKKysJCTs7CisrCS1hdGhlb3MqKQorKwkJb3M9LWF0aGVvcworKwkJ OzsKKysJLXN5bGxhYmxlKikKKysJCW9zPS1zeWxsYWJsZQorKwkJOzsKKysJLTM4NmJzZCkKKysJ CW9zPS1ic2QKKysJCTs7CisrCS1jdGl4KiB8IC11dHMqKQorKwkJb3M9LXN5c3YKKysJCTs7Cisr CS1ub3ZhKikKKysJCW9zPS1ydG1rLW5vdmEKKysJCTs7CisrCS1uczIgKQorKwkJb3M9LW5leHRz dGVwMgorKwkJOzsKKysJLW5zayopCisrCQlvcz0tbnNrCisrCQk7OworKwkjIFByZXNlcnZlIHRo ZSB2ZXJzaW9uIG51bWJlciBvZiBzaW5peDUuCisrCS1zaW5peDUuKikKKysJCW9zPWBlY2hvICRv cyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCisrCQk7OworKwktc2luaXgqKQorKwkJb3M9LXN5 c3Y0CisrCQk7OworKyAgICAgICAgLXRwZiopCisrCQlvcz0tdHBmCisrCQk7OworKwktdHJpdG9u KikKKysJCW9zPS1zeXN2MworKwkJOzsKKysJLW9zcyopCisrCQlvcz0tc3lzdjMKKysJCTs7Cisr CS1zdnI0KQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwktc3ZyMykKKysJCW9zPS1zeXN2MworKwkJ OzsKKysJLXN5c3ZyNCkKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBh ZnRlciAtc3lzdnI0LgorKwktc3lzdiopCisrCQk7OworKwktb3NlKikKKysJCW9zPS1vc2UKKysJ CTs7CisrCS1lczE4MDAqKQorKwkJb3M9LW9zZQorKwkJOzsKKysJLXhlbml4KQorKwkJb3M9LXhl bml4CisrCQk7OworKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0q KQorKwkJb3M9LW1pbnQKKysJCTs7CisrCS1hcm9zKikKKysJCW9zPS1hcm9zCisrCQk7OworKwkt a2FvcyopCisrCQlvcz0ta2FvcworKwkJOzsKKysJLXp2bW9lKQorKwkJb3M9LXp2bW9lCisrCQk7 OworKwktZGljb3MqKQorKwkJb3M9LWRpY29zCisrCQk7OworKwktbm9uZSkKKysJCTs7CisrCSop CisrCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KKysJCW9z PWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCisrCQllY2hvIEludmFsaWQgY29uZmlndXJh dGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wnIG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4aXQg MQorKwkJOzsKKytlc2FjCisrZWxzZQorKworKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQg b3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21lIHdpdGggdmFyaW91cyBtYWNoaW5lcy4KKysjIFRo ZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhl IGRvb3Igd2l0aCB0aGVpcgorKyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0 IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KKysKKysjIE5vdGUgdGhhdCBp ZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXks CisrIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVw IHRvd2FyZHMgdGhlIHRvcAorKyMgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5n IHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBhYm92ZQorKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Ig c2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZworKyMgc3lzdGVtLCBh bmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCisrCisrY2FzZSAkYmFzaWNfbWFjaGlu ZSBpbgorKyAgICAgICAgc2NvcmUtKikKKysJCW9zPS1lbGYKKysJCTs7CisrICAgICAgICBzcHUt KikKKysJCW9zPS1lbGYKKysJCTs7CisrCSotYWNvcm4pCisrCQlvcz0tcmlzY2l4MS4yCisrCQk7 OworKwlhcm0qLXJlYmVsKQorKwkJb3M9LWxpbnV4CisrCQk7OworKwlhcm0qLXNlbWkpCisrCQlv cz0tYW91dAorKwkJOzsKKysgICAgICAgIGM0eC0qIHwgdGljNHgtKikKKysgICAgICAgIAlvcz0t Y29mZgorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5Lgor KwlwZHAxMC0qKQorKwkJb3M9LXRvcHMyMAorKwkJOzsKKysJcGRwMTEtKikKKysJCW9zPS1ub25l CisrCQk7OworKwkqLWRlYyB8IHZheC0qKQorKwkJb3M9LXVsdHJpeDQuMgorKwkJOzsKKysJbTY4 Ki1hcG9sbG8pCisrCQlvcz0tZG9tYWluCisrCQk7OworKwlpMzg2LXN1bikKKysJCW9zPS1zdW5v czQuMC4yCisrCQk7OworKwltNjgwMDAtc3VuKQorKwkJb3M9LXN1bm9zMworKwkJIyBUaGlzIGFs c28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCisrCQkj IGRlZmF1bHQuCisrCQkjIG9zPS1zdW5vczQKKysJCTs7CisrCW02OCotY2lzY28pCisrCQlvcz0t YW91dAorKwkJOzsKKysgICAgICAgIG1lcC0qKQorKwkJb3M9LWVsZgorKwkJOzsKKysJbWlwcyot Y2lzY28pCisrCQlvcz0tZWxmCisrCQk7OworKwltaXBzKi0qKQorKwkJb3M9LWVsZgorKwkJOzsK KysJb3IzMi0qKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotdHRpKQkjIG11c3QgYmUgYmVmb3Jl IHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3MuCisrCQlvcz0tc3lzdjMKKysJCTs7 CisrCXNwYXJjLSogfCAqLXN1bikKKysJCW9zPS1zdW5vczQuMS4xCisrCQk7OworKwkqLWJlKQor KwkJb3M9LWJlb3MKKysJCTs7CisrCSotaGFpa3UpCisrCQlvcz0taGFpa3UKKysJCTs7CisrCSot aWJtKQorKwkJb3M9LWFpeAorKwkJOzsKKysgICAgCSota251dGgpCisrCQlvcz0tbW1peHdhcmUK KysJCTs7CisrCSotd2VjKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi13aW5ib25kKQorKwkJ b3M9LXByb2VsZgorKwkJOzsKKysJKi1va2kpCisrCQlvcz0tcHJvZWxmCisrCQk7OworKwkqLWhw KQorKwkJb3M9LWhwdXgKKysJCTs7CisrCSotaGl0YWNoaSkKKysJCW9zPS1oaXV4CisrCQk7Owor KwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZl cmdlbnQpCisrCQlvcz0tc3lzdgorKwkJOzsKKysJKi1jYm0pCisrCQlvcz0tYW1pZ2FvcworKwkJ OzsKKysJKi1kZykKKysJCW9zPS1kZ3V4CisrCQk7OworKwkqLWRvbHBoaW4pCisrCQlvcz0tc3lz djMKKysJCTs7CisrCW02OGstY2N1cikKKysJCW9zPS1ydHUKKysJCTs7CisrCW04OGstb21yb24q KQorKwkJb3M9LWx1bmEKKysJCTs7CisrCSotbmV4dCApCisrCQlvcz0tbmV4dHN0ZXAKKysJCTs7 CisrCSotc2VxdWVudCkKKysJCW9zPS1wdHgKKysJCTs7CisrCSotY3JkcykKKysJCW9zPS11bm9z CisrCQk7OworKwkqLW5zKQorKwkJb3M9LWdlbml4CisrCQk7OworKwlpMzcwLSopCisrCQlvcz0t bXZzCisrCQk7OworKwkqLW5leHQpCisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7OworKwkqLWdvdWxk KQorKwkJb3M9LXN5c3YKKysJCTs7CisrCSotaGlnaGxldmVsKQorKwkJb3M9LWJzZAorKwkJOzsK KysJKi1lbmNvcmUpCisrCQlvcz0tYnNkCisrCQk7OworKwkqLXNnaSkKKysJCW9zPS1pcml4Cisr CQk7OworKwkqLXNpZW1lbnMpCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCSotbWFzc2NvbXApCisr CQlvcz0tcnR1CisrCQk7OworKwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCisrCQlv cz0tdXhwdgorKwkJOzsKKysJKi1yb202OGspCisrCQlvcz0tY29mZgorKwkJOzsKKysJKi0qYnVn KQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotYXBwbGUpCisrCQlvcz0tbWFjb3MKKysJCTs7Cisr CSotYXRhcmkqKQorKwkJb3M9LW1pbnQKKysJCTs7CisrCSopCisrCQlvcz0tbm9uZQorKwkJOzsK Kytlc2FjCisrZmkKKysKKysjIEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cg dGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQorKyMgbWFudWZhY3R1cmVyLiAg V2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCisrdmVuZG9yPXVua25vd24KKytjYXNl ICRiYXNpY19tYWNoaW5lIGluCisrCSotdW5rbm93bikKKysJCWNhc2UgJG9zIGluCisrCQkJLXJp c2NpeCopCisrCQkJCXZlbmRvcj1hY29ybgorKwkJCQk7OworKwkJCS1zdW5vcyopCisrCQkJCXZl bmRvcj1zdW4KKysJCQkJOzsKKysJCQktYWl4KikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7Owor KwkJCS1iZW9zKikKKysJCQkJdmVuZG9yPWJlCisrCQkJCTs7CisrCQkJLWhwdXgqKQorKwkJCQl2 ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktbXBlaXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsK KysJCQktaGl1eCopCisrCQkJCXZlbmRvcj1oaXRhY2hpCisrCQkJCTs7CisrCQkJLXVub3MqKQor KwkJCQl2ZW5kb3I9Y3JkcworKwkJCQk7OworKwkJCS1kZ3V4KikKKysJCQkJdmVuZG9yPWRnCisr CQkJCTs7CisrCQkJLWx1bmEqKQorKwkJCQl2ZW5kb3I9b21yb24KKysJCQkJOzsKKysJCQktZ2Vu aXgqKQorKwkJCQl2ZW5kb3I9bnMKKysJCQkJOzsKKysJCQktbXZzKiB8IC1vcGVuZWQqKQorKwkJ CQl2ZW5kb3I9aWJtCisrCQkJCTs7CisrCQkJLW9zNDAwKikKKysJCQkJdmVuZG9yPWlibQorKwkJ CQk7OworKwkJCS1wdHgqKQorKwkJCQl2ZW5kb3I9c2VxdWVudAorKwkJCQk7OworKwkJCS10cGYq KQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7CisrCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13 aW5kaXNzKikKKysJCQkJdmVuZG9yPXdycworKwkJCQk7OworKwkJCS1hdXgqKQorKwkJCQl2ZW5k b3I9YXBwbGUKKysJCQkJOzsKKysJCQktaG1zKikKKysJCQkJdmVuZG9yPWhpdGFjaGkKKysJCQkJ OzsKKysJCQktbXB3KiB8IC1tYWNvcyopCisrCQkJCXZlbmRvcj1hcHBsZQorKwkJCQk7OworKwkJ CS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisrCQkJCXZlbmRv cj1hdGFyaQorKwkJCQk7OworKwkJCS12b3MqKQorKwkJCQl2ZW5kb3I9c3RyYXR1cworKwkJCQk7 OworKwkJZXNhYworKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAi cy91bmtub3duLyR2ZW5kb3IvImAKKysJCTs7CisrZXNhYworKworK2VjaG8gJGJhc2ljX21hY2hp bmUkb3MKKytleGl0CisrCisrIyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sg J3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGlt ZXN0YW1wPSciCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisrIyB0aW1l LXN0YW1wLWVuZDogIiciCisrIyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2NwcHVuaXQubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00CistLS0g c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQJ MjAwOS0wNS0yMiAyMjo1NDozNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOTMgQEAKKytk bmwKKytkbmwgQU1fUEFUSF9DUFBVTklUKE1JTklNVU0tVkVSU0lPTiwgW0FDVElPTi1JRi1GT1VO RCBbLCBBQ1RJT04tSUYtTk9ULUZPVU5EXV0pCisrZG5sCisrQUNfREVGVU4oW0FNX1BBVEhfQ1BQ VU5JVF0sCisrWworKworK0FDX0FSR19XSVRIKGNwcHVuaXQtcHJlZml4LFsgIC0td2l0aC1jcHB1 bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlv bmFsKV0sCisrICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIsIGNw cHVuaXRfY29uZmlnX3ByZWZpeD0iIikKKytBQ19BUkdfV0lUSChjcHB1bml0LWV4ZWMtcHJlZml4 LFsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhlYyBwcmVmaXggd2hlcmUgQ3Bw VW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCisrICAgICAgICAgICAgY3BwdW5pdF9jb25m aWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiIp CisrCisrICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4K KysgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1w cmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBV TklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0k Y3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQor KyAgZmkKKysgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysg ICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRj cHB1bml0X2NvbmZpZ19wcmVmaXgiCisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3Nl dH0gIT0geHNldCA7IHRoZW4KKysgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZp Z19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysKKysgIEFDX1BB VEhfUFJPRyhDUFBVTklUX0NPTkZJRywgY3BwdW5pdC1jb25maWcsIG5vKQorKyAgY3BwdW5pdF92 ZXJzaW9uX21pbj0kMQorKworKyAgQUNfTVNHX0NIRUNLSU5HKGZvciBDcHB1bml0IC0gdmVyc2lv biA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbikKKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3Qg IiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgorKyAgICBBQ19NU0dfUkVTVUxUKG5vKQor KyAgICBub19jcHB1bml0PXllcworKyAgZWxzZQorKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVO SVRfQ09ORklHIC0tY2ZsYWdzYAorKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAt LWxpYnNgCisrICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAK KysKKysgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBc CisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0q XCkvXDEvJ2AKKysgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJ T04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtb MC05XV0qXCkvXDIvJ2AKKysgICAgY3BwdW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklU X1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpc KS5cKFtbMC05XV0qXCkvXDMvJ2AKKysKKysgICAgY3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNw cHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwo W1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9t YWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9tYWpvcl9taW49MAorKyAg ICBmaQorKyAgICAKKysgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lv bl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5c KFtbMC05XV0qXCkvXDIvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9 ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taW5vcl9taW49MAorKyAgICBmaQorKyAgICAK KysgICAgY3BwdW5pdF9taWNyb19taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisr ICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkv XDMvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taWNyb19taW59IiA9ICJ4IiA7IHRoZW4K KysgICAgICAgY3BwdW5pdF9taWNyb19taW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X3Zl cnNpb25fcHJvcGVyPWBleHByIFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD4g JGNwcHVuaXRfbWFqb3JfbWluIFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24g XD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNp b24gXD4gJGNwcHVuaXRfbWlub3JfbWluIFx8IFwKKysgICAgICAgICRjcHB1bml0X21ham9yX3Zl cnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21pbm9y X3ZlcnNpb24gXD0gJGNwcHVuaXRfbWlub3JfbWluIFwmIFwKKysgICAgICAgICRjcHB1bml0X21p Y3JvX3ZlcnNpb24gXD49ICRjcHB1bml0X21pY3JvX21pbiBgCisrCisrICAgIGlmIHRlc3QgIiRj cHB1bml0X3ZlcnNpb25fcHJvcGVyIiA9ICIxIiA7IHRoZW4KKysgICAgICBBQ19NU0dfUkVTVUxU KFskY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRf bWljcm9fdmVyc2lvbl0pCisrICAgIGVsc2UKKysgICAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAg ICAgIG5vX2NwcHVuaXQ9eWVzCisrICAgIGZpCisrICBmaQorKworKyAgaWYgdGVzdCAieCRub19j cHB1bml0IiA9IHggOyB0aGVuCisrICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKSAgICAgCisr ICBlbHNlCisrICAgICBDUFBVTklUX0NGTEFHUz0iIgorKyAgICAgQ1BQVU5JVF9MSUJTPSIiCisr ICAgICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQorKyAgZmkKKysKKysgIEFDX1NVQlNUKENQUFVO SVRfQ0ZMQUdTKQorKyAgQUNfU1VCU1QoQ1BQVU5JVF9MSUJTKQorKyAgQUNfU1VCU1QoQ1BQVU5J VF9WRVJTSU9OKQorK10pCisrCisrCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2RlcGNvbXAgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9kZXBjb21wCistLS0gc29jaS0z LjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2RlcGNvbXAJMjAwOS0wNS0yMyAx MDowMjowMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTg5IEBACisrIyEgL2Jpbi9zaAor KyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzIGFz IHNpZGUtZWZmZWN0cworKworK3NjcmlwdHZlcnNpb249MjAwNy0wMy0yOS4wMQorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEZyZWUg U29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g Miwgb3IgKGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0x MzAxLCBVU0EuCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0 IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdl bmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2Ft ZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHBy b2dyYW0uCisrCisrIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxvbGl2 YUBkY2MudW5pY2FtcC5icj4uCisrCisrY2FzZSAkMSBpbgorKyAgJycpCisrICAgICBlY2hvICIk MDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAx PiYyCisrICAgICBleGl0IDE7CisrICAgICA7OworKyAgLWggfCAtLWgqKQorKyAgICBjYXQgPDxc RU9GCisrVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJHU10K KysKKytSdW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEgZmlsZSwgZ2VuZXJhdGluZyBkZXBl bmRlbmNpZXMKKythcyBzaWRlLWVmZmVjdHMuCisrCisrRW52aXJvbm1lbnQgdmFyaWFibGVzOgor KyAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2RlLgorKyAgc291cmNlICAgICAg U291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCisrICBvYmplY3QgICAgICBPYmpl Y3QgZmlsZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgorKyAgREVQRElSICAgICAgZGlyZWN0 b3J5IHdoZXJlIHRvIHN0b3JlIGRlcGVuZGVuY2llcy4KKysgIGRlcGZpbGUgICAgIERlcGVuZGVu Y3kgZmlsZSB0byBvdXRwdXQuCisrICB0bXBkZXBmaWxlICBUZW1wb3JhcnkgZmlsZSB0byB1c2Ug d2hlbiBvdXRwdXRpbmcgZGVwZW5kZW5jaWVzLgorKyAgbGlidG9vbCAgICAgV2hldGhlciBsaWJ0 b29sIGlzIHVzZWQgKHllcy9ubykuCisrCisrUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBn bnUub3JnPi4KKytFT0YKKysgICAgZXhpdCAkPworKyAgICA7OworKyAgLXYgfCAtLXYqKQorKyAg ICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgorKyAgICBleGl0ICQ/CisrICAgIDs7Cisr ZXNhYworKworK2lmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIkc291cmNlIiB8fCB0 ZXN0IC16ICIkb2JqZWN0IjsgdGhlbgorKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJj ZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCisrICBleGl0IDEKKytmaQor KworKyMgRGVwZW5kZW5jaWVzIGZvciBzdWIvYmFyLm8gb3Igc3ViL2Jhci5vYmogZ28gaW50byBz dWIvLmRlcHMvYmFyLlBvLgorK2RlcGZpbGU9JHtkZXBmaWxlLWBlY2hvICIkb2JqZWN0IiB8Cisr ICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8LlBc MXw7c3xQb2JqJHxQb3wnYH0KKyt0bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRlcGZp bGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQorKworK3JtIC1mICIkdG1wZGVwZmls ZSIKKysKKysjIFNvbWUgbW9kZXMgd29yayBqdXN0IGxpa2Ugb3RoZXIgbW9kZXMsIGJ1dCB1c2Ug ZGlmZmVyZW50IGZsYWdzLiAgV2UKKysjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlz dCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAorKyMgdG8gbWFrZSBkZXBlbmQubTQg ZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKKysjIGhl cmUsIGJlY2F1c2UgdGhpcyBmaWxlIGNhbiBvbmx5IGNvbnRhaW4gb25lIGNhc2Ugc3RhdGVtZW50 LgorK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCisrICAjIEhQIGNvbXBpbGVyIHVzZXMg LU0gYW5kIG5vIGV4dHJhIGFyZy4KKysgIGdjY2ZsYWc9LU0KKysgIGRlcG1vZGU9Z2NjCisrZmkK KysKKytpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KKysgICAjIFRoaXMg aXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCisrICAg ZGFzaG1mbGFnPS14TQorKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKKytmaQorKworK2Nhc2UgIiRk ZXBtb2RlIiBpbgorK2djYzMpCisrIyMgZ2NjIDMgaW1wbGVtZW50cyBkZXBlbmRlbmN5IHRyYWNr aW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKKysjIyB3ZSB3YW50LiAgWWF5ISAgTm90ZTogZm9y IHNvbWUgcmVhc29uIGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlrZQorKyMjIGl0IGlmIC1NRCAtTVAg Y29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KKysjIyBVbmZvcnR1bmF0ZWx5LCBGcmVl QlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBvbgorKyMjIHRoZSBjb21tYW5k IGxpbmUgYXJndW1lbnQgb3JkZXI7IHNvIGFkZCB0aGUgZmxhZ3Mgd2hlcmUgdGhleQorKyMjIGFw cGVhciBpbiBkZXBlbmQyLmFtLiAgTm90ZSB0aGF0IHRoZSBzbG93ZG93biBpbmN1cnJlZCBoZXJl CisrIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZpbGVzLCAlRkFTVERFUCUgc2hv cnRjdXRzIHRoaXMuCisrICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICRhcmcgaW4KKysgICAg LWMpIHNldCBmbm9yZCAiJEAiIC1NVCAiJG9iamVjdCIgLU1EIC1NUCAtTUYgIiR0bXBkZXBmaWxl IiAiJGFyZyIgOzsKKysgICAgKikgIHNldCBmbm9yZCAiJEAiICIkYXJnIiA7OworKyAgICBlc2Fj CisrICAgIHNoaWZ0ICMgZm5vcmQKKysgICAgc2hpZnQgIyAkYXJnCisrICBkb25lCisrICAiJEAi CisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysg ICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKyAgbXYgIiR0 bXBkZXBmaWxlIiAiJGRlcGZpbGUiCisrICA7OworKworK2djYykKKysjIyBUaGVyZSBhcmUgdmFy aW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncworKyMj IHdoeSB3ZSBwaWNrIHRoaXMgcmF0aGVyIG9ic2N1cmUgbWV0aG9kOgorKyMjIC0gRG9uJ3Qgd2Fu dCB0byB1c2UgLU1EIGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBkZXBlbmRlbmNpZXMgdG8gZW5kCisr IyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5Lgor KyMjICAgKFdlIG1pZ2h0IGVuZCB1cCBkb2luZyB0aGlzIGFueXdheSB0byBzdXBwb3J0IG90aGVy IGNvbXBpbGVycy4pCisrIyMgLSBUaGUgREVQRU5ERU5DSUVTX09VVFBVVCBlbnZpcm9ubWVudCB2 YXJpYWJsZSBtYWtlcyBnY2MgYWN0IGxpa2UKKysjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdo YXQgdGhlIGRvY3Mgc2F5KS4KKysjIyAtIFVzaW5nIC1NIGRpcmVjdGx5IG1lYW5zIHJ1bm5pbmcg dGhlIGNvbXBpbGVyIHR3aWNlIChldmVuIHdvcnNlCisrIyMgICB0aGFuIHJlbmFtaW5nKS4KKysg IGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgorKyAgICBnY2NmbGFnPS1NRCwKKysgIGZpCisr ICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3Qg JHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisr ICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2Jq ZWN0IDogXFwiID4gIiRkZXBmaWxlIgorKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldY WVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egorKyMjIFRoZSBzZWNvbmQgLWUgZXhwcmVzc2lv biBoYW5kbGVzIERPUy1zdHlsZSBmaWxlIG5hbWVzIHdpdGggZHJpdmUgbGV0dGVycy4KKysgIHNl ZCAtZSAncy9eW146XSo6IC8gLycgXAorKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6 IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysjIyBUaGlzIG5leHQgcGllY2Ug b2YgbWFnaWMgYXZvaWRzIHRoZSBgZGVsZXRlZCBoZWFkZXIgZmlsZScgcHJvYmxlbS4KKysjIyBU aGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gYSBoZWFkZXIgZmlsZSB3aGljaCBhcHBlYXJzIGluIGEg LlAgZmlsZQorKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRp ZSAoYmVjYXVzZSB0aGVyZSBpcworKyMjIHR5cGljYWxseSBubyB3YXkgdG8gcmVidWlsZCB0aGUg aGVhZGVyKS4gIFdlIGF2b2lkIHRoaXMgYnkgYWRkaW5nCisrIyMgZHVtbXkgZGVwZW5kZW5jaWVz IGZvciBlYWNoIGhlYWRlciBmaWxlLiAgVG9vIGJhZCBnY2MgZG9lc24ndCBkbworKyMjIHRoaXMg Zm9yIHVzIGRpcmVjdGx5LgorKyAgdHIgJyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiB8CisrIyMg U29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUg dGhlb3J5CisrIyMgdGhhdCB0aGUgc3BhY2UgbWVhbnMgc29tZXRoaW5nLCB3ZSBhZGQgYSBzcGFj ZSB0byB0aGUgb3V0cHV0IGFzCisrIyMgd2VsbC4KKysjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBI UFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJlY3Rs eS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQu CisrICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAn cy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysK KytocCkKKysgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRz IHdvcmsuICBJdCB3b3JrcyBieQorKyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMgc2Ny aXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAorKyAgIyBzaW5jZSBpdCBpcyBjaGVj a2VkIGZvciBhYm92ZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKytzZ2kpCisrICBpZiB0ZXN0ICIk bGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmls ZSIKKysgIGVsc2UKKysgICAgIiRAIiAtTUR1cGRhdGUgIiR0bXBkZXBmaWxlIgorKyAgZmkKKysg IHN0YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBy bSAtZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRl cGZpbGUiCisrCisrICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUg c291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKKysgICAgZWNobyAiJG9iamVjdCA6IFxc IiA+ICIkZGVwZmlsZSIKKysKKysgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0 aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQorKyAgICAjIGNsZXZlciBhbmQgcmVwbGFj ZSB0aGlzIHdpdGggc2VkIGNvZGUsIGFzIElSSVggc2VkIHdvbid0IGhhbmRsZQorKyAgICAjIGxp bmVzIHdpdGggbW9yZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgKDQwOTYgaW4K KysgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUg Y29tbWVudCBsaW5lczsKKysgICAgIyB0aGUgSVJJWCBjYyBhZGRzIGNvbW1lbnRzIGxpa2UgYCM6 ZmVjJyB0byB0aGUgZW5kIG9mIHRoZQorKyAgICAjIGRlcGVuZGVuY3kgbGluZS4KKysgICAgdHIg JyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiBcCisrICAgIHwgc2VkIC1lICdzL14uKlwubzovLycg LWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyB8IFwKKysgICAgdHIgJworKycgJyAnID4+ICRkZXBm aWxlCisrICAgIGVjaG8gPj4gJGRlcGZpbGUKKysKKysgICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2Vu ZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVhZGVyIGZpbGUuCisrICAgIHRyICcgJyAn CisrJyA8ICIkdG1wZGVwZmlsZSIgXAorKyAgIHwgc2VkIC1lICdzL14uKlwubzovLycgLWUgJ3Mv Iy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBcCisrICAgPj4gJGRlcGZpbGUKKysgIGVs c2UKKysgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNp ZXMsIHNvIGp1c3QKKysgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQg ZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCisrICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBz Y2hlbWUuCisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYg IiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKythaXgpCisrICAjIFRoZSBDIGZvciBBSVggQ29tcGls ZXIgdXNlcyAtTSBhbmQgb3V0cHV0cyB0aGUgZGVwZW5kZW5jaWVzCisrICAjIGluIGEgLnUgZmls ZS4gIEluIG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3YXlzIGxpdmVzIGluIHRoZQorKyAg IyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVj dDonIGF0IHRoZQorKyAgIyBzdGFydCBvZiBlYWNoIGxpbmU7ICRvYmplY3QgZG9lc24ndCBoYXZl IGRpcmVjdG9yeSBpbmZvcm1hdGlvbi4KKysgICMgVmVyc2lvbiA2IHVzZXMgdGhlIGRpcmVjdG9y eSBpbiBib3RoIGNhc2VzLgorKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14v XSokfC98J2AKKysgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorKyAgYmFzZT1g ZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wu bG8kLy8nYAorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHRtcGRlcGZp bGUxPSRkaXIkYmFzZS51CisrICAgIHRtcGRlcGZpbGUyPSRiYXNlLnUKKysgICAgdG1wZGVwZmls ZTM9JGRpci5saWJzLyRiYXNlLnUKKysgICAgIiRAIiAtV2MsLU0KKysgIGVsc2UKKysgICAgdG1w ZGVwZmlsZTE9JGRpciRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLnUKKysgICAg dG1wZGVwZmlsZTM9JGRpciRiYXNlLnUKKysgICAgIiRAIiAtTQorKyAgZmkKKysgIHN0YXQ9JD8K KysKKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAi JHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorKyAgICBleGl0ICRz dGF0CisrICBmaQorKworKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBk ZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKKysgIGRvCisrICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxl IiAmJiBicmVhaworKyAgZG9uZQorKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisr ICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgorKyAg ICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bworKyAgICAjIGAk b2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisr ICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAi JGRlcGZpbGUiCisrICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KKysg ICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBm aWxlIiA+PiAiJGRlcGZpbGUiCisrICBlbHNlCisrICAgICMgVGhlIHNvdXJjZWZpbGUgZG9lcyBu b3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0CisrICAgICMgc3RvcmUgYSBkdW1t eSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorKyAgICAj ICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgorKyAgICBlY2hvICIjZHVtbXkiID4gIiRk ZXBmaWxlIgorKyAgZmkKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisraWNjKQor KyAgIyBJbnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMgYC1NRCAtTUYgZmlsZScuICBIb3dl dmVyIG9uCisrICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIvZm9v LmMKKysgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBzb21ldGhpbmcgbGlrZQorKyAg IyAgICBmb28ubzogc3ViL2Zvby5jCisrICAjICAgIGZvby5vOiBzdWIvZm9vLmgKKysgICMgd2hp Y2ggaXMgd3JvbmcuICBXZSB3YW50OgorKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uYworKyAg IyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAorKyAgIyAgICBzdWIvZm9vLmM6CisrICAjICAgIHN1 Yi9mb28uaDoKKysgICMgSUNDIDcuMSB3aWxsIG91dHB1dAorKyAgIyAgICBmb28ubzogc3ViL2Zv by5jIHN1Yi9mb28uaAorKyAgIyBhbmQgd2lsbCB3cmFwIGxvbmcgbGluZXMgdXNpbmcgXCA6Cisr ICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKKysgICMgICAgIHN1Yi9mb28uaCAuLi4gXAor KyAgIyAgICAgLi4uCisrCisrICAiJEAiIC1NRCAtTUYgIiR0bXBkZXBmaWxlIgorKyAgc3RhdD0k PworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJtIC1mICIk dG1wZGVwZmlsZSIKKysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysgIHJtIC1mICIkZGVwZmlsZSIK KysgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAorKyAg IyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVwMy5oIGRlcDQuaCBcJy4KKysg ICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisrICAjIGAkb2Jq ZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisrICBz ZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisr ICAjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhp cyBpbnZvY2F0aW9uCisrICAjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBp bnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICBzZWQgJ3MsXlteOl0qOiBcKC4qXCkkLFwx LDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUiIHwKKysgICAgc2VkIC1lICdz LyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKwor K2hwMikKKysgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMgbm90IHdvcmsgd2l0aCBhQ0Mg KEMrKykgYW5kIEhQJ3MgaWE2NAorKyAgIyBjb21waWxlcnMsIHdoaWNoIGhhdmUgaW50ZWdyYXRl ZCBwcmVwcm9jZXNzb3JzLiAgVGhlIGNvcnJlY3Qgb3B0aW9uCisrICAjIHRvIHVzZSB3aXRoIHRo ZXNlIGlzICtNYWtlZDsgaXQgd3JpdGVzIGRlcGVuZGVuY2llcyB0byBhIGZpbGUgbmFtZWQKKysg ICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2JqZWN0IGZpbGUsIHdoZXJldmVy IHRoYXQKKysgICMgaGFwcGVucyB0byBiZS4KKysgICMgTXVjaCBvZiB0aGlzIGlzIHNpbWlsYXIg dG8gdGhlIHRydTY0IGNhc2U7IHNlZSBjb21tZW50cyB0aGVyZS4KKysgIGRpcj1gZWNobyAiJG9i amVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCisrICB0ZXN0ICJ4JGRpciIgPSAieCRvYmpl Y3QiICYmIGRpcj0KKysgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcg LWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHll czsgdGhlbgorKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAorKyAgICB0bXBkZXBmaWxlMj0k ZGlyLmxpYnMvJGJhc2UuZAorKyAgICAiJEAiIC1XYywrTWFrZWQKKysgIGVsc2UKKysgICAgdG1w ZGVwZmlsZTE9JGRpciRiYXNlLmQKKysgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLmQKKysgICAg IiRAIiArTWFrZWQKKysgIGZpCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0 aGVuIDoKKysgIGVsc2UKKysgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIi CisrICAgICBleGl0ICRzdGF0CisrICBmaQorKworKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0bXBk ZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKKysgIGRvCisrICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxl IiAmJiBicmVhaworKyAgZG9uZQorKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisr ICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAiJHRtcGRlcGZpbGUiID4gIiRk ZXBmaWxlIgorKyAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBsaW5lcy4KKysgICAgc2VkIC1uZSAn Miwkezsgcy9eICovLzsgcy8gXFwqJC8vOyBzLyQvOi87IHA7fScgIiR0bXBkZXBmaWxlIiA+PiAi JGRlcGZpbGUiCisrICBlbHNlCisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBm aQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUyIgorKyAgOzsKKysKKyt0cnU2 NCkKKysgICAjIFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRl bmNpZXMgYXMgYSBzaWRlCisrICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0 cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgorKyAgICMgQXQgbGVhc3Qgb24gQWxw aGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVtcyB0byBwdXQKKysgICAjIGRl cGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4K KysgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCisrICAgZGlyPWBlY2hvICIkb2Jq ZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKysgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmpl Y3QiICYmIGRpcj0KKysgICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwn IC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisrCisrICAgaWYgdGVzdCAiJGxpYnRvb2wi ID0geWVzOyB0aGVuCisrICAgICAgIyBXaXRoIFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4g YWxzbyBiZSB1c2VkIHRvIG1ha2UgYQorKyAgICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1l Y2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0bworKyAgICAgICMgaGFuZGxl IGJvdGggc2hhcmVkIGFuZCBzdGF0aWMgbGlicmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9u LgorKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGlu ICRkaXIubGlicy8kYmFzZS5sby5kLgorKyAgICAgICMKKysgICAgICAjIFdpdGggbGlidG9vbCAx LjUgdGhpcyBleGNlcHRpb24gd2FzIHJlbW92ZWQsIGFuZCBsaWJ0b29sIG5vdworKyAgICAgICMg Z2VuZXJhdGVzIDIgc2VwYXJhdGUgb2JqZWN0cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2Ug dHdvCisrICAgICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxp YnMvJGJhc2Uuby5kIGFuZAorKyAgICAgICMgaW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8g Y2hlY2sgZm9yIGJvdGggZmlsZXMsIGJlY2F1c2UKKysgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNv bXBpbGF0aW9ucyBjYW4gYmUgZGlzYWJsZWQuICBXZSBzaG91bGQgcHJlZmVyCisrICAgICAgIyAk ZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIg aXMKKysgICAgICAjIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVk LCB3aGlsZSBpZ25vcmluZworKyAgICAgICMgdGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3Rj bGVhbmNoZWNrIHBhbmljLgorKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5k ICAgIyBsaWJ0b29sIDEuNAorKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAg ICAgIyBsaWJ0b29sIDEuNQorKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQg ICAgIyBsaWJ0b29sIDEuNQorKyAgICAgIHRtcGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAg ICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0CisrICAgICAgIiRAIiAtV2MsLU1ECisrICAgZWxzZQor KyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKKysgICAgICB0bXBkZXBmaWxlMj0kZGly JGJhc2UuZAorKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS5kCisrICAgICAgdG1wZGVwZmls ZTQ9JGRpciRiYXNlLmQKKysgICAgICAiJEAiIC1NRAorKyAgIGZpCisrCisrICAgc3RhdD0kPwor KyAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgIGVsc2UKKysgICAgICBybSAtZiAi JHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0 IgorKyAgICAgIGV4aXQgJHN0YXQKKysgICBmaQorKworKyAgIGZvciB0bXBkZXBmaWxlIGluICIk dG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQi CisrICAgZG8KKysgICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgIGRvbmUK KysgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysgICAgICBzZWQgLWUgInMsXi4q XC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAg ICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4KKysgICAgICBzZWQgLWUgJ3Ms Xi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVw ZmlsZSIKKysgICBlbHNlCisrICAgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKysgICBm aQorKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICA7OworKworKyNub3NpZGVlZmZlY3QpCisr ICAjIFRoaXMgY29tbWVudCBhYm92ZSBpcyB1c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1l ZmZlY3QKKysgICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9u ZXMuCisrCisrZGFzaG1zdGRvdXQpCisrICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBz dXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRo ZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCisrICAiJEAi IHx8IGV4aXQgJD8KKysKKysgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0 ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2Rl PWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZp CisrCisrICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCisrICBJRlM9IiAiCisrICBmb3IgYXJnCisr ICBkbworKyAgICBjYXNlICRhcmcgaW4KKysgICAgLW8pCisrICAgICAgc2hpZnQKKysgICAgICA7 OworKyAgICAkb2JqZWN0KQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysgICAgKikKKysgICAg ICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgICAgc2hp ZnQgIyAkYXJnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgdGVzdCAteiAi JGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCisrICAjIFJlcXVpcmUgYXQgbGVhc3QgdHdvIGNo YXJhY3RlcnMgYmVmb3JlIHNlYXJjaGluZyBmb3IgYDonCisrICAjIGluIHRoZSB0YXJnZXQgbmFt ZS4gIFRoaXMgaXMgdG8gY29wZSB3aXRoIERPUy1zdHlsZSBmaWxlbmFtZXM6CisrICAjIGEgZGVw ZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycg b3RoZXJ3aXNlLgorKyAgIiRAIiAkZGFzaG1mbGFnIHwKKysgICAgc2VkICdzOl5bICBdKlteOiBd W146XVteOl0qXDpbICAgIF0qOiciJG9iamVjdCInXDogOicgPiAiJHRtcGRlcGZpbGUiCisrICBy bSAtZiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAg dHIgJyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiB8IFwKKysjIyBTb21lIHZlcnNpb25zIG9mIHRo ZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJl Y3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91 bmQuCisrICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAt ZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsK KysKKytkYXNoWG1zdGRvdXQpCisrICAjIFRoaXMgY2FzZSBvbmx5IGV4aXN0cyB0byBzYXRpc2Z5 IGRlcGVuZC5tNC4gIEl0IGlzIG5ldmVyIGFjdHVhbGx5CisrICAjIHJ1biwgYXMgdGhpcyBtb2Rl IGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KKysgIGV4aXQgMQorKyAg OzsKKysKKyttYWtlZGVwZW5kKQorKyAgIiRAIiB8fCBleGl0ICQ/CisrICAjIFJlbW92ZSBhbnkg TGlidG9vbCBjYWxsCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hp bGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRv bmUKKysgICAgc2hpZnQKKysgIGZpCisrICAjIFggbWFrZWRlcGVuZAorKyAgc2hpZnQKKysgIGNs ZWFyZWQ9bm8KKysgIGZvciBhcmcgaW4gIiRAIjsgZG8KKysgICAgY2FzZSAkY2xlYXJlZCBpbgor KyAgICBubykKKysgICAgICBzZXQgIiI7IHNoaWZ0CisrICAgICAgY2xlYXJlZD15ZXMgOzsKKysg ICAgZXNhYworKyAgICBjYXNlICIkYXJnIiBpbgorKyAgICAtRCp8LUkqKQorKyAgICAgIHNldCBm bm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKysgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQg bWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUKKysgICAgIyB0aGUgb2JqZWN0 IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBwYXJzZSBpdCBhcyBhIHNvdXJjZSBmaWxl LgorKyAgICAtKnwkb2JqZWN0KQorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0IGZub3Jk ICIkQCIgIiRhcmciOyBzaGlmdCA7OworKyAgICBlc2FjCisrICBkb25lCisrICBvYmpfc3VmZml4 PSJgZWNobyAkb2JqZWN0IHwgc2VkICdzL14uKlwuLy4vJ2AiCisrICB0b3VjaCAiJHRtcGRlcGZp bGUiCisrICAke01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBk ZXBmaWxlIiAiJEAiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUi ID4gIiRkZXBmaWxlIgorKyAgc2VkICcxLDJkJyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKKysn IHwgXAorKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nl c3MgdGhpcyBpbnZvY2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28g c2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycg LWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisr ICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFrCisrICA7OworKworK2NwcCkK KysgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNv bXBpbGVyICptdXN0KgorKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRv IHN0ZG91dC4KKysgICIkQCIgfHwgZXhpdCAkPworKworKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8g TGlidG9vbC4KKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB3aGlsZSB0 ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCisrICAgICAgc2hpZnQKKysgICAgZG9uZQor KyAgICBzaGlmdAorKyAgZmkKKysKKysgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KKysgIElGUz0i ICIKKysgIGZvciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGFyZyBpbgorKyAgICAtbykKKysgICAg ICBzaGlmdAorKyAgICAgIDs7CisrICAgICRvYmplY3QpCisrICAgICAgc2hpZnQKKysgICAgICA7 OworKyAgICAqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgorKyAgICAgIHNoaWZ0ICMg Zm5vcmQKKysgICAgICBzaGlmdCAjICRhcmcKKysgICAgICA7OworKyAgICBlc2FjCisrICBkb25l CisrCisrICAiJEAiIC1FIHwKKysgICAgc2VkIC1uIC1lICcvXiMgWzAtOV1bMC05XSogIlwoW14i XSpcKSIuKi8gczo6IFwxIFxcOnAnIFwKKysgICAgICAgLWUgJy9eI2xpbmUgWzAtOV1bMC05XSog IlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKKysgICAgc2VkICckIHM6IFxcJDo6JyA+ICIk dG1wZGVwZmlsZSIKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIg PiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgIHNl ZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAiJGRl cGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK21zdmlzdWFsY3BwKQor KyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29t cGlsZXIgKm11c3QqCisrICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8g c3Rkb3V0LCByZWdhcmRsZXNzIG9mIC1vLAorKyAgIyBiZWNhdXNlIHdlIG11c3QgdXNlIC1vIHdo ZW4gcnVubmluZyBsaWJ0b29sLgorKyAgIiRAIiB8fCBleGl0ICQ/CisrICBJRlM9IiAiCisrICBm b3IgYXJnCisrICBkbworKyAgICBjYXNlICIkYXJnIiBpbgorKyAgICAiLUdtInwiL0dtInwiLUdp InwiL0dpInwiLVpJInwiL1pJIikKKysJc2V0IGZub3JkICIkQCIKKysJc2hpZnQKKysJc2hpZnQK KysJOzsKKysgICAgKikKKysJc2V0IGZub3JkICIkQCIgIiRhcmciCisrCXNoaWZ0CisrCXNoaWZ0 CisrCTs7CisrICAgIGVzYWMKKysgIGRvbmUKKysgICIkQCIgLUUgfAorKyAgc2VkIC1uICcvXiNs aW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjplY2hvICJgY3lncGF0aCAtdSBcXCJcMVxc ImAiOnAnIHwgc29ydCB8IHVuaXEgPiAiJHRtcGRlcGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUi CisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorKyAgLiAiJHRtcGRlcGZpbGUi IHwgc2VkICdzJSAlXFwgJWcnIHwgc2VkIC1uICcvXlwoLipcKSQvIHM6OglcMSBcXDpwJyA+PiAi JGRlcGZpbGUiCisrICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCisrICAuICIkdG1wZGVwZmlsZSIg fCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRl cGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK25vbmUpCisrICBleGVj ICIkQCIKKysgIDs7CisrCisrKikKKysgIGVjaG8gIlVua25vd24gZGVwbW9kZSAkZGVwbW9kZSIg MT4mMgorKyAgZXhpdCAxCisrICA7OworK2VzYWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIFZh cmlhYmxlczoKKysjIG1vZGU6IHNoZWxsLXNjcmlwdAorKyMgc2gtaW5kZW50YXRpb246IDIKKysj IGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUt c3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvaW5zdGFsbC1zaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxs LXNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDUxOSBAQAorKyMhL2Jpbi9zaAorKyMgaW5zdGFsbCAtIGluc3RhbGwg YSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCisrCisrc2NyaXB0dmVyc2lvbj0yMDA2LTEy LTI1LjAwCisrCisrIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0 cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCisrIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMv Y29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKKysjIGZvbGxvd2luZyBjb3B5cmlnaHQg YW5kIGxpY2Vuc2UuCisrIworKyMgQ29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQorKyMK KysjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhIGNvcHkKKysjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworKyMgZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUKKysjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorKyMgc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKysj IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 CisrIworKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKysjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKyMKKysjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrIyBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKKysjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKysjIFggQ09OU09SVElVTSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI RVIgSU4KKysjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KKysjIFRJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrIworKyMgRXhj ZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgdGhlIFggQ29uc29y dGl1bSBzaGFsbCBub3QKKysjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRv IHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQorKyMgaW5ncyBpbiB0aGlzIFNv ZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFggQ29u c29yLQorKyMgdGl1bS4KKysjCisrIworKyMgRlNGIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFyZSBp biB0aGUgcHVibGljIGRvbWFpbi4KKysjCisrIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwt c2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAorKyMgYG1ha2UnIGlt cGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20gaXQK KysjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCisrIworKyMgVGhpcyBzY3JpcHQgaXMgY29t cGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgorKyMg ZnJvbSBzY3JhdGNoLgorKworK25sPScKKysnCisrSUZTPSIgIiIJJG5sIgorKworKyMgc2V0IERP SVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAorKworKyMgRG9uJ3QgdXNlIDotIHNp bmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KKytkb2l0PSR7RE9J VFBST0ctfQorK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgorKyAgZG9pdF9leGVjPWV4ZWMKKytl bHNlCisrICBkb2l0X2V4ZWM9JGRvaXQKKytmaQorKworKyMgUHV0IGluIGFic29sdXRlIGZpbGUg bmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7CisrIyBvciB1c2UgZW52 aXJvbm1lbnQgdmFycy4KKysKKytjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9CisrY2htb2Rw cm9nPSR7Q0hNT0RQUk9HLWNobW9kfQorK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0KKytj bXBwcm9nPSR7Q01QUFJPRy1jbXB9CisrY3Bwcm9nPSR7Q1BQUk9HLWNwfQorK21rZGlycHJvZz0k e01LRElSUFJPRy1ta2Rpcn0KKyttdnByb2c9JHtNVlBST0ctbXZ9Cisrcm1wcm9nPSR7Uk1QUk9H LXJtfQorK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KKysKKytwb3NpeF9nbG9iPSc/Jwor K2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCisrICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8 IHsKKysgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4KKysgICAgICBwb3NpeF9nbG9i PQorKyAgICBlbHNlCisrICAgICAgcG9zaXhfZ2xvYj06CisrICAgIGZpCisrICB9CisrJworKwor K3Bvc2l4X21rZGlyPQorKworKyMgRGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgorK21v ZGU9MDc1NQorKworK2NoZ3JwY21kPQorK2NobW9kY21kPSRjaG1vZHByb2cKKytjaG93bmNtZD0K KyttdmNtZD0kbXZwcm9nCisrcm1jbWQ9IiRybXByb2cgLWYiCisrc3RyaXBjbWQ9CisrCisrc3Jj PQorK2RzdD0KKytkaXJfYXJnPQorK2RzdF9hcmc9CisrCisrY29weV9vbl9jaGFuZ2U9ZmFsc2UK Kytub190YXJnZXRfZGlyZWN0b3J5PQorKworK3VzYWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05d Li4uIFstVF0gU1JDRklMRSBEU1RGSUxFCisrICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJTEVT Li4uIERJUkVDVE9SWQorKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JDRklM RVMuLi4KKysgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KKysKKytJbiB0 aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgorK0luIHRoZSAybmQgYW5kIDNy ZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgorK0luIHRoZSA0dGgsIGNyZWF0ZSBE SVJFQ1RPUklFUy4KKysKKytPcHRpb25zOgorKyAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRoaXMg aGVscCBhbmQgZXhpdC4KKysgICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5k IGV4aXQuCisrCisrICAtYyAgICAgICAgICAgIChpZ25vcmVkKQorKyAgLUMgICAgICAgICAgICBp bnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNh dGlvbiB0aW1lKQorKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBv ZiBpbnN0YWxsaW5nIGZpbGVzLgorKyAgLWcgR1JPVVAgICAgICAkY2hncnBwcm9nIGluc3RhbGxl ZCBmaWxlcyB0byBHUk9VUC4KKysgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQg ZmlsZXMgdG8gTU9ERS4KKysgIC1vIFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmls ZXMgdG8gVVNFUi4KKysgIC1zICAgICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmlsZXMu CisrICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCisrICAtVCAgICAgICAg ICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgorKworK0Vudmly b25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKKysgIENIR1JQ UFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cK KysgIFJNUFJPRyBTVFJJUFBST0cKKysiCisrCisrd2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8KKysg IGNhc2UgJDEgaW4KKysgICAgLWMpIDs7CisrCisrICAgIC1DKSBjb3B5X29uX2NoYW5nZT10cnVl OzsKKysKKysgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7CisrCisrICAgIC1nKSBjaGdycGNtZD0iJGNo Z3JwcHJvZyAkMiIKKysJc2hpZnQ7OworKworKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4 aXQgJD87OworKworKyAgICAtbSkgbW9kZT0kMgorKwljYXNlICRtb2RlIGluCisrCSAgKicgJyog fCAqJwknKiB8IConCisrJyoJICB8IConKicqIHwgKic/JyogfCAqJ1snKikKKysJICAgIGVjaG8g IiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKKysJICAgIGV4aXQgMTs7CisrCWVzYWMKKysJ c2hpZnQ7OworKworKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCisrCXNoaWZ0OzsK KysKKysgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OworKworKyAgICAtdCkgZHN0X2FyZz0k MgorKwlzaGlmdDs7CisrCisrICAgIC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7OworKwor KyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7CisrCisr ICAgIC0tKQlzaGlmdAorKwlicmVhazs7CisrCisrICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBv cHRpb246ICQxIiA+JjIKKysJZXhpdCAxOzsKKysKKysgICAgKikgIGJyZWFrOzsKKysgIGVzYWMK KysgIHNoaWZ0CisrZG9uZQorKworK2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRpcl9h cmckZHN0X2FyZyI7IHRoZW4KKysgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFy Z3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgorKyAgIyBXaGVuIC10IGlzIHVzZWQs IHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4KKysgICMgT3RoZXJ3aXNlLCB0 aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAkQC4K KysgIGZvciBhcmcKKysgIGRvCisrICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgorKyAg ICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgorKyAgICAg IHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKKysgICAgICBzaGlmdCAjIGZub3JkCisrICAgIGZp CisrICAgIHNoaWZ0ICMgYXJnCisrICAgIGRzdF9hcmc9JGFyZworKyAgZG9uZQorK2ZpCisrCisr aWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCisr ICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4iID4mMgorKyAgICBleGl0IDEK KysgIGZpCisrICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1zaCAtZCcgd2l0aG91dCBhcmd1 bWVudC4KKysgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwgZGly ZWN0b3JpZXMuCisrICBleGl0IDAKKytmaQorKworK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhl bgorKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUKKysKKysgICMgU2V0IHVtYXNr IHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCisrICAj IEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8g dGVtcHMuCisrICBjYXNlICRtb2RlIGluCisrICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgor KyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OworKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7CisrCisr ICAgICpbMC03XSkKKysgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCisrCXVfcGx1 c19ydz0KKysgICAgICBlbHNlCisrCXVfcGx1c19ydz0nJSAyMDAnCisrICAgICAgZmkKKysgICAg ICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3YDs7 CisrICAgICopCisrICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorKwl1X3BsdXNf cnc9CisrICAgICAgZWxzZQorKwl1X3BsdXNfcnc9LHUrcncKKysgICAgICBmaQorKyAgICAgIGNw X3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7CisrICBlc2FjCisrZmkKKysKKytmb3Igc3JjCisrZG8K KysgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KKysgIGNhc2UgJHNyYyBpbgor KyAgICAtKikgc3JjPS4vJHNyYzs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0IC1uICIkZGlyX2Fy ZyI7IHRoZW4KKysgICAgZHN0PSRzcmMKKysgICAgZHN0ZGlyPSRkc3QKKysgICAgdGVzdCAtZCAi JGRzdGRpciIKKysgICAgZHN0ZGlyX3N0YXR1cz0kPworKyAgZWxzZQorKworKyAgICAjIFdhaXRp bmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRtcCIg Y29tbWFuZAorKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdo aWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCisrICAgICMgaWYgJHNyYyAoYW5kIHRodXMgJGRz dHRtcCkgY29udGFpbnMgJyonLgorKyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3QgISAt ZCAiJHNyYyI7IHRoZW4KKysgICAgICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4iID4m MgorKyAgICAgIGV4aXQgMQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0IC16ICIkZHN0X2FyZyI7 IHRoZW4KKysgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYyCisr ICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIGRzdD0kZHN0X2FyZworKyAgICAjIFByb3Rl Y3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCisrICAgIGNhc2UgJGRzdCBpbgorKyAgICAgIC0q KSBkc3Q9Li8kZHN0OzsKKysgICAgZXNhYworKworKyAgICAjIElmIGRlc3RpbmF0aW9uIGlzIGEg ZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCisrICAgICMg aWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCisrICAgIGlmIHRlc3QgLWQgIiRkc3Qi OyB0aGVuCisrICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVuCisr CWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4mMgorKwlleGl0IDEKKysgICAg ICBmaQorKyAgICAgIGRzdGRpcj0kZHN0CisrICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1lICIk c3JjImAKKysgICAgICBkc3RkaXJfc3RhdHVzPTAKKysgICAgZWxzZQorKyAgICAgICMgUHJlZmVy IGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFpbHMu CisrICAgICAgZHN0ZGlyPWAKKysJKGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAorKwll eHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJICAgICBY IiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpJCcg XHwgXAorKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrCWVj aG8gWCIkZHN0IiB8CisrCSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQv eworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cL1wpW14vXS4qL3sK KysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSAvXlhcKFwvXC9cKSQveworKwkJICAg cy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cKS4qL3sKKysJCSAgIHMvL1wxLwor KwkJICAgcQorKwkJIH0KKysJCSBzLy4qLy4vOyBxJworKyAgICAgIGAKKysKKysgICAgICB0ZXN0 IC1kICIkZHN0ZGlyIgorKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8KKysgICAgZmkKKysgIGZpCisr CisrICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCisrCisrICBpZiB0ZXN0ICRkc3RkaXJfc3Rh dHVzICE9IDA7IHRoZW4KKysgICAgY2FzZSAkcG9zaXhfbWtkaXIgaW4KKysgICAgICAnJykKKysJ IyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkg dGhlIHVtYXNrLgorKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdpbnN0YWxsJyBhcyBvZiAxOTk3 LTEwLTI4LgorKwl1bWFzaz1gdW1hc2tgCisrCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgorKwkg ICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3VtYXNr PSR1bWFzazs7CisrCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1h c2s9MjI7OworKworKwkgICpbMC03XSkKKysJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFzayAr IDIyIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKKysJICAg ICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCisrCSAgICBgOzsKKysJICAqKSBta2Rp cl91bWFzaz0kdW1hc2ssZ28tdzs7CisrCWVzYWMKKysKKysJIyBXaXRoIC1kLCBjcmVhdGUgdGhl IG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQgbW9kZS4KKysJIyBPdGhlcndp c2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgorKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4K KysJICBta2Rpcl9tb2RlPS1tJG1vZGUKKysJZWxzZQorKwkgIG1rZGlyX21vZGU9CisrCWZpCisr CisrCXBvc2l4X21rZGlyPWZhbHNlCisrCWNhc2UgJHVtYXNrIGluCisrCSAgKlsxMjM1NjddWzAt N11bMC03XSkKKysJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVz cyBvZiB1bWFzaywgd2hpY2gKKysJICAgICMgaXMgaW5jb21wYXRpYmxlIHdpdGggRnJlZUJTRCAn aW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCisrCSAgICA7OworKwkgICopCisrCSAg ICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAorKwkgICAgdHJhcCAncmV0PSQ/ OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcgMAor KworKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgorKwkJZXhlYyAkbWtkaXJwcm9nICRt a2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKKysJICAgIHRoZW4K KysJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKKysJCSAgICMgQ2hlY2sgZm9yIFBP U0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCisrCQkgICAjIEhQLVVYIDExLjIzIGFuZCBJ UklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgorKwkJICAgIyBvdGhlci13cml0ZWFi bGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCisrCQkgICAjIEZy ZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3RvcnkuCisr CQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCisrCQkgICBjYXNlICRsc19sZF90 bXBkaXIgaW4KKysJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKKysJCSAg ICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKKysJCSAgICAgKikgZmFsc2U7Owor KwkJICAgZXNhYyAmJgorKwkJICAgJG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAtLSAi JHRtcGRpciIgJiYgeworKwkJICAgICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGlyImAK KysJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgorKwkJICAg fQorKwkJIH0KKysJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06CisrCSAgICAgIGZpCisrCSAgICAg IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgorKwkgICAgZWxzZQorKwkgICAgICAjIFJlbW92 ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9ucy4K KysJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKKysJICAg IGZpCisrCSAgICB0cmFwICcnIDA7OworKwllc2FjOzsKKysgICAgZXNhYworKworKyAgICBpZgor KyAgICAgICRwb3NpeF9ta2RpciAmJiAoCisrCXVtYXNrICRta2Rpcl91bWFzayAmJgorKwkkZG9p dF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCisrICAgICAgKQor KyAgICB0aGVuIDoKKysgICAgZWxzZQorKworKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGljdWxv dXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgsCisrICAgICAgIyBvciBpdCBm YWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCisrICAg ICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZvciBy YWNlcyBhcyB3ZSBnby4KKysKKysgICAgICBjYXNlICRkc3RkaXIgaW4KKysJLyopIHByZWZpeD0n Lyc7OworKwktKikgcHJlZml4PScuLyc7OworKwkqKSAgcHJlZml4PScnOzsKKysgICAgICBlc2Fj CisrCisrICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIKKysKKysgICAgICBvSUZT PSRJRlMKKysgICAgICBJRlM9LworKyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgorKyAgICAgIHNl dCBmbm9yZCAkZHN0ZGlyCisrICAgICAgc2hpZnQKKysgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YK KysgICAgICBJRlM9JG9JRlMKKysKKysgICAgICBwcmVmaXhlcz0KKysKKysgICAgICBmb3IgZAor KyAgICAgIGRvCisrCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQorKworKwlwcmVmaXg9JHByZWZp eCRkCisrCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCisrCSAgcHJlZml4ZXM9CisrCWVsc2UK KysJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KKysJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sgJiYK KysJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIi KSAmJiBicmVhaworKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5p bmcgY29uY3VycmVudGx5LgorKwkgICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCisrCSAg ZWxzZQorKwkgICAgY2FzZSAkcHJlZml4IGluCisrCSAgICAgICpcJyopIHFwcmVmaXg9YGVjaG8g IiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKKysJICAgICAgKikgcXByZWZp eD0kcHJlZml4OzsKKysJICAgIGVzYWMKKysJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRxcHJl Zml4JyIKKysJICBmaQorKwlmaQorKwlwcmVmaXg9JHByZWZpeC8KKysgICAgICBkb25lCisrCisr ICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgorKwkjIERvbid0IGZhaWwgaWYgdHdv IGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCisrCSh1bWFzayAkbWtkaXJfdW1h c2sgJiYKKysJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8Cisr CSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCisrCW9ic29sZXRlX21rZGlyX3VzZWQ9dHJ1 ZQorKyAgICAgIGZpCisrICAgIGZpCisrICBmaQorKworKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmci OyB0aGVuCisrICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRk c3QiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQg IiRkc3QiOyB9ICYmCisrICAgIHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQk Y2hncnBjbWQiID0gZmFsc2UgfHwKKysgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0 ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCisrICBlbHNlCisrCisrICAgICMg TWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3Rvcnku CisrICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXworKyAgICBybXRtcD0kZHN0ZGlyL19ybS4k JF8KKysKKysgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRlbXAgZmlsZXMgYXQgZXhpdC4K KysgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkcmV0 JyAwCisrCisrICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUuCisrICAg ICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIp ICYmCisrCisrICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBwcmVz ZXJ2ZSBzZXR1aWQgYml0cy4KKysgICAgIworKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3 ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRvCisrICAgICMgaWdub3JlIGVy cm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQorKyAg ICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNv bW1hbmQuCisrICAgICMKKysgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93 bmNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0 ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQiIHx8 ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIkY2htb2Rj bWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKKysKKysgICAgIyBJ ZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxl LgorKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKKysgICAgICAgb2xkPWBMQ19BTEw9QyBscyAt ZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxM ICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKKysKKysgICAgICAgZXZhbCAiJGluaXRpYWxpemVf cG9zaXhfZ2xvYiIgJiYKKysgICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCisrICAgICAgIHNl dCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgorKyAgICAgICBzZXQgWCAkbmV3ICYmIG5l dz06JDI6JDQ6JDU6JDYgJiYKKysgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCisrCisrICAg ICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCisrICAgICAgICRjbXBwcm9nICIkZHN0IiAiJGRz dHRtcCIgPi9kZXYvbnVsbCAyPiYxCisrICAgIHRoZW4KKysgICAgICBybSAtZiAiJGRzdHRtcCIK KysgICAgZWxzZQorKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0 aW9uLgorKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9udWxs IHx8CisrCisrICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12IGNh bid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQorKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJoYXBz IGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMgbm90CisrICAgICAgIyBzdXBw b3J0IC1mLgorKyAgICAgIHsKKysJIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBm aWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgorKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNp bmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQorKwkjIHN5c3RlbXMgYW5kIHRoZSBk ZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVyCisrCSMgcmVhc29ucy4gIElu IHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldworKwkj IGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgorKwl7CisrCSAgdGVzdCAh IC1mICIkZHN0IiB8fAorKwkgICRkb2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwgfHwK KysJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYKKysJ ICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9CisrCSAgfSB8 fAorKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgorKwkg ICAgKGV4aXQgMSk7IGV4aXQgMQorKwkgIH0KKysJfSAmJgorKworKwkjIE5vdyByZW5hbWUgdGhl IGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCisrCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIg IiRkc3QiCisrICAgICAgfQorKyAgICBmaSB8fCBleGl0IDEKKysKKysgICAgdHJhcCAnJyAwCisr ICBmaQorK2RvbmUKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9vayAn d3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3Jp cHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgor KyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9saWJ0b29sLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbGlidG9vbC5t NAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9saWJ0b29sLm00CTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0 b29sLm00CTIwMDktMDUtMjMgMTA6MDE6NTUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDcz NjAgQEAKKysjIGxpYnRvb2wubTQgLSBDb25maWd1cmUgbGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lz dGVtLiAtKi1BdXRvY29uZi0qLQorKyMKKysjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAg ICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAg IFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYKKysjCisrIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3 aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKyttNF9kZWZpbmUoW19MVF9DT1BZSU5HXSwgW2RubAorKyMgICBDb3B5cmlnaHQg KEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUs CisrIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgorKyMK KysjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05VIExpYnRv b2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcworKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YKKysjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFz IHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNpbmcgR05V IExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBzYW1lIGRp c3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3Jh bS4KKysjCisrIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdp dGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKKysj IGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5o dG1sLCBvcgorKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuLAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxLCBVU0EuCisrXSkKKysKKysjIHNlcmlhbCA1NiBMVF9JTklUCisrCisr CisrIyBMVF9QUkVSRVEoVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ29tcGxh aW4gYW5kIGV4aXQgaWYgdGhpcyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZFUlNJT04u CisrbTRfZGVmdW4oW0xUX1BSRVJFUV0sCisrW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9k ZWZuKFtMVF9QQUNLQUdFX1ZFUlNJT05dKSwgWyQxXSksIC0xLAorKyAgICAgICBbbTRfZGVmYXVs dChbJDNdLAorKwkJICAgW200X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGlnaGVyIGlz IHJlcXVpcmVkXSwKKysJCSAgICAgICAgICAgICA2MyldKV0sCisrICAgICAgIFskMl0pXSkKKysK KysKKysjIF9MVF9DSEVDS19CVUlMRERJUgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDb21w bGFpbiBpZiB0aGUgYWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgdW51c3Vh bCBjaGFyYWN0ZXJzCisrbTRfZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCisrW2Nhc2UgYHB3 ZGAgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBkb2VzIG5v dCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKKytlc2FjCisrXSkKKysK KysKKysjIExUX0lOSVQoW09QVElPTlNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVG VU4oW0xUX0lOSVRdLAorK1tBQ19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5DTFVERVNf REVGQVVMVAorK0FDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10pZG5sCisrQUNfQkVGT1JFKFskMF0s IFtMVF9PVVRQVVRdKWRubAorK0FDX0JFRk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKKyttNF9y ZXF1aXJlKFtfTFRfQ0hFQ0tfQlVJTERESVJdKWRubAorKworK2RubCBBdXRvY29uZiBkb2Vzbid0 IGNhdGNoIHVuZXhwYW5kZWQgTFRfIG1hY3JvcyBieSBkZWZhdWx0OgorK200X3BhdHRlcm5fZm9y YmlkKFteXz9MVF9bQS1aX10rJF0pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExU X0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAorK2RubCBh Y2xvY2FsIGRvZXNuJ3QgcHVsbCBsdG9wdGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lv bi5tNAorK2RubCB1bmxlc3Mgd2UgcmVxdWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgorK0FDX1JF UVVJUkUoW0xUT1BUSU9OU19WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJ T05dKWRubAorK0FDX1JFUVVJUkUoW0xUVkVSU0lPTl9WRVJTSU9OXSlkbmwKKytBQ19SRVFVSVJF KFtMVE9CU09MRVRFX1ZFUlNJT05dKWRubAorK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0p ZG5sCisrCisrZG5sIFBhcnNlIE9QVElPTlMKKytfTFRfU0VUX09QVElPTlMoWyQwXSwgWyQxXSkK KysKKysjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVkCisr TElCVE9PTF9ERVBTPSIkbHRtYWluIgorKworKyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wu CisrTElCVE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCisrQUNfU1VCU1Qo TElCVE9PTClkbmwKKysKKytfTFRfU0VUVVAKKysKKysjIE9ubHkgZXhwYW5kIG9uY2U6CisrbTRf ZGVmaW5lKFtMVF9JTklUXSkKKytdKSMgTFRfSU5JVAorKworKyMgT2xkIG5hbWVzOgorK0FVX0FM SUFTKFtBQ19QUk9HX0xJQlRPT0xdLCBbTFRfSU5JVF0pCisrQVVfQUxJQVMoW0FNX1BST0dfTElC VE9PTF0sIFtMVF9JTklUXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6CisrZG5sIEFDX0RFRlVOKFtBQ19QUk9HX0xJQlRPT0xdLCBbXSkKKytkbmwgQUNfREVGVU4o W0FNX1BST0dfTElCVE9PTF0sIFtdKQorKworKworKyMgX0xUX0NDX0JBU0VOQU1FKENDKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1lLiAgU2tpcCBrbm93 biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jvc3MtcHJlZml4LgorK200X2RlZnVuKFtfTFRfQ0Nf QkFTRU5BTUVdLAorK1tmb3IgY2NfdGVtcCBpbiAkMSIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBp bgorKyAgICBjb21waWxlIHwgKltbXFwvXV1jb21waWxlIHwgY2NhY2hlIHwgKltbXFwvXV1jY2Fj aGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlmeSB8ICpbW1xcL11d cHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9u ZQorK2NjX2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAt ZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorK10pCisrCisrCisrIyBfTFRfRklMRVVUSUxTX0RFRkFV TFRTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBJdCBpcyBva2F5IHRvIHVzZSB0aGVz ZSBmaWxlIGNvbW1hbmRzIGFuZCBhc3N1bWUgdGhleSBoYXZlIGJlZW4gc2V0CisrIyBzZW5zaWJs eSBhZnRlciBgbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pJy4KKyttNF9kZWZ1 bihbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10sCisrWzogJHtDUD0iY3AgLWYifQorKzogJHtNVj0i bXYgLWYifQorKzogJHtSTT0icm0gLWYifQorK10pIyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisr CisrCisrIyBfTFRfU0VUVVAKKysjIC0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfU0VUVVBdLAor K1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FO T05JQ0FMX0JVSUxEXSlkbmwKKytfTFRfREVDTChbXSwgW2hvc3RfYWxpYXNdLCBbMF0sIFtUaGUg aG9zdCBzeXN0ZW1dKWRubAorK19MVF9ERUNMKFtdLCBbaG9zdF0sIFswXSlkbmwKKytfTFRfREVD TChbXSwgW2hvc3Rfb3NdLCBbMF0pZG5sCisrZG5sCisrX0xUX0RFQ0woW10sIFtidWlsZF9hbGlh c10sIFswXSwgW1RoZSBidWlsZCBzeXN0ZW1dKWRubAorK19MVF9ERUNMKFtdLCBbYnVpbGRdLCBb MF0pZG5sCisrX0xUX0RFQ0woW10sIFtidWlsZF9vc10sIFswXSlkbmwKKytkbmwKKytBQ19SRVFV SVJFKFtBQ19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKKytBQ19S RVFVSVJFKFtMVF9QQVRIX05NXSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0xOX1Nd KWRubAorK3Rlc3QgLXogIiRMTl9TIiAmJiBMTl9TPSJsbiAtcyIKKytfTFRfREVDTChbXSwgW0xO X1NdLCBbMV0sIFtXaGV0aGVyIHdlIG5lZWQgc29mdCBvciBoYXJkIGxpbmtzXSlkbmwKKytkbmwK KytBQ19SRVFVSVJFKFtMVF9DTURfTUFYX0xFTl0pZG5sCisrX0xUX0RFQ0woW29iamV4dF0sIFth Y19vYmpleHRdLCBbMF0sIFtPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIildKWRubAor K19MVF9ERUNMKFtdLCBbZXhlZXh0XSwgWzBdLCBbRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9y bWFsbHkgIiIpXSlkbmwKKytkbmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRT XSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorK200X3Jl cXVpcmUoW19MVF9DTURfUkVMT0FEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfTUFHSUNf TUVUSE9EXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKKyttNF9y ZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKKysKKytfTFRfQ09ORklHX0xJQlRP T0xfSU5JVChbCisrIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBv cHRpb25zIHdoaWNoIGFsbG93IG91cgorKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92 YWwgb2YgXCBlc2NhcGVzIElOSVQuCisraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIg OyB0aGVuCisrICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytmaQorK10pCisraWYgdGVzdCAtbiAi JHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Zp CisrCisrX0xUX0NIRUNLX09CSkRJUgorKworK200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJd KWRubAorK19MVF9QUk9HX0VDSE9fQkFDS1NMQVNICisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2Fp eDMqKQorKyAgIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVj dDIgcHJvZ3JhbS4gIEZvciBzb21lCisrICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNU X05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysgICMgdmFuaXNoIGlu IGEgcHVmZiBvZiBzbW9rZS4KKysgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0g WHNldDsgdGhlbgorKyAgICBDT0xMRUNUX05BTUVTPQorKyAgICBleHBvcnQgQ09MTEVDVF9OQU1F UworKyAgZmkKKysgIDs7CisrZXNhYworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBz IHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKysjIG1ldGFjaGFyYWN0 ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgor K3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xcXDEvZycKKysKKysjIFNhbWUgYXMg YWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytkb3VibGVfcXVv dGVfc3Vic3Q9J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24g dG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorKyMg ZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KKytkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9c XFxcXFxcXFxcXCQvXFxcXFxcJC9nJworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBl eHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCisrZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24g dG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19n bG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKysKKysjIEdsb2JhbCB2YXJpYWJsZXM6Cisrb2ZpbGU9 bGlidG9vbAorK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyBy ZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisr IyB3aGljaCBuZWVkcyAnLmxpYicpLgorK2xpYmV4dD1hCisrCisrd2l0aF9nbnVfbGQ9IiRsdF9j dl9wcm9nX2dudV9sZCIKKysKKytvbGRfQ0M9IiRDQyIKKytvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgor KworKyMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCisrdGVzdCAteiAi JENDIiAmJiBDQz1jYworK3Rlc3QgLXogIiRMVENDIiAmJiBMVENDPSRDQworK3Rlc3QgLXogIiRM VENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUworK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKKyt0 ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bworKworK19MVF9DQ19CQVNFTkFNRShb JGNvbXBpbGVyXSkKKysKKysjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRo ZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKKyt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJ Q19DTUQ9ZmlsZQorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmlsZV9tYWdpYyop CisrICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisrICAg IF9MVF9QQVRIX01BR0lDCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrIyBVc2UgQyBmb3IgdGhl IGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKKytMVF9TVVBQT1JU RURfVEFHKFtDQ10pCisrX0xUX0xBTkdfQ19DT05GSUcKKytfTFRfTEFOR19ERUZBVUxUX0NPTkZJ RworK19MVF9DT05GSUdfQ09NTUFORFMKKytdKSMgX0xUX1NFVFVQCisrCisrCisrIyBfTFRfUFJP R19MVE1BSU4KKysjIC0tLS0tLS0tLS0tLS0tLQorKyMgTm90ZSB0aGF0IHRoaXMgY29kZSBpcyBj YWxsZWQgYm90aCBmcm9tIGBjb25maWd1cmUnLCBhbmQgYGNvbmZpZy5zdGF0dXMnCisrIyBub3cg dGhhdCB3ZSB1c2UgQUNfQ09ORklHX0NPTU1BTkRTIHRvIGdlbmVyYXRlIGxpYnRvb2wuICBOb3Rh Ymx5LAorKyMgYGNvbmZpZy5zdGF0dXMnIGhhcyBubyB2YWx1ZSBmb3IgYWNfYXV4X2RpciB1bmxl c3Mgd2UgYXJlIHVzaW5nIEF1dG9tYWtlLAorKyMgc28gd2UgcGFzcyBhIGNvcHkgYWxvbmcgdG8g bWFrZSBzdXJlIGl0IGhhcyBhIHNlbnNpYmxlIHZhbHVlIGFueXdheS4KKyttNF9kZWZ1bihbX0xU X1BST0dfTFRNQUlOXSwKKytbbTRfaWZkZWYoW0FDX1JFUVVJUkVfQVVYX0ZJTEVdLCBbQUNfUkVR VUlSRV9BVVhfRklMRShbbHRtYWluLnNoXSldKWRubAorK19MVF9DT05GSUdfTElCVE9PTF9JTklU KFthY19hdXhfZGlyPSckYWNfYXV4X2RpciddKQorK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWlu LnNoIgorK10pIyBfTFRfUFJPR19MVE1BSU4KKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgQWNjdW11bGF0ZSBjb2RlIGZvciBjcmVhdGluZyBs aWJ0b29sLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK KysKKysjIFNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIGEgZnVsbCBsaWJ0b29sIHNjcmlwdCBpbmNs dWRpbmcgYWRkaXRpb25hbAorKyMgdGFncywgd2UgYWNjdW11bGF0ZSB0aGUgY2h1bmtzIG9mIGNv ZGUgdG8gc2VuZCB0byBBQ19DT05GSUdfQ09NTUFORFMKKysjIGluIG1hY3JvcyBhbmQgdGhlbiBt YWtlIGEgc2luZ2xlIGNhbGwgYXQgdGhlIGVuZCB1c2luZyB0aGUgYGxpYnRvb2wnCisrIyBsYWJl bC4KKysKKysKKysjIF9MVF9DT05GSUdfTElCVE9PTF9JTklUKFtJTklULUNPTU1BTkRTXSkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFJlZ2lzdGVyIElO SVQtQ09NTUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KKytt NF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF9JTklUXSwKKytbbTRfaWZ2YWwoWyQxXSwKKysg ICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdLAorKyAgICAgICAg ICAgICAgICAgICAgIFskMQorK10pXSldKQorKworKyMgSW5pdGlhbGl6ZS4KKyttNF9kZWZpbmUo W19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSkKKysKKysKKysjIF9MVF9DT05GSUdfTElCVE9PTChb Q09NTUFORFNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBSZWdpc3Rl ciBDT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklHX0NPTU1BTkRTIGxhdGVyLgorK200 X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MXSwKKytbbTRfaWZ2YWwoWyQxXSwKKysgICAgICAg ICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwKKysgICAgICAgICAg ICAgICAgICAgICBbJDEKKytdKV0pXSkKKysKKysjIEluaXRpYWxpemUuCisrbTRfZGVmaW5lKFtf TFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdKQorKworKworKyMgX0xUX0NPTkZJR19TQVZFX0NP TU1BTkRTKFtDT01NQU5EU10sIFtJTklUX0NPTU1BTkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DT05G SUdfU0FWRV9DT01NQU5EU10sCisrW19MVF9DT05GSUdfTElCVE9PTChbJDFdKQorK19MVF9DT05G SUdfTElCVE9PTF9JTklUKFskMl0pCisrXSkKKysKKysKKysjIF9MVF9GT1JNQVRfQ09NTUVOVChb Q09NTUVOVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQWRkIGxlYWRp bmcgY29tbWVudCBtYXJrcyB0byB0aGUgc3RhcnQgb2YgZWFjaCBsaW5lLCBhbmQgYSB0cmFpbGlu ZworKyMgZnVsbC1zdG9wIHRvIHRoZSB3aG9sZSBjb21tZW50IGlmIG9uZSBpcyBub3QgcHJlc2Vu dCBhbHJlYWR5LgorK200X2RlZmluZShbX0xUX0ZPUk1BVF9DT01NRU5UXSwKKytbbTRfaWZ2YWwo WyQxXSwgWworK200X2JwYXRzdWJzdChbbTRfYnBhdHN1YnN0KFskMV0sIFteICpdLCBbIyBdKV0s CisrICAgICAgICAgICAgICBbWydgJFxdXSwgW1xcXCZdKV1tNF9ibWF0Y2goWyQxXSwgW1shPy5d JF0sIFtdLCBbLl0pCisrKV0pCisrCisrCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMjCisrIyMgRklYTUU6IEVsaW1pbmF0ZSBWQVJOQU1FICMjCisrIyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICMjCisrCisrCisrIyBfTFRfREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZB TFVFLCBbREVTQ1JJUFRJT05dLCBbSVMtVEFHR0VEP10pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDT05G SUdOQU1FIGlzIHRoZSBuYW1lIGdpdmVuIHRvIHRoZSB2YWx1ZSBpbiB0aGUgbGlidG9vbCBzY3Jp cHQuCisrIyBWQVJOQU1FIGlzIHRoZSAoYmFzZSkgbmFtZSB1c2VkIGluIHRoZSBjb25maWd1cmUg c2NyaXB0LgorKyMgVkFMVUUgbWF5IGJlIDAsIDEgb3IgMiBmb3IgYSBjb21wdXRlZCBxdW90ZSBl c2NhcGVkIHZhbHVlIGJhc2VkIG9uCisrIyBWQVJOQU1FLiAgQW55IG90aGVyIHZhbHVlIHdpbGwg YmUgdXNlZCBkaXJlY3RseS4KKyttNF9kZWZpbmUoW19MVF9ERUNMXSwKKytbbHRfaWZfYXBwZW5k X3VuaXEoW2x0X2RlY2xfdmFybmFtZXNdLCBbJDJdLCBbLCBdLAorKyAgICBbbHRfZGljdF9hZGRf c3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbbGlidG9vbF9uYW1lXSwKKysJW200X2lmdmFs KFskMV0sIFskMV0sIFskMl0pXSkKKysgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2Rp Y3RdLCBbJDJdLCBbdmFsdWVdLCBbJDNdKQorKyAgICBtNF9pZnZhbChbJDRdLAorKwlbbHRfZGlj dF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbZGVzY3JpcHRpb25dLCBbJDRdKV0p CisrICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwKKysJW3RhZ2dl ZD9dLCBbbTRfaWZ2YWwoWyQ1XSwgW3llc10sIFtub10pXSldKQorK10pCisrCisrCisrIyBfTFRf VEFHREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyttNF9kZWZpbmUoW19MVF9UQUdERUNMXSwgW19MVF9ERUNMKFskMV0sIFskMl0sIFskM10sIFsk NF0sIFt5ZXNdKV0pCisrCisrCisrIyBsdF9kZWNsX3RhZ192YXJuYW1lcyhbU0VQQVJBVE9SXSwg W1ZBUk5BTUUxLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK200X2RlZmluZShbbHRfZGVjbF90YWdfdmFybmFtZXNdLAorK1tfbHRfZGVj bF9maWx0ZXIoW3RhZ2dlZD9dLCBbeWVzXSwgJEApXSkKKysKKysKKysjIF9sdF9kZWNsX2ZpbHRl cihTVUJLRVksIFZBTFVFLCBbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi5dKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVm aW5lKFtfbHRfZGVjbF9maWx0ZXJdLAorK1ttNF9jYXNlKFskI10sCisrICBbMF0sIFttNF9mYXRh bChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkI10pXSwKKysgIFsxXSwgW200X2ZhdGFsKFskMDog dG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKKysgIFsyXSwgW2x0X2RpY3RfZmlsdGVyKFts dF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbXSwgbHRfZGVjbF92YXJuYW1lcyldLAorKyAgWzNd LCBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFskM10sIGx0X2Rl Y2xfdmFybmFtZXMpXSwKKysgIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgJEApXSlb XWRubAorK10pCisrCisrCisrIyBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBb VkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfcXVvdGVfdmFybmFtZXNdLAorK1tfbHRf ZGVjbF9maWx0ZXIoW3ZhbHVlXSwgWzFdLCAkQCldKQorKworKworKyMgbHRfZGVjbF9kcXVvdGVf dmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xf ZHF1b3RlX3Zhcm5hbWVzXSwKKytbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsyXSwgJEApXSkK KysKKysKKysjIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEu Li5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrbTRfZGVmaW5lKFtsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCisrW200X2Fzc2VydChb JCMgPD0gMl0pZG5sCisrXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisr ICAgIG00X2lmdmFsKFskMl0sIFtbJDJdXSwgW200X2RxdW90ZShsdF9kZWNsX3RhZ192YXJuYW1l cyldKSwKKysgICAgbTRfc3BsaXQobTRfbm9ybWFsaXplKG00X3F1b3RlKF9MVF9UQUdTKSksIFsg XSkpXSkKKyttNF9kZWZpbmUoW19sdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCisrW200X2lmdmFs KFskM10sIFtsdF9jb21iaW5lKFskMV0sIFskMl0sIFtfXSwgJDMpXSldKQorKworKworKyMgbHRf ZGVjbF9hbGxfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0 X2RlY2xfYWxsX3Zhcm5hbWVzXSwKKytbXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ss IF1dKSksCisrICAgICBtNF9pZihbJDJdLCBbXSwKKysJICAgbTRfcXVvdGUobHRfZGVjbF92YXJu YW1lcyksCisrCW00X3F1b3RlKG00X3NoaWZ0KCRAKSkpKVtdZG5sCisrXSkKKyttNF9kZWZpbmUo W19sdF9kZWNsX2FsbF92YXJuYW1lc10sCisrW2x0X2pvaW4oJEAsIGx0X2RlY2xfdmFybmFtZXNf dGFnZ2VkKFskMV0sCisrCQkJbHRfZGVjbF90YWdfdmFybmFtZXMoW1ssIF1dLCBtNF9zaGlmdCgk QCkpKSlkbmwKKytdKQorKworKworKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShbVkFSTkFN RV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFF1b3RlIGEg dmFyaWFibGUgdmFsdWUsIGFuZCBmb3J3YXJkIGl0IHRvIGBjb25maWcuc3RhdHVzJyBzbyB0aGF0 IGl0cworKyMgZGVjbGFyYXRpb24gdGhlcmUgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGlu IGBjb25maWd1cmUnLiAgVkFSTkFNRQorKyMgbXVzdCBoYXZlIGEgc2luZ2xlIHF1b3RlIGRlbGlt aXRlZCB2YWx1ZSBmb3IgdGhpcyB0byB3b3JrLgorK200X2RlZmluZShbX0xUX0NPTkZJR19TVEFU VVNfREVDTEFSRV0sCisrWyQxPSdgJEVDSE8gIlgkXVskMSIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJ10pCisrCisrCisrIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJB VElPTlMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgV2UgZGVsaW1pdCBs aWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMgd2l0aCBzaW5nbGUgcXVvdGVzLCBzbyB3aGVuCisrIyB3 ZSB3cml0ZSB0aGVtIHRvIGNvbmZpZy5zdGF0dXMsIHdlIGhhdmUgdG8gYmUgc3VyZSB0byBxdW90 ZSBhbGwKKysjIGVtYmVkZGVkIHNpbmdsZSBxdW90ZXMgcHJvcGVybHkuICBJbiBjb25maWd1cmUs IHRoaXMgbWFjcm8gZXhwYW5kcworKyMgZWFjaCB2YXJpYWJsZSBkZWNsYXJlZCB3aXRoIF9MVF9E RUNMIChhbmQgX0xUX1RBR0RFQ0wpIGludG86CisrIworKyMgICAgPHZhcj49J2AkRUNITyAiWCQ8 dmFyPiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK200X2RlZnVu KFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFy XSwgbTRfcXVvdGUobHRfZGVjbF9hbGxfdmFybmFtZXMpLAorKyAgICBbbTRfbihbX0xUX0NPTkZJ R19TVEFUVVNfREVDTEFSRShfbHRfdmFyKV0pXSldKQorKworKworKyMgX0xUX0xJQlRPT0xfVEFH UworKyMgLS0tLS0tLS0tLS0tLS0tLQorKyMgT3V0cHV0IGNvbW1lbnQgYW5kIGxpc3Qgb2YgdGFn cyBzdXBwb3J0ZWQgYnkgdGhlIHNjcmlwdAorK200X2RlZnVuKFtfTFRfTElCVE9PTF9UQUdTXSwK KytbX0xUX0ZPUk1BVF9DT01NRU5UKFtUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0 aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHRdKWRubAorK2F2YWlsYWJsZV90YWdzPSJfTFRf VEFHUyJkbmwKKytdKQorKworKworKyMgX0xUX0xJQlRPT0xfREVDTEFSRShWQVJOQU1FLCBbVEFH XSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeHRyYWN0IHRo ZSBkaWN0aW9uYXJ5IHZhbHVlcyBmb3IgVkFSTkFNRSAob3B0aW9uYWxseSB3aXRoIFRBRykgYW5k CisrIyBleHBhbmQgdG8gYSBjb21tZW50ZWQgc2hlbGwgdmFyaWFibGUgc2V0dGluZzoKKysjCisr IyAgICAjIFNvbWUgY29tbWVudCBhYm91dCB3aGF0IFZBUiBpcyBmb3IuCisrIyAgICB2aXNpYmxl X25hbWU9JGx0X2ludGVybmFsX25hbWUKKyttNF9kZWZpbmUoW19MVF9MSUJUT09MX0RFQ0xBUkVd LAorK1tfTFRfRk9STUFUX0NPTU1FTlQobTRfcXVvdGUobHRfZGljdF9mZXRjaChbbHRfZGVjbF9k aWN0XSwgWyQxXSwKKysJCQkJCSAgIFtkZXNjcmlwdGlvbl0pKSlbXWRubAorK200X3B1c2hkZWYo W19saWJ0b29sX25hbWVdLAorKyAgICBtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2Rp Y3RdLCBbJDFdLCBbbGlidG9vbF9uYW1lXSkpKVtdZG5sCisrbTRfY2FzZShtNF9xdW90ZShsdF9k aWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbdmFsdWVdKSksCisrICAgIFswXSwgW19s aWJ0b29sX25hbWU9WyRdJDFdLAorKyAgICBbMV0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwK KysgICAgWzJdLCBbX2xpYnRvb2xfbmFtZT0kbHRfW10kMV0sCisrICAgIFtfbGlidG9vbF9uYW1l PWx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pXSlbXWRubAorK200 X2lmdmFsKFskMl0sIFtfJDJdKVtdbTRfcG9wZGVmKFtfbGlidG9vbF9uYW1lXSlbXWRubAorK10p CisrCisrCisrIyBfTFRfTElCVE9PTF9DT05GSUdfVkFSUworKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIFByb2R1Y2UgY29tbWVudGVkIGRlY2xhcmF0aW9ucyBvZiBub24tdGFnZ2VkIGxp YnRvb2wgY29uZmlnIHZhcmlhYmxlcworKyMgc3VpdGFibGUgZm9yIGluc2VydGlvbiBpbiB0aGUg TElCVE9PTCBDT05GSUcgc2VjdGlvbiBvZiB0aGUgYGxpYnRvb2wnCisrIyBzY3JpcHQuICBUYWdn ZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIChldmVuIGZvciB0aGUgTElCVE9PTCBDT05GSUcK KysjIHNlY3Rpb24pIGFyZSBwcm9kdWNlZCBieSBfTFRfTElCVE9PTF9UQUdfVkFSUy4KKyttNF9k ZWZ1bihbX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlNdLAorK1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwK KysgICAgbTRfcXVvdGUoX2x0X2RlY2xfZmlsdGVyKFt0YWdnZWQ/XSwgW25vXSwgW10sIGx0X2Rl Y2xfdmFybmFtZXMpKSwKKysgICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3Zhcild KV0pXSkKKysKKysKKysjIF9MVF9MSUJUT09MX1RBR19WQVJTKFRBRykKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9MSUJUT09MX1RBR19WQVJTXSwKKytbbTRf Zm9yZWFjaChbX2x0X3Zhcl0sIG00X3F1b3RlKGx0X2RlY2xfdGFnX3Zhcm5hbWVzKSwKKysgICAg W200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3ZhciwgWyQxXSldKV0pXSkKKysKKysKKysj IF9MVF9UQUdWQVIoVkFSTkFNRSwgW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfTFRfVEFHVkFSXSwgW200X2lmdmFsKFskMl0sIFskMV8k Ml0sIFskMV0pXSkKKysKKysKKysjIF9MVF9DT05GSUdfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIFNlbmQgYWNjdW11bGF0ZWQgb3V0cHV0IHRvICRDT05GSUdfU1RBVFVTLiAg VGhhbmtzIHRvIHRoZSBsaXN0cyBvZgorKyMgdmFyaWFibGVzIGZvciBzaW5nbGUgYW5kIGRvdWJs ZSBxdW90ZSBlc2NhcGluZyB3ZSBzYXZlZCBmcm9tIGNhbGxzCisrIyB0byBfTFRfREVDTCwgd2Ug Y2FuIHB1dCBxdW90ZSBlc2NhcGVkIHZhcmlhYmxlcyBkZWNsYXJhdGlvbnMKKysjIGludG8gYGNv bmZpZy5zdGF0dXMnLCBhbmQgdGhlbiB0aGUgc2hlbGwgY29kZSB0byBxdW90ZSBlc2NhcGUgdGhl bSBpbgorKyMgZm9yIGxvb3BzIGluIGBjb25maWcuc3RhdHVzJy4gIEZpbmFsbHksIGFueSBhZGRp dGlvbmFsIGNvZGUgYWNjdW11bGF0ZWQKKysjIGZyb20gY2FsbHMgdG8gX0xUX0NPTkZJR19MSUJU T09MX0lOSVQgaXMgZXhwYW5kZWQuCisrbTRfZGVmdW4oW19MVF9DT05GSUdfQ09NTUFORFNdLAor K1tBQ19QUk9WSURFX0lGRUxTRShbTFRfT1VUUFVUXSwKKysJZG5sIElmIHRoZSBsaWJ0b29sIGdl bmVyYXRpb24gY29kZSBoYXMgYmVlbiBwbGFjZWQgaW4gJENPTkZJR19MVCwKKysJZG5sIGluc3Rl YWQgb2YgZHVwbGljYXRpbmcgaXQgYWxsIG92ZXIgYWdhaW4gaW50byBjb25maWcuc3RhdHVzLAor KwlkbmwgdGhlbiB3ZSB3aWxsIGhhdmUgY29uZmlnLnN0YXR1cyBydW4gJENPTkZJR19MVCBsYXRl ciwgc28gaXQKKysJZG5sIG5lZWRzIHRvIGtub3cgd2hhdCBuYW1lIGlzIHN0b3JlZCB0aGVyZToK KysgICAgICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xpYnRvb2xdLAorKyAgICAgICAgICAgIFsk U0hFTEwgJENPTkZJR19MVCB8fCBBU19FWElUKDEpXSwgW0NPTkZJR19MVD0nJENPTkZJR19MVCdd KV0sCisrICAgIGRubCBJZiB0aGUgbGlidG9vbCBnZW5lcmF0aW9uIGNvZGUgaXMgZGVzdGluZWQg Zm9yIGNvbmZpZy5zdGF0dXMsCisrICAgIGRubCBleHBhbmQgdGhlIGFjY3VtdWxhdGVkIGNvbW1h bmRzIGFuZCBpbml0IGNvZGUgbm93OgorKyAgICBbQUNfQ09ORklHX0NPTU1BTkRTKFtsaWJ0b29s XSwKKysgICAgICAgIFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLCBbX0xUX09VVFBVVF9M SUJUT09MX0NPTU1BTkRTX0lOSVRdKV0pCisrXSkjX0xUX0NPTkZJR19DT01NQU5EUworKworKwor KyMgSW5pdGlhbGl6ZS4KKyttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19J TklUXSwKKytbCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUg dGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0 IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3NlZF9xdW90ZV9z dWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKKytkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVv dGVfc3Vic3QnCisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9JyRkZWxheV92YXJpYWJsZV9zdWJzdCcK KytfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKKytMVENDPSckTFRDQycKKytMVENGTEFH Uz0nJExUQ0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGlsZXJfREVGQVVMVCcKKysKKysjIFF1b3Rl IGV2YWxlZCBzdHJpbmdzLgorK2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAor K11dLCBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKTsgZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwk RUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisrICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKKysg ICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIg fCBcXFwkWHNlZCAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAg ICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxc XFxcIiIKKysgICAgICA7OworKyAgICBlc2FjCisrZG9uZQorKworKyMgRG91YmxlLXF1b3RlIGRv dWJsZS1ldmFsZWQgc3RyaW5ncy4KKytmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtb IFwKKytdXSwgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMpOyBkbworKyAgICBjYXNlIFxgZXZhbCBc XFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKysgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0q KQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZh clxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxc JHNlZF9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxg XFxcXFxcIiIKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxc XCJcXFwkXCR2YXJcXFxcXFwiIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytkb25lCisrCisrIyBG aXgtdXAgZmFsbGJhY2sgZWNobyBpZiBpdCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGlu ZyBydWxlcy4KKytjYXNlIFwkbHRfRUNITyBpbgorKyonXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8i JylkbmwgIgorKyAgbHRfRUNITz1cYFwkRUNITyAiWFwkbHRfRUNITyIgfCBcJFhzZWQgLWUgJ3Mv XFxcXFxcXFxcXFxcXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iXFskXS9cWyRdMCAtLWZhbGxiYWNr LWVjaG8iLydcYAorKyAgOzsKKytlc2FjCisrCisrX0xUX09VVFBVVF9MSUJUT09MX0lOSVQKKytd KQorKworKworKyMgTFRfT1VUUFVUCisrIyAtLS0tLS0tLS0KKysjIFRoaXMgbWFjcm8gYWxsb3dz IGVhcmx5IGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2NyaXB0IChiZWZvcmUKKysjIEFDX09V VFBVVCBpcyBjYWxsZWQpLCBpbmNhc2UgaXQgaXMgdXNlZCBpbiBjb25maWd1cmUgZm9yIGNvbXBp bGF0aW9uCisrIyB0ZXN0cy4KKytBQ19ERUZVTihbTFRfT1VUUFVUXSwKKytbOiAke0NPTkZJR19M VD0uL2NvbmZpZy5sdH0KKytBQ19NU0dfTk9USUNFKFtjcmVhdGluZyAkQ09ORklHX0xUXSkKKytj YXQgPiIkQ09ORklHX0xUIiA8PF9MVEVPRgorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5ICRh c19tZS4KKysjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0 aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgorKworK2x0X2NsX3NpbGVudD1mYWxzZQorK1NIRUxM PVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrX0xURU9GCisrCisrY2F0ID4+IiRDT05GSUdfTFQi IDw8XF9MVEVPRgorK0FTX1NIRUxMX1NBTklUSVpFCisrX0FTX1BSRVBBUkUKKysKKytleGVjIEFT X01FU1NBR0VfRkQ+JjEKKytleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCisrewor KyAgZWNobworKyAgQVNfQk9YKFtSdW5uaW5nICRhc19tZS5dKQorK30gPiZBU19NRVNTQUdFX0xP R19GRAorKworK2x0X2NsX2hlbHA9IlwKKytcYCRhc19tZScgY3JlYXRlcyBhIGxvY2FsIGxpYnRv b2wgc3R1YiBmcm9tIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sCisrZm9yIHVzZSBpbiBmdXJ0 aGVyIGNvbmZpZ3VyZSB0aW1lIHRlc3RzIGJlZm9yZSB0aGUgcmVhbCBsaWJ0b29sIGlzCisrZ2Vu ZXJhdGVkLgorKworK1VzYWdlOiAkWzBdIFtbT1BUSU9OU11dCisrCisrICAtaCwgLS1oZWxwICAg ICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKysgIC1WLCAtLXZlcnNpb24gICBwcmludCB2 ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisrICAtcSwgLS1xdWlldCAgICAgZG8gbm90IHByaW50 IHByb2dyZXNzIG1lc3NhZ2VzCisrICAtZCwgLS1kZWJ1ZyAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBv cmFyeSBmaWxlcworKworK1JlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4iCisr CisrbHRfY2xfdmVyc2lvbj0iXAorK200X2lmc2V0KFtBQ19QQUNLQUdFX05BTUVdLCBbQUNfUEFD S0FHRV9OQU1FIF0pY29uZmlnLmx0W11kbmwKKyttNF9pZnNldChbQUNfUEFDS0FHRV9WRVJTSU9O XSwgWyBBQ19QQUNLQUdFX1ZFUlNJT05dKQorK2NvbmZpZ3VyZWQgYnkgJFswXSwgZ2VuZXJhdGVk IGJ5IG00X1BBQ0tBR0VfU1RSSU5HLgorKworK0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKytUaGlzIGNvbmZpZy5sdCBzY3JpcHQgaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVubGltaXRlZCBwZXJt aXNpb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKKysKKyt3aGlsZSB0ZXN0 ICRbI10gIT0gMAorK2RvCisrICBjYXNlICRbMV0gaW4KKysgICAgLS12ZXJzaW9uIHwgLS12KiB8 IC1WICkKKysgICAgICBlY2hvICIkbHRfY2xfdmVyc2lvbiI7IGV4aXQgMCA7OworKyAgICAtLWhl bHAgfCAtLWgqIHwgLWggKQorKyAgICAgIGVjaG8gIiRsdF9jbF9oZWxwIjsgZXhpdCAwIDs7Cisr ICAgIC0tZGVidWcgfCAtLWQqIHwgLWQgKQorKyAgICAgIGRlYnVnPTogOzsKKysgICAgLS1xdWll dCB8IC0tcSogfCAtLXNpbGVudCB8IC0tcyogfCAtcSApCisrICAgICAgbHRfY2xfc2lsZW50PTog OzsKKysKKysgICAgLSopIEFDX01TR19FUlJPUihbdW5yZWNvZ25pemVkIG9wdGlvbjogJFsxXQor K1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7OworKworKyAgICAq KSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBhcmd1bWVudDogJFsxXQorK1RyeSBcYCRbMF0g LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7OworKyAgZXNhYworKyAgc2hpZnQKKytk b25lCisrCisraWYgJGx0X2NsX3NpbGVudDsgdGhlbgorKyAgZXhlYyBBU19NRVNTQUdFX0ZEPi9k ZXYvbnVsbAorK2ZpCisrX0xURU9GCisrCisrY2F0ID4+IiRDT05GSUdfTFQiIDw8X0xURU9GCisr X0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVQKKytfTFRFT0YKKysKKytjYXQgPj4iJENP TkZJR19MVCIgPDxcX0xURU9GCisrQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJG9maWxlXSkKKytf TFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFMKKytBU19FWElUKDApCisrX0xURU9GCisrY2htb2Qg K3ggIiRDT05GSUdfTFQiCisrCisrIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9n LCBidXQgY29uZmlnLmx0IGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwKKysjIGFwcGVuZGluZyB0 byBjb25maWcubG9nLCB3aGljaCBmYWlscyBvbiBET1MsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwg a2VwdAorKyMgb3BlbiBieSBjb25maWd1cmUuICBIZXJlIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYv bnVsbCwgZWZmZWN0aXZlbHkgY2xvc2luZworKyMgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHBy b3Blcmx5IChyZSlvcGVuZWQgYW5kIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5sdC4KKytpZiB0ZXN0 ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KKysgIGx0X2NsX3N1Y2Nlc3M9OgorKyAgdGVzdCAi JHNpbGVudCIgPSB5ZXMgJiYKKysgICAgbHRfY29uZmlnX2x0X2FyZ3M9IiRsdF9jb25maWdfbHRf YXJncyAtLXF1aWV0IgorKyAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2L251bGwKKysgICRT SEVMTCAiJENPTkZJR19MVCIgJGx0X2NvbmZpZ19sdF9hcmdzIHx8IGx0X2NsX3N1Y2Nlc3M9ZmFs c2UKKysgIGV4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKKysgICRsdF9jbF9zdWNj ZXNzIHx8IEFTX0VYSVQoMSkKKytmaQorK10pIyBMVF9PVVRQVVQKKysKKysKKysjIF9MVF9DT05G SUcoVEFHKQorKyMgLS0tLS0tLS0tLS0tLS0tCisrIyBJZiBUQUcgaXMgdGhlIGJ1aWx0LWluIHRh ZywgY3JlYXRlIGFuIGluaXRpYWwgbGlidG9vbCBzY3JpcHQgd2l0aCBhCisrIyBkZWZhdWx0IGNv bmZpZ3VyYXRpb24gZnJvbSB0aGUgdW50YWdnZWQgY29uZmlnIHZhcnMuICBPdGhlcndpc2UgYWRk IGNvZGUKKysjIHRvIGNvbmZpZy5zdGF0dXMgZm9yIGFwcGVuZGluZyB0aGUgY29uZmlndXJhdGlv biBuYW1lZCBieSBUQUcgZnJvbSB0aGUKKysjIG1hdGNoaW5nIHRhZ2dlZCBjb25maWcgdmFycy4K KyttNF9kZWZ1bihbX0xUX0NPTkZJR10sCisrW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVG QVVMVFNdKWRubAorK19MVF9DT05GSUdfU0FWRV9DT01NQU5EUyhbCisrICBtNF9kZWZpbmUoW19M VF9UQUddLCBtNF9pZihbJDFdLCBbXSwgW0NdLCBbJDFdKSlkbmwKKysgIG00X2lmKF9MVF9UQUcs IFtDXSwgWworKyAgICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhl IG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCisrICAgICMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0 IHJlbW92YWwgb2YgXCBlc2NhcGVzLgorKyAgICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3Nl dH0iIDsgdGhlbgorKyAgICAgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrICAgIGZpCisrCisrICAg IGNmZ2ZpbGU9IiR7b2ZpbGV9VCIKKysgICAgdHJhcCAiJFJNIFwiJGNmZ2ZpbGVcIjsgZXhpdCAx IiAxIDIgMTUKKysgICAgJFJNICIkY2ZnZmlsZSIKKysKKysgICAgY2F0IDw8X0xUX0VPRiA+PiAi JGNmZ2ZpbGUiCisrIyEgJFNIRUxMCisrCisrIyBgJEVDSE8gIiRvZmlsZSIgfCBzZWQgJ3MlXi4q LyUlJ2AgLSBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2 aWNlcy4KKysjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tBR0UkVElN RVNUQU1QKSAkVkVSU0lPTgorKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9z dG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKKysjIE5PVEU6IENoYW5n ZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5zaC4KKysj CisrX0xUX0NPUFlJTkcKKytfTFRfTElCVE9PTF9UQUdTCisrCisrIyAjIyMgQkVHSU4gTElCVE9P TCBDT05GSUcKKytfTFRfTElCVE9PTF9DT05GSUdfVkFSUworK19MVF9MSUJUT09MX1RBR19WQVJT CisrIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCisrCisrX0xUX0VPRgorKworKyAgY2FzZSAkaG9z dF9vcyBpbgorKyAgYWl4MyopCisrICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysj IEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFt LiAgRm9yIHNvbWUKKysjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmly b25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21v a2UuCisraWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICBD T0xMRUNUX05BTUVTPQorKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKytmaQorK19MVF9FT0YKKysg ICAgOzsKKysgIGVzYWMKKysKKysgIF9MVF9QUk9HX0xUTUFJTgorKworKyAgIyBXZSB1c2Ugc2Vk IGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisr ICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9w ZXJhdGVzIGluCisrICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8g Q1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQg d2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KKysgIHNlZCAnL14jIEdlbmVyYXRlZCBz aGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS9xJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBc CisrICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBfTFRfUFJPR19YU0lf U0hFTExGTlMKKysKKysgIHNlZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5z ZXJ0ZWQgaGVyZS8sJHAnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKysgICAgfHwgKHJtIC1m ICIkY2ZnZmlsZSI7IGV4aXQgMSkKKysKKysgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwK KysgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYgcm0gLWYg IiRjZmdmaWxlIikKKysgIGNobW9kICt4ICIkb2ZpbGUiCisrXSwKKytbY2F0IDw8X0xUX0VPRiA+ PiAiJG9maWxlIgorKworK2RubCBVbmZvcnR1bmF0ZWx5IHdlIGhhdmUgdG8gdXNlICQxIGhlcmUs IHNpbmNlIF9MVF9UQUcgaXMgbm90IGV4cGFuZGVkCisrZG5sIGluIGEgY29tbWVudCAoaWUgYWZ0 ZXIgYSAjKS4KKysjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICQxCisrX0xUX0xJQlRP T0xfVEFHX1ZBUlMoX0xUX1RBRykKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkMQor K19MVF9FT0YKKytdKWRubCAvbTRfaWYKKytdLAorK1ttNF9pZihbJDFdLCBbXSwgWworKyAgICBQ QUNLQUdFPSckUEFDS0FHRScKKysgICAgVkVSU0lPTj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFN UD0nJFRJTUVTVEFNUCcKKysgICAgUk09JyRSTScKKysgICAgb2ZpbGU9JyRvZmlsZSddLCBbXSkK KytdKWRubCAvX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTCisrXSkjIF9MVF9DT05GSUcKKysKKysK KysjIExUX1NVUFBPUlRFRF9UQUcoVEFHKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBU cmFjZSB0aGlzIG1hY3JvIHRvIGRpc2NvdmVyIHdoYXQgdGFncyBhcmUgc3VwcG9ydGVkIGJ5IHRo ZSBsaWJ0b29sCisrIyAtLXRhZyBvcHRpb24sIHVzaW5nOgorKyMgICAgYXV0b2NvbmYgLS10cmFj ZSAnTFRfU1VQUE9SVEVEX1RBRzokMScKKytBQ19ERUZVTihbTFRfU1VQUE9SVEVEX1RBR10sIFtd KQorKworKworKyMgQyBzdXBwb3J0IGlzIGJ1aWx0LWluIGZvciBub3cKKyttNF9kZWZpbmUoW19M VF9MQU5HX0NfZW5hYmxlZF0sIFtdKQorK200X2RlZmluZShbX0xUX1RBR1NdLCBbXSkKKysKKysK KysjIExUX0xBTkcoTEFORykKKysjIC0tLS0tLS0tLS0tLS0KKysjIEVuYWJsZSBsaWJ0b29sIHN1 cHBvcnQgZm9yIHRoZSBnaXZlbiBsYW5ndWFnZSBpZiBub3QgYWxyZWFkeSBlbmFibGVkLgorK0FD X0RFRlVOKFtMVF9MQU5HXSwKKytbQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAorK200 X2Nhc2UoWyQxXSwKKysgIFtDXSwJCQlbX0xUX0xBTkcoQyldLAorKyAgW0MrK10sCQlbX0xUX0xB TkcoQ1hYKV0sCisrICBbSmF2YV0sCQlbX0xUX0xBTkcoR0NKKV0sCisrICBbRm9ydHJhbiA3N10s CQlbX0xUX0xBTkcoRjc3KV0sCisrICBbRm9ydHJhbl0sCQlbX0xUX0xBTkcoRkMpXSwKKysgIFtX aW5kb3dzIFJlc291cmNlXSwJW19MVF9MQU5HKFJDKV0sCisrICBbbTRfaWZkZWYoW19MVF9MQU5H X10kMVtfQ09ORklHXSwKKysgICAgW19MVF9MQU5HKCQxKV0sCisrICAgIFttNF9mYXRhbChbJDA6 IHVuc3VwcG9ydGVkIGxhbmd1YWdlOiAiJDEiXSldKV0pZG5sCisrXSkjIExUX0xBTkcKKysKKysK KysjIF9MVF9MQU5HKExBTkdOQU1FKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4o W19MVF9MQU5HXSwKKytbbTRfaWZkZWYoW19MVF9MQU5HX10kMVtfZW5hYmxlZF0sIFtdLAorKyAg W0xUX1NVUFBPUlRFRF9UQUcoWyQxXSlkbmwKKysgIG00X2FwcGVuZChbX0xUX1RBR1NdLCBbJDEg XSlkbmwKKysgIG00X2RlZmluZShbX0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10pZG5sCisrICBf TFRfTEFOR18kMV9DT05GSUcoJDEpXSlkbmwKKytdKSMgX0xUX0xBTkcKKysKKysKKysjIF9MVF9M QU5HX0RFRkFVTFRfQ09ORklHCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVu KFtfTFRfTEFOR19ERUZBVUxUX0NPTkZJR10sCisrW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9H X0NYWF0sCisrICBbTFRfTEFORyhDWFgpXSwKKysgIFttNF9kZWZpbmUoW0FDX1BST0dfQ1hYXSwg ZGVmbihbQUNfUFJPR19DWFhdKVtMVF9MQU5HKENYWCldKV0pCisrCisrQUNfUFJPVklERV9JRkVM U0UoW0FDX1BST0dfRjc3XSwKKysgIFtMVF9MQU5HKEY3NyldLAorKyAgW200X2RlZmluZShbQUNf UFJPR19GNzddLCBkZWZuKFtBQ19QUk9HX0Y3N10pW0xUX0xBTkcoRjc3KV0pXSkKKysKKytBQ19Q Uk9WSURFX0lGRUxTRShbQUNfUFJPR19GQ10sCisrICBbTFRfTEFORyhGQyldLAorKyAgW200X2Rl ZmluZShbQUNfUFJPR19GQ10sIGRlZm4oW0FDX1BST0dfRkNdKVtMVF9MQU5HKEZDKV0pXSkKKysK KytkbmwgVGhlIGNhbGwgdG8gW0FdW01fUFJPR19HQ0pdIGlzIHF1b3RlZCBsaWtlIHRoYXQgdG8g c3RvcCBhY2xvY2FsCisrZG5sIHB1bGxpbmcgdGhpbmdzIGluIG5lZWRsZXNzbHkuCisrQUNfUFJP VklERV9JRkVMU0UoW0FDX1BST0dfR0NKXSwKKysgIFtMVF9MQU5HKEdDSildLAorKyAgW0FDX1BS T1ZJREVfSUZFTFNFKFtBXVtNX1BST0dfR0NKXSwKKysgICAgW0xUX0xBTkcoR0NKKV0sCisrICAg IFtBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJPR19HQ0pdLAorKyAgICAgIFtMVF9MQU5HKEdDSild LAorKyAgICAgIFttNF9pZmRlZihbQUNfUFJPR19HQ0pdLAorKwlbbTRfZGVmaW5lKFtBQ19QUk9H X0dDSl0sIGRlZm4oW0FDX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKQorKyAgICAgICBtNF9p ZmRlZihbQV1bTV9QUk9HX0dDSl0sCisrCVttNF9kZWZpbmUoW0FdW01fUFJPR19HQ0pdLCBkZWZu KFtBXVtNX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKQorKyAgICAgICBtNF9pZmRlZihbTFRf UFJPR19HQ0pdLAorKwlbbTRfZGVmaW5lKFtMVF9QUk9HX0dDSl0sIGRlZm4oW0xUX1BST0dfR0NK XSlbTFRfTEFORyhHQ0opXSldKV0pXSldKQorKworK0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9H X1JDXSwKKysgIFtMVF9MQU5HKFJDKV0sCisrICBbbTRfZGVmaW5lKFtMVF9QUk9HX1JDXSwgZGVm bihbTFRfUFJPR19SQ10pW0xUX0xBTkcoUkMpXSldKQorK10pIyBfTFRfTEFOR19ERUZBVUxUX0NP TkZJRworKworKyMgT2Jzb2xldGUgbWFjcm9zOgorK0FVX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0s IFtMVF9MQU5HKEMrKyldKQorK0FVX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtMVF9MQU5HKEZv cnRyYW4gNzcpXSkKKytBVV9ERUZVTihbQUNfTElCVE9PTF9GQ10sIFtMVF9MQU5HKEZvcnRyYW4p XSkKKytBVV9ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbTFRfTEFORyhKYXZhKV0pCisrZG5sIGFj bG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElC VE9PTF9DWFhdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW10pCisrZG5s IEFDX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09M X0dDSl0sIFtdKQorKworKworKyMgX0xUX1RBR19DT01QSUxFUgorKyMgLS0tLS0tLS0tLS0tLS0t LQorK200X2RlZnVuKFtfTFRfVEFHX0NPTVBJTEVSXSwKKytbQUNfUkVRVUlSRShbQUNfUFJPR19D Q10pZG5sCisrCisrX0xUX0RFQ0woW0xUQ0NdLCBbQ0NdLCBbMV0sIFtBIEMgY29tcGlsZXJdKWRu bAorK19MVF9ERUNMKFtMVENGTEFHU10sIFtDRkxBR1NdLCBbMV0sIFtMVENDIGNvbXBpbGVyIGZs YWdzXSlkbmwKKytfTFRfVEFHREVDTChbQ0NdLCBbY29tcGlsZXJdLCBbMV0sIFtBIGxhbmd1YWdl IHNwZWNpZmljIGNvbXBpbGVyXSlkbmwKKytfTFRfVEFHREVDTChbd2l0aF9nY2NdLCBbR0NDXSwg WzBdLCBbSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/XSlkbmwKKysKKysjIElmIG5v IEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQor KworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4K KytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworK10pIyBfTFRfVEFH X0NPTVBJTEVSCisrCisrCisrIyBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1 dCBvciB3YXJuaW5ncyB3aXRoCisrIyB0aGUgc2ltcGxlIGNvbXBpbGVyIHRlc3QgY29kZS4KKytt NF9kZWZ1bihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwKKytbbTRfcmVxdWlyZShbX0xUX0RF Q0xfU0VEXSlkbmwKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19j b21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0 LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0g Y29uZnRlc3QqCisrXSkjIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQorKworKworKyMgX0xUX0xJ TktFUl9CT0lMRVJQTEFURQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9y IGxpbmtlciBib2lsZXJwbGF0ZSBvdXRwdXQgb3Igd2FybmluZ3Mgd2l0aAorKyMgdGhlIHNpbXBs ZSBsaW5rIHRlc3QgY29kZS4KKyttNF9kZWZ1bihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0sCisr W200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19l eHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICor L2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3Qu ZXJyYAorKyRSTSAtciBjb25mdGVzdCoKKytdKSMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKwor KyMgX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1MKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyttNF9kZWZ1bl9vbmNlKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sWworKyAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBBQ19DSEVDS19U T09MKFtEU1lNVVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbTk1F RElUXSwgW25tZWRpdF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbTElQT10sIFtsaXBvXSwg WzpdKQorKyAgICBBQ19DSEVDS19UT09MKFtPVE9PTF0sIFtvdG9vbF0sIFs6XSkKKysgICAgQUNf Q0hFQ0tfVE9PTChbT1RPT0w2NF0sIFtvdG9vbDY0XSwgWzpdKQorKyAgICBfTFRfREVDTChbXSwg W0RTWU1VVElMXSwgWzFdLAorKyAgICAgIFtUb29sIHRvIG1hbmlwdWxhdGUgYXJjaGl2ZWQgRFdB UkYgZGVidWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtO TUVESVRdLCBbMV0sCisrICAgICAgW1Rvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2NhbCBzeW1i b2xzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtMSVBPXSwgWzFdLAorKyAgICAg IFtUb29sIHRvIG1hbmlwdWxhdGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBPUyBY XSkKKysgICAgX0xUX0RFQ0woW10sIFtPVE9PTF0sIFsxXSwKKysgICAgICBbbGRkL3JlYWRlbGYg bGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFhdKQorKyAgICBfTFRfREVD TChbXSwgW09UT09MNjRdLCBbMV0sCisrICAgICAgW2xkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3Ig NjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWCAxMC40XSkKKysKKysgICAgQUNfQ0FD SEVfQ0hFQ0soW2ZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxlX2Nj X3NpbmdsZV9tb2RdLAorKyAgICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAg ICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKwkjIEJ5IGRlZmF1bHQg d2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBjYW4gb3ZlcnJpZGUKKysJ IyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9E VUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRp X21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdzLgorKwlybSAtcmYgbGliY29uZnRlc3QuZHls aWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVzdC5jCisrCWVj aG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCisrLWR5 bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mQVNfTUVTU0FHRV9MT0df RkQKKysJJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKKysJ ICAtZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyAyPmNvbmZ0ZXN0LmVy cgorKyAgICAgICAgX2x0X3Jlc3VsdD0kPworKwlpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGli ICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDA7IHRoZW4K KysJICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPXllcworKwllbHNlCisrCSAgY2F0IGNvbmZ0 ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrCWZpCisrCXJtIC1yZiBsaWJjb25mdGVzdC5k eWxpYioKKysJcm0gLWYgY29uZnRlc3QuKgorKyAgICAgIGZpXSkKKysgICAgQUNfQ0FDSEVfQ0hF Q0soW2ZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnXSwKKysgICAgICBbbHRf Y3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0XSwKKysgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRf c3ltYm9sc19saXN0PW5vCisrICAgICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICAgICAgZWNo byAiX21haW4iID4gY29uZnRlc3Quc3ltCisrICAgICAgTERGTEFHUz0iJExERkxBR1MgLVdsLC1l eHBvcnRlZF9zeW1ib2xzX2xpc3QsY29uZnRlc3Quc3ltIgorKyAgICAgIEFDX0xJTktfSUZFTFNF KFtBQ19MQU5HX1BST0dSQU0oW10sW10pXSwKKysJW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNf bGlzdD15ZXNdLAorKwlbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vXSkKKysJTERG TEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgXSkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICByaGFwc29keSogfCBkYXJ3aW4xLltbMDEyXV0pCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRl ZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4xLiop CisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7 d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4qKSAjIGRhcndpbiA1 Lnggb24KKysgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1l bnQgdGFyZ2V0IGRlZmF1bHRzCisrICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2 LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKKysgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAx MC40LiBEb24ndCB5b3UgbG92ZSBpdD8KKysgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRf VEFSR0VULTEwLjB9LCRob3N0IGluCisrCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2lu W1s5MV1dKikKKysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7 d2x9ZHluYW1pY19sb29rdXAnIDs7CisrCTEwLltbMDEyXV0qKQorKwkgIF9sdF9kYXJfYWxsb3df dW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBw cmVzcycgOzsKKysJMTAuKikKKysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5k ZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAg ZXNhYworKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsg dGhlbgorKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZp CisrICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7 IHRoZW4KKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9s c19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVs c2UKKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRp ci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAgZmkKKysgICAgaWYgdGVz dCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVU SUwgJGxpYiB8fCA6JworKyAgICBlbHNlCisrICAgICAgX2x0X2RzeW11dGlsPQorKyAgICBmaQor KyAgICA7OworKyAgZXNhYworK10pCisrCisrCisrIyBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJF UworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgbGlua2VyIGFu ZCBjb21waWxlciBmZWF0dXJlcyBvbiBkYXJ3aW4KKyttNF9kZWZ1bihbX0xUX0RBUldJTl9MSU5L RVJfRkVBVFVSRVNdLAorK1sKKysgIG00X3JlcXVpcmUoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hF Q0tTXSkKKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgX0xU X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9h dXRvbWF0aWMsICQxKT15ZXMKKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zhciwg JDEpPXVuc3VwcG9ydGVkCisrICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9JycKKysgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQi CisrICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFy ZWQ9eWVzIDs7CisrICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OworKyAgZXNhYwor KyAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgorKyAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCisrICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxp Ym9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wk c29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisr ICAgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdz JHtfbHRfZHN5bXV0aWx9IgorKyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHts aWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVk X2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0 YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21v ZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBfTFRfVEFHVkFS KG1vZHVsZV9leHBzeW1fY21kcywgJDEpPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1i b2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRh bGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisr ICAgIG00X2lmKFskMV0sIFtDWFhdLAorK1sgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2lu Z2xlX21vZCIgIT0gInllcyI7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSJcJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1t YXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFn IC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWlu c3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9Igor KyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcg PCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMu ZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9 LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAt aW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0 X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBmaQorK10sW10pCisrICBlbHNlCisrICBfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICBmaQorK10pCisrCisrIyBfTFRfU1lTX01PRFVM RV9QQVRIX0FJWAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIExpbmtzIGEgbWluaW1h bCBwcm9ncmFtIGFuZCBjaGVja3MgdGhlIGV4ZWN1dGFibGUKKysjIGZvciB0aGUgc3lzdGVtIGRl ZmF1bHQgaGFyZGNvZGVkIGxpYnJhcnkgcGF0aC4gSW4gbW9zdCBjYXNlcywKKysjIHRoaXMgaXMg L3Vzci9saWI6L2xpYiwgYnV0IHdoZW4gdGhlIE1QSSBjb21waWxlcnMgYXJlIHVzZWQKKysjIHRo ZSBsb2NhdGlvbiBvZiB0aGUgY29tbXVuaWNhdGlvbiBhbmQgTVBJIGxpYnMgYXJlIGluY2x1ZGVk IHRvby4KKysjIElmIHdlIGRvbid0IGZpbmQgYW55dGhpbmcsIHVzZSB0aGUgZGVmYXVsdCBsaWJy YXJ5IHBhdGggYWNjb3JkaW5nCisrIyB0byB0aGUgYWl4IGxkIG1hbnVhbC4KKyttNF9kZWZ1bihb X0xUX1NZU19NT0RVTEVfUEFUSF9BSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRu bAorK0FDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSxbCisrbHRfYWl4X2xpYnBhdGhfc2Vk PScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMv XjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1 bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2Fp eF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4n dCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFp eF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRT RUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpXSxbXSkKKytpZiB0ZXN0IC16ICIk YWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKytdKSMg X0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKysKKysKKysjIF9MVF9TSEVMTF9JTklUKEFSRykKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKKytbaWZk ZWYoW0FDX0RJVkVSU0lPTl9OT1RJQ0VdLAorKwkgICAgIFtBQ19ESVZFUlRfUFVTSChBQ19ESVZF UlNJT05fTk9USUNFKV0sCisrCSBbQUNfRElWRVJUX1BVU0goTk9USUNFKV0pCisrJDEKKytBQ19E SVZFUlRfUE9QCisrXSkjIF9MVF9TSEVMTF9JTklUCisrCisrCisrIyBfTFRfUFJPR19FQ0hPX0JB Q0tTTEFTSAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEFkZCBzb21lIGNvZGUgdG8g dGhlIHN0YXJ0IG9mIHRoZSBnZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdCB3aGljaAorKyMgd2ls bCBmaW5kIGFuIGVjaG8gY29tbWFuZCB3aGljaCBkb2Vzbid0IGludGVycHJldCBiYWNrc2xhc2hl cy4KKyttNF9kZWZ1bihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdLAorK1tfTFRfU0hFTExfSU5J VChbCisrIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxs LgorK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CisrCisrY2FzZSBYJGx0X0VDSE8gaW4K KytYKi0tZmFsbGJhY2stZWNobykKKysgICMgUmVtb3ZlIG9uZSBsZXZlbCBvZiBxdW90YXRpb24g KHdoaWNoIHdhcyByZXF1aXJlZCBmb3IgTWFrZSkuCisrICBFQ0hPPWBlY2hvICIkbHRfRUNITyIg fCBzZWQgJ3MsXFxcXFxbJF1cXFskXTAsJ1skXTAnLCdgCisrICA7OworK2VzYWMKKysKKytFQ0hP PSR7bHRfRUNITy1lY2hvfQorK2lmIHRlc3QgIlhbJF0xIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgor KyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICBzaGlm dAorK2VsaWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9p ZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYg dGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgorKyAg IyBZaXBwZWUsICRFQ0hPIHdvcmtzIQorKyAgOgorK2Vsc2UKKysgICMgUmVzdGFydCB1bmRlciB0 aGUgY29ycmVjdCBzaGVsbC4KKysgIGV4ZWMgJFNIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezEr IlskXUAifQorK2ZpCisrCisraWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhl bgorKyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQgPDxfTFRfRU9G CisrWyRdKgorK19MVF9FT0YKKysgIGV4aXQgMAorK2ZpCisrCisrIyBUaGUgSFAtVVgga3NoIGFu ZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlm IENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0 IENEUEFUSAorKworK2lmIHRlc3QgLXogIiRsdF9FQ0hPIjsgdGhlbgorKyAgaWYgdGVzdCAiWCR7 ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgICMgZmluZCBhIHN0cmlu ZyBhcyBsYXJnZSBhcyBwb3NzaWJsZSwgYXMgbG9uZyBhcyB0aGUgc2hlbGwgY2FuIGNvcGUgd2l0 aCBpdAorKyAgICBmb3IgY21kIGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAn c2VkIDEwcSAiWyRdMCInICdzZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAgICAj IGV4cGVjdGVkIHNpemVzOiBsZXNzIHRoYW4gMktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMs IC4uLgorKyAgICAgIGlmIHsgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYv bnVsbCAmJgorKwkgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0 cmluZyI7IH0gMj4vZGV2L251bGwKKysgICAgICB0aGVuCisrICAgICAgICBicmVhaworKyAgICAg IGZpCisrICAgIGRvbmUKKysgIGZpCisrCisrICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAy Pi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVD SE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysgICAgIHRlc3QgIlgk ZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICA6 CisrICBlbHNlCisrICAgICMgVGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZh dWx0IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQorKyAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtl cyBpdCBpbXBvc3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisrICAgICMgICBlY2hv ICIkc29tZXRoaW5nIiB8IHNlZCAncy9cXC9cXFxcL2cnCisrICAgICMKKysgICAgIyBTbywgZmly c3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorKworKyAg ICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGRpciBp biAkUEFUSCAvdXNyL3VjYjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICBp ZiAodGVzdCAtZiAkZGlyL2VjaG8gfHwgdGVzdCAtZiAkZGlyL2VjaG8kYWNfZXhlZXh0KSAmJgor KyAgICAgICAgIHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcg JiYKKysgICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0 X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5n X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICAgICAgRUNITz0iJGRp ci9lY2hvIgorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0i JGx0X3NhdmVfaWZzIgorKworKyAgICBpZiB0ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KKysg ICAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0 aXZlcy4KKysgICAgICBpZiB0ZXN0ICJYYHsgcHJpbnQgLXIgJ1x0JzsgfSAyPi9kZXYvbnVsbGAi ID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIk ZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCisrICAgICAgICAgdGVzdCAiWCRl Y2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICAgICAg ICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNr LgorKyAgICAgICAgRUNITz0ncHJpbnQgLXInCisrICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9r c2ggfHwgdGVzdCAtZiAvYmluL2tzaCRhY19leGVleHQ7IH0gJiYKKysJICAgdGVzdCAiWCRDT05G SUdfU0hFTEwiICE9IFgvYmluL2tzaDsgdGhlbgorKyAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwg dHJ5IHJ1bm5pbmcgY29uZmlndXJlIGFnYWluIHdpdGggaXQuCisrICAgICAgICBPUklHSU5BTF9D T05GSUdfU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKysgICAgICAgIGV4cG9ydCBPUklH SU5BTF9DT05GSUdfU0hFTEwKKysgICAgICAgIENPTkZJR19TSEVMTD0vYmluL2tzaAorKyAgICAg ICAgZXhwb3J0IENPTkZJR19TSEVMTAorKyAgICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0w IiAtLW5vLXJlZXhlYyAkezErIlskXUAifQorKyAgICAgIGVsc2UKKysgICAgICAgICMgVHJ5IHVz aW5nIHByaW50Zi4KKysgICAgICAgIEVDSE89J3ByaW50ZiAlc1xuJworKyAgICAgICAgaWYgdGVz dCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrCSAgIGVjaG9f dGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVs bGAgJiYKKysJICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9z dHJpbmciOyB0aGVuCisrCSAgIyBDb29sLCBwcmludGYgd29ya3MKKysJICA6CisrICAgICAgICBl bGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICJbJF0wIiAt LWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hv X3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCisrCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1g KCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVz dF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19z dHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysJICBDT05GSUdfU0hFTEw9JE9S SUdJTkFMX0NPTkZJR19TSEVMTAorKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKKysJICBTSEVMTD0i JENPTkZJR19TSEVMTCIKKysJICBleHBvcnQgU0hFTEwKKysJICBFQ0hPPSIkQ09ORklHX1NIRUxM IFskXTAgLS1mYWxsYmFjay1lY2hvIgorKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5n PWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxs YCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorKwkg ICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNr LWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAi WCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAg RUNITz0iJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyIKKysgICAgICAgIGVsc2UK KysJICAjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmluZy4uLgorKwkgIHByZXY9OgorKworKwkg IGZvciBjbWQgaW4gJ2VjaG8gdGVzdCcgJ3NlZCAycSAiWyRdMCInICdzZWQgMTBxICJbJF0wIicg J3NlZCAyMHEgIlskXTAiJyAnc2VkIDUwcSAiWyRdMCInOyBkbworKwkgICAgaWYgeyB0ZXN0ICJY JGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCI7IH0gMj4vZGV2L251bGwKKysJICAg IHRoZW4KKysJICAgICAgYnJlYWsKKysJICAgIGZpCisrCSAgICBwcmV2PSIkY21kIgorKwkgIGRv bmUKKysKKysJICBpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1MHEgIlskXTAiJzsgdGhlbgorKwkg ICAgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKKysJICAgIGV4cG9ydCBlY2hvX3Rlc3Rf c3RyaW5nCisrCSAgICBleGVjICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7Q09ORklHX1NIRUxM LS9iaW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1AIn0KKysJICBlbHNlCisrCSAgICAjIE9vcHMuICBX ZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorKwkgICAgRUNITz1l Y2hvCisrCSAgZmkKKysgICAgICAgIGZpCisrICAgICAgZmkKKysgICAgZmkKKysgIGZpCisrZmkK KysKKysjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3Npbmcg dG8gbGlidG9vbCBmcm9tCisrIyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUg b3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCisrbHRfRUNITz0kRUNITworK2lmIHRlc3Qg IlgkbHRfRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVu CisrICAgbHRfRUNITz0iJENPTkZJR19TSEVMTCBcXFwkXFskXTAgLS1mYWxsYmFjay1lY2hvIgor K2ZpCisrCisrQUNfU1VCU1QobHRfRUNITykKKytdKQorK19MVF9ERUNMKFtdLCBbU0hFTExdLCBb MV0sIFtTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzXSkKKytfTFRfREVD TChbXSwgW0VDSE9dLCBbMV0sCisrICAgIFtBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBp bnRlcnByZXQgYmFja3NsYXNoZXNdKQorK10pIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKwor KworKyMgX0xUX0VOQUJMRV9MT0NLCisrIyAtLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xU X0VOQUJMRV9MT0NLXSwKKytbQUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKysgIFtBU19I RUxQX1NUUklORyhbLS1kaXNhYmxlLWxpYnRvb2wtbG9ja10sCisrICAgIFthdm9pZCBsb2NraW5n IChtaWdodCBicmVhayBwYXJhbGxlbCBidWlsZHMpXSldKQorK3Rlc3QgIngkZW5hYmxlX2xpYnRv b2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCisrCisrIyBTb21lIGZs YWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29tcGlsZXIgb3IgbGlua2VyIGZvciBn b29kCisrIyBsaWJ0b29sIHN1cHBvcnQuCisrY2FzZSAkaG9zdCBpbgorK2lhNjQtKi1ocHV4KikK KysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycg PiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgor KyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisrICAgICAg KkVMRi0zMiopCisrCUhQVVhfSUE2NF9NT0RFPSIzMiIKKysJOzsKKysgICAgICAqRUxGLTY0KikK KysJSFBVWF9JQTY0X01PREU9IjY0IgorKwk7OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJm IGNvbmZ0ZXN0KgorKyAgOzsKKysqLSotaXJpeDYqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkg d2UgYXJlIHVzaW5nLgorKyAgZWNobyAnWyNdbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSInID4g Y29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysg ICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2Ug YC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAg TEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtM RC1sZH0gLW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQt bGR9IC1tZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNh c2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisr CSAgTEQ9IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0g LW4zMiIKKysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7 CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7 CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxw b3dlcnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxp bnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2lu dCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsg dGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMy LWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAg ICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSps aW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBw YzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxm MzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xE LWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAg TEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGluCisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251 KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAg eDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAg IDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiop CisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMq LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrCSAgICA7Owor Kwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7 OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQg LWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENG TEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0 aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmXSwgbHRfY3ZfY2NfbmVlZHNfYmVsZiwKKysg ICAgW0FDX0xBTkdfUFVTSChDKQorKyAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JB TShbW11dLFtbXV0pXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFtsdF9jdl9jY19uZWVkc19i ZWxmPW5vXSkKKysgICAgIEFDX0xBTkdfUE9QXSkKKysgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVl ZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCisrICAgICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44 LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVsZgorKyAgICBDRkxBR1M9IiRT QVZFX0NGTEFHUyIKKysgIGZpCisrICA7OworK3NwYXJjKi0qc29sYXJpcyopCisrICAjIEZpbmQg b3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3Qu JGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgorKyAgICAqNjQtYml0KikKKysgICAgICBjYXNl ICRsdF9jdl9wcm9nX2dudV9sZCBpbgorKyAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2 NF9zcGFyYyIgOzsKKysgICAgICAqKQorKwlpZiAke0xELWxkfSAtNjQgLXIgLW8gY29uZnRlc3Qy Lm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICBMRD0iJHtMRC1sZH0gLTY0 IgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQor KyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKytlc2FjCisrCisrbmVlZF9sb2Nrcz0iJGVuYWJs ZV9saWJ0b29sX2xvY2siCisrXSkjIF9MVF9FTkFCTEVfTE9DSworKworKworKyMgX0xUX0NNRF9P TERfQVJDSElWRQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ01EX09M RF9BUkNISVZFXSwKKytbQUNfQ0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNlKQorK3Rlc3QgLXogIiRB UiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK19MVF9E RUNMKFtdLCBbQVJdLCBbMV0sIFtUaGUgYXJjaGl2ZXJdKQorK19MVF9ERUNMKFtdLCBbQVJfRkxB R1NdLCBbMV0pCisrCisrQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDopCisrdGVzdCAteiAi JFNUUklQIiAmJiBTVFJJUD06CisrX0xUX0RFQ0woW10sIFtTVFJJUF0sIFsxXSwgW0Egc3ltYm9s IHN0cmlwcGluZyBwcm9ncmFtXSkKKysKKytBQ19DSEVDS19UT09MKFJBTkxJQiwgcmFubGliLCA6 KQorK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJQj06CisrX0xUX0RFQ0woW10sIFtSQU5MSUJd LCBbMV0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hp dmVdKQorKworKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGlj IGFyY2hpdmVzLgorK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRv YmpzJworK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKKytvbGRfcG9z dHVuaW5zdGFsbF9jbWRzPQorKworK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICBjYXNl ICRob3N0X29zIGluCisrICBvcGVuYnNkKikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRv bGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKKysgICAgOzsKKysgICop CisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5M SUIgXCRvbGRsaWIiCisrICAgIDs7CisrICBlc2FjCisrICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xk X2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKKytmaQorK19MVF9ERUNMKFtdLCBbb2xk X3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0pCisrX0xUX0RFQ0woW10sIFtvbGRfcG9zdHVuaW5zdGFs bF9jbWRzXSwgWzJdKQorK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfY21kc10sIFsyXSwK KysgICAgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorK10p IyBfTFRfQ01EX09MRF9BUkNISVZFCisrCisrCisrIyBfTFRfQ09NUElMRVJfT1BUSU9OKE1FU1NB R0UsIFZBUklBQkxFLU5BTUUsIEZMQUdTLAorKyMJCVtPVVRQVVQtRklMRV0sIFtBQ1RJT04tU1VD Q0VTU10sIFtBQ1RJT04tRkFJTFVSRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIHRo ZSBnaXZlbiBjb21waWxlciBvcHRpb24gd29ya3MKKytBQ19ERUZVTihbX0xUX0NPTVBJTEVSX09Q VElPTl0sCisrW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK200X3Jl cXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soWyQxXSwgWyQyXSwKKysg IFskMj1ubworKyAgIG00X2lmKFskNF0sICwgW2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dF0sIFthY19vdXRmaWxlPSQ0XSkKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9j b2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkMyIKKysgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku CisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQg Y29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VE IFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBc CisrICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBc CisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwk YXNfbWU6X19vbGluZV9fOiAkbHRfY29tcGlsZVwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQorKyAg IChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/Cisr ICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21l Ol9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGlm IChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAgICAg IyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90 IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhl ciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9p bGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3Qg ISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2 L251bGw7IHRoZW4KKysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNv bmZ0ZXN0KgorK10pCisrCisraWYgdGVzdCB4IlskXSQyIiA9IHh5ZXM7IHRoZW4KKysgICAgbTRf aWYoWyQ1XSwgLCA6LCBbJDVdKQorK2Vsc2UKKysgICAgbTRfaWYoWyQ2XSwgLCA6LCBbJDZdKQor K2ZpCisrXSkjIF9MVF9DT01QSUxFUl9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFT KFtBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTl0sIFtfTFRfQ09NUElMRVJfT1BUSU9OXSkKKytk bmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtB Q19MSUJUT09MX0NPTVBJTEVSX09QVElPTl0sIFtdKQorKworKworKyMgX0xUX0xJTktFUl9PUFRJ T04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCisrIyAgICAgICAgICAgICAgICAgIFtB Q1RJT04tU1VDQ0VTU10sIFtBQ1RJT04tRkFJTFVSRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIHRoZSBn aXZlbiBsaW5rZXIgb3B0aW9uIHdvcmtzCisrQUNfREVGVU4oW19MVF9MSU5LRVJfT1BUSU9OXSwK KytbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShb X0xUX0RFQ0xfU0VEXSlkbmwKKytBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorKyAgWyQyPW5v CisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkMyIK KysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQK KysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBp Z25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYg dGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgor KyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBj YXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgICAgICRFQ0hPICJYJF9s dF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAor KyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIK KysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRo ZW4KKysgICAgICAgICAkMj15ZXMKKysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgJDI9 eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9 IiRzYXZlX0xERkxBR1MiCisrXSkKKysKKytpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgor KyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0pCisrZWxzZQorKyAgICBtNF9pZihbJDVdLCAsIDos IFskNV0pCisrZmkKKytdKSMgX0xUX0xJTktFUl9PUFRJT04KKysKKysjIE9sZCBuYW1lOgorK0FV X0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBbX0xUX0xJTktFUl9PUFRJT05dKQor K2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4o W0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtdKQorKworKworKyMgTFRfQ01EX01BWF9MRU4K KysjLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0NNRF9NQVhfTEVOXSwKKytbQUNfUkVR VUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGgg b2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK0FDX01TR19DSEVDS0lORyhbdGhlIG1heGltdW0g bGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zf c3lzX21heF9jbWRfbGVuXSwgW2RubAorKyAgaT0wCisrICB0ZXN0c3RyaW5nPSJBQkNEIgorKwor KyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1zZG9zZGpncHAqKQorKyAgICAjIE9uIERKR1BQLCB0 aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJj CisrICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2Vz IGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBp ZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKKysgICAgIyBjaGVjayB3b3VsZCBi ZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0x MjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKysgICAgOzsKKysKKysgIGdudSopCisrICAg ICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVy ZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3Vt ZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRz b2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOworKyAgICA7OworKworKyAgY3ln d2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJs b3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKysgICAgIyBhYm91dCA1IG1pbnV0ZXMg YXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KKysgICAgIyBXb3JzZSwgc2lu Y2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKKysgICAgIyB5b3Ug ZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5j ZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBs ZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhl IG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQorKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9y dGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgorKyAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIGFtaWdhb3MqKQorKyAgICAjIE9uIEFtaWdhT1Mg d2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCisrICAgICMgU28g d2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCisrICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7OworKworKyAgbmV0YnNkKiB8IGZy ZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKKysgICAgIyBUaGlzIGhh cyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIuCisr ICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCisrICAgIGVsaWYgdGVzdCAteCAv dXNyL3NiaW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvdXNy L3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBlbHNlCisrICAgICAgbHRfY3Zfc3lz X21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCisrICAgIGZp CisrICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCisrICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCisrICAgIDs7CisrCisr ICBpbnRlcml4KikKKysgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRjb2Rl IGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj0xOTY2MDgKKysgICAgOzsKKysKKysgIG9zZiopCisrICAgICMgRHIuIEhhbnMgRWtrZWhh cmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZpZ3Vy ZQorKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0IGlz IDEgb24gVHJ1NjQuIEl0IGlzIG5vdAorKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBhbmlj cyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgorKyAgICAjIEZpcnN0IHNldCBhIHJlYXNv bmFibGUgZGVmYXVsdC4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0CisrICAgICMK KysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KKysgICAgICBjYXNlIGAvc2Jp bi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgorKyAgICAgICAg KjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisr ICAgIDs7CisrICBzY28zLjJ2NSopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0MDAK KysgICAgOzsKKysgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKKysgICAga2FyZ21h eD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAorKyAgICBp ZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbWwkgXV0vLydgCisrICAgIGVsc2UKKysgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKKysgICAgZmkKKysgICAgOzsKKysgICopCisrICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAor KyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgorKyAgICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCisr ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4g XCogM2AKKysgICAgZWxzZQorKyAgICAgICMgTWFrZSB0ZXN0c3RyaW5nIGEgbGl0dGxlIGJpZ2dl ciBiZWZvcmUgd2UgZG8gYW55dGhpbmcgd2l0aCBpdC4KKysgICAgICAjIGEgMUsgc3RyaW5nIHNo b3VsZCBiZSBhIHJlYXNvbmFibGUgc3RhcnQuCisrICAgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDYg NyA4IDsgZG8KKysgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZworKyAg ICAgIGRvbmUKKysgICAgICBTSEVMTD0ke1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fQor KyAgICAgICMgSWYgdGVzdCBpcyBub3QgYSBzaGVsbCBidWlsdC1pbiwgd2UnbGwgcHJvYmFibHkg ZW5kIHVwIGNvbXB1dGluZyBhCisrICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkg aGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKKysgICAgICAjIHdlIGNhbid0 IHRlbGwuCisrICAgICAgd2hpbGUgeyB0ZXN0ICJYImAkU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVj aG8gIlgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgICA9 ICJYWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAg ICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAg ICAgICAgaT1gZXhwciAkaSArIDFgCisrICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRl c3RzdHJpbmcKKysgICAgICBkb25lCisrICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVu Z3RoIG91dHNpZGUgdGhlIGxvb3AuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHBy ICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAg IyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBj YW4gdGFjayBvbgorKyAgICAgICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1l bnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBl YXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysg ICAgOzsKKysgIGVzYWMKKytdKQorK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7 IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJGx0X2N2X3N5c19tYXhfY21kX2xlbikKKytlbHNlCisr ICBBQ19NU0dfUkVTVUxUKG5vbmUpCisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9j bWRfbGVuCisrX0xUX0RFQ0woW10sIFttYXhfY21kX2xlbl0sIFswXSwKKysgICAgW1doYXQgaXMg dGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD9dKQorK10pIyBMVF9DTURfTUFYX0xFTgor KworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOXSwg W0xUX0NNRF9NQVhfTEVOXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sIFtdKQorKwor KworKyMgX0xUX0hFQURFUl9ETEZDTgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtf TFRfSEVBREVSX0RMRkNOXSwKKytbQUNfQ0hFQ0tfSEVBREVSUyhbZGxmY24uaF0sIFtdLCBbXSwg W0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAorK10pIyBfTFRfSEVBREVSX0RMRkNOCisrCisrCisr IyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04tSUYtVFJVRSwgQUNUSU9OLUlGLVRSVUUtVy1V U0NPUkUsCisrIyAgICAgICAgICAgICAgICAgICAgICBBQ1RJT04tSUYtRkFMU0UsIEFDVElPTi1J Ri1DUk9TUy1DT01QSUxJTkcpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9UUllfRExPUEVO X1NFTEZdLAorK1ttNF9yZXF1aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKKytpZiB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBbJDRdCisrZWxzZQorKyAgbHRfZGx1 bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgorKyAgbHRfc3Rh dHVzPSRsdF9kbHVua25vd24KKysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisr WyNsaW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIgorKyNpbmNsdWRlICJjb25mZGVmcy5oIgorKwor KyNpZiBIQVZFX0RMRkNOX0gKKysjaW5jbHVkZSA8ZGxmY24uaD4KKysjZW5kaWYKKysKKysjaW5j bHVkZSA8c3RkaW8uaD4KKysKKysjaWZkZWYgUlRMRF9HTE9CQUwKKysjICBkZWZpbmUgTFRfRExH TE9CQUwJCVJUTERfR0xPQkFMCisrI2Vsc2UKKysjICBpZmRlZiBETF9HTE9CQUwKKysjICAgIGRl ZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCisrIyAgZWxzZQorKyMgICAgZGVmaW5lIExUX0RM R0xPQkFMCQkwCisrIyAgZW5kaWYKKysjZW5kaWYKKysKKysvKiBXZSBtYXkgaGF2ZSB0byBkZWZp bmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCisrICAgZmluZCBv dXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLworKyNpZm5kZWYgTFRfRExM QVpZX09SX05PVworKyMgIGlmZGVmIFJUTERfTEFaWQorKyMgICAgZGVmaW5lIExUX0RMTEFaWV9P Ul9OT1cJCVJUTERfTEFaWQorKyMgIGVsc2UKKysjICAgIGlmZGVmIERMX0xBWlkKKysjICAgICAg ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKKysjICAgIGVsc2UKKysjICAgICAgaWZk ZWYgUlRMRF9OT1cKKysjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVwor KyMgICAgICBlbHNlCisrIyAgICAgICAgaWZkZWYgRExfTk9XCisrIyAgICAgICAgICBkZWZpbmUg TFRfRExMQVpZX09SX05PVwlETF9OT1cKKysjICAgICAgICBlbHNlCisrIyAgICAgICAgICBkZWZp bmUgTFRfRExMQVpZX09SX05PVwkwCisrIyAgICAgICAgZW5kaWYKKysjICAgICAgZW5kaWYKKysj ICAgIGVuZGlmCisrIyAgZW5kaWYKKysjZW5kaWYKKysKKyt2b2lkIGZub3JkKCkgeyBpbnQgaT00 Mjt9CisraW50IG1haW4gKCkKKyt7CisrICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdM T0JBTHxMVF9ETExBWllfT1JfTk9XKTsKKysgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOwor KworKyAgaWYgKHNlbGYpCisrICAgIHsKKysgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikp ICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKKysgICAgICBlbHNlIGlmIChkbHN5bSgg c2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOworKyAgICAgIC8qIGRs Y2xvc2UgKHNlbGYpOyAqLworKyAgICB9CisrICBlbHNlCisrICAgIHB1dHMgKGRsZXJyb3IgKCkp OworKworKyAgcmV0dXJuIHN0YXR1czsKKyt9XQorK19MVF9FT0YKKysgIGlmIEFDX1RSWV9FVkFM KGFjX2xpbmspICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRo ZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiZBU19NRVNTQUdFX0xPR19GRCAyPi9kZXYv bnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgorKyAgICAg IHgkbHRfZGxub191c2NvcmUpICQxIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSAkMiA7 OworKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSAkMyA7OworKyAgICBlc2FjCisrICBlbHNlIDoK KysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAgJDMKKysgIGZpCisrZmkKKytybSAtZnIg Y29uZnRlc3QqCisrXSkjIF9MVF9UUllfRExPUEVOX1NFTEYKKysKKysKKysjIExUX1NZU19ETE9Q RU5fU0VMRgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX1NZU19ETE9QRU5f U0VMRl0sCisrW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExGQ05dKWRubAorK2lmIHRlc3QgIngk ZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAgZW5hYmxlX2Rsb3Blbj11bmtub3duCisr ICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRp Yz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVuPW5vCisrICBsdF9jdl9kbG9wZW5fbGli cz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJlb3MqKQorKyAgICBsdF9jdl9kbG9wZW49 ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVu X3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAg bHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAg IDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKysgICAgbHRf Y3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBkYXJ3aW4qKQorKyAgIyBpZiBsaWJkbCBp cyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3QgaXQKKysgICAgQUNfQ0hFQ0tfTElC KFtkbF0sIFtkbG9wZW5dLAorKwkJW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5f bGlicz0iLWxkbCJdLFsKKysgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgorKyAgICBsdF9jdl9kbG9w ZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIF0pCisrICAgIDs7Cisr CisrICAqKQorKyAgICBBQ19DSEVDS19GVU5DKFtzaGxfbG9hZF0sCisrCSAgW2x0X2N2X2Rsb3Bl bj0ic2hsX2xvYWQiXSwKKysgICAgICBbQUNfQ0hFQ0tfTElCKFtkbGRdLCBbc2hsX2xvYWRdLAor KwkgICAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJd LAorKwlbQUNfQ0hFQ0tfRlVOQyhbZGxvcGVuXSwKKysJICAgICAgW2x0X2N2X2Rsb3Blbj0iZGxv cGVuIl0sCisrCSAgW0FDX0NIRUNLX0xJQihbZGxdLCBbZGxvcGVuXSwKKysJCVtsdF9jdl9kbG9w ZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiXSwKKysJICAgIFtBQ19DSEVDS19M SUIoW3N2bGRdLCBbZGxvcGVuXSwKKysJCSAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9k bG9wZW5fbGlicz0iLWxzdmxkIl0sCisrCSAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtkbGRf bGlua10sCisrCQkgICAgW2x0X2N2X2Rsb3Blbj0iZGxkX2xpbmsiIGx0X2N2X2Rsb3Blbl9saWJz PSItbGRsZCJdKQorKwkgICAgICBdKQorKwkgICAgXSkKKysJICBdKQorKwldKQorKyAgICAgIF0p CisrICAgIDs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3BlbiIgIT0geG5v OyB0aGVuCisrICAgIGVuYWJsZV9kbG9wZW49eWVzCisrICBlbHNlCisrICAgIGVuYWJsZV9kbG9w ZW49bm8KKysgIGZpCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW4gaW4KKysgIGRsb3BlbikKKysg ICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAgICB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9k bGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtREhBVkVfRExGQ05fSCIKKysK KysgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJf d2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgor KworKyAgICBzYXZlX0xJQlM9IiRMSUJTIgorKyAgICBMSUJTPSIkbHRfY3ZfZGxvcGVuX2xpYnMg JExJQlMiCisrCisrICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxv cGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3NlbGYsIFtkbmwKKysJICBfTFRfVFJZX0RM T1BFTl9TRUxGKAorKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLCBsdF9jdl9kbG9wZW5fc2Vs Zj15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubywgbHRfY3ZfZGxvcGVuX3NlbGY9Y3Jv c3MpCisrICAgIF0pCisrCisrICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYiID0geHll czsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwk TERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorKyAgICAgIEFDX0NBQ0hFX0NIRUNL KFt3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0s CisrCSAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljLCBbZG5sCisrCSAgX0xUX1RSWV9ETE9QRU5f U0VMRigKKysJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsIGx0X2N2X2Rsb3Blbl9z ZWxmX3N0YXRpYz15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8sICBsdF9j dl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MpCisrICAgICAgXSkKKysgICAgZmkKKysKKysgICAg Q1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgorKyAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgor KyAgICBMSUJTPSIkc2F2ZV9MSUJTIgorKyAgICA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRf Y3ZfZGxvcGVuX3NlbGYgaW4KKysgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRsdF9jdl9k bG9wZW5fc2VsZiA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsKKysgIGVz YWMKKysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgorKyAgeWVzfG5vKSBl bmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgOzsKKysg ICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OworKyAgZXNhYworK2ZpCisr X0xUX0RFQ0woW2Rsb3Blbl9zdXBwb3J0XSwgW2VuYWJsZV9kbG9wZW5dLCBbMF0sCisrCSBbV2hl dGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkXSkKKytfTFRfREVDTChbZGxvcGVuX3NlbGZdLCBbZW5h YmxlX2Rsb3Blbl9zZWxmXSwgWzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlz IHN1cHBvcnRlZF0pCisrX0xUX0RFQ0woW2Rsb3Blbl9zZWxmX3N0YXRpY10sIFtlbmFibGVfZGxv cGVuX3NlbGZfc3RhdGljXSwgWzBdLAorKwkgW1doZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkg bGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrXSkjIExUX1NZU19ETE9QRU5fU0VMRgor KworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbTFRf U1lTX0RMT1BFTl9TRUxGXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwgW10pCisrCisrCisr IyBfTFRfQ09NUElMRVJfQ19PKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgQ2hlY2sgdG8gc2VlIGlmIG9wdGlvbnMgLWMgYW5kIC1vIGFyZSBzaW11bHRhbmVv dXNseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIuCisrIyBUaGlzIG1hY3JvIGRvZXMgbm90IGhhcmQg Y29kZSB0aGUgY29tcGlsZXIgbGlrZSBBQ19QUk9HX0NDX0NfTy4KKyttNF9kZWZ1bihbX0xUX0NP TVBJTEVSX0NfT10sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRfcmVxdWly ZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01Q SUxFUl0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBm aWxlLiRhY19vYmpleHRdLAorKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28s ICQxKV0sCisrICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCisr ICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBj ZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1v IG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2Nv bXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisr ICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19N RVNTQUdFX0xPR19GRCkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVy cikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NB R0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIg PiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMg b3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIg Y2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysg ICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJEVDSE8gIlgkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3Qu ZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2Nv bmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBv dXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAg ICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisrICAgICBmaQor KyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAkUk0gY29u ZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQv aWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQg b3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMK KysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRl c3QKKysgICAkUk0gY29uZnRlc3QqCisrXSkKKytfTFRfVEFHREVDTChbY29tcGlsZXJfY19vXSwg W2x0X2N2X3Byb2dfY29tcGlsZXJfY19vXSwgWzFdLAorKwlbRG9lcyBjb21waWxlciBzaW11bHRh bmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zP10pCisrXSkjIF9MVF9DT01QSUxFUl9D X08KKysKKysKKysjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKFtUQUdOQU1FXSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4g ZG8gaGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCisrbTRfZGVmdW4oW19M VF9DT01QSUxFUl9GSUxFX0xPQ0tTXSwKKytbbTRfcmVxdWlyZShbX0xUX0VOQUJMRV9MT0NLXSlk bmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKytfTFRfQ09NUElM RVJfQ19PKFskMV0pCisrCisraGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRlc3QgIiRfTFRf VEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSkiID0gbm8gJiYgdGVzdCAiJG5lZWRf bG9ja3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5l ZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIEFDX01TR19DSEVDS0lORyhbaWYgd2Ug Y2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzXSkKKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29u ZnRlc3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9s aW5rcz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5i IDI+JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rl di9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIEFDX01TR19SRVNVTFQoWyRoYXJkX2xpbmtzXSkK KysgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIEFDX01TR19XQVJOKFtg JENDJyBkb2VzIG5vdCBzdXBwb3J0IGAtYyAtbycsIHNvIGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZl XSkKKysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8K KytmaQorK19MVF9ERUNMKFtdLCBbbmVlZF9sb2Nrc10sIFsxXSwgW011c3Qgd2UgbG9jayBmaWxl cyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uP10pCisrXSkjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tT CisrCisrCisrIyBfTFRfQ0hFQ0tfT0JKRElSCisrIyAtLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVm dW4oW19MVF9DSEVDS19PQkpESVJdLAorK1tBQ19DQUNIRV9DSEVDSyhbZm9yIG9iamRpcl0sIFts dF9jdl9vYmpkaXJdLAorK1tybSAtZiAubGlicyAyPi9kZXYvbnVsbAorK21rZGlyIC5saWJzIDI+ L2Rldi9udWxsCisraWYgdGVzdCAtZCAubGliczsgdGhlbgorKyAgbHRfY3Zfb2JqZGlyPS5saWJz CisrZWxzZQorKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4g d2l0aCBhIGRvdC4KKysgIGx0X2N2X29iamRpcj1fbGlicworK2ZpCisrcm1kaXIgLmxpYnMgMj4v ZGV2L251bGxdKQorK29iamRpcj0kbHRfY3Zfb2JqZGlyCisrX0xUX0RFQ0woW10sIFtvYmpkaXJd LCBbMF0sCisrICAgICAgICAgW1RoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlu cyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlc10pZG5sCisrbTRfcGF0dGVybl9hbGxvdyhbTFRfT0JK RElSXSlkbmwKKytBQ19ERUZJTkVfVU5RVU9URUQoTFRfT0JKRElSLCAiJGx0X2N2X29iamRpci8i LAorKyAgW0RlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0b3Jl cyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuXSkKKytdKSMgX0xUX0NIRUNLX09CSkRJUgorKworKwor KyMgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBoYXJkY29kaW5nIGF0dHJpYnV0 ZXMuCisrbTRfZGVmdW4oW19MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSF0sCisrW0FDX01TR19D SEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtc10pCisr X0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KKytpZiB0ZXN0IC1uICIkX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8CisrICAgdGVzdCAtbiAiJF9MVF9U QUdWQVIocnVucGF0aF92YXIsICQxKSIgfHwKKysgICB0ZXN0ICJYJF9MVF9UQUdWQVIoaGFyZGNv ZGVfYXV0b21hdGljLCAkMSkiID0gIlh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNv ZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgorKyAgaWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSkiICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlz bSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAgICAjIGhhdmUg dG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJy YXJ5CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1p bnN0YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBh dGhfdmFyLCAkMSkiICE9IG5vICYmCisrICAgICB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9t aW51c19MLCAkMSkiICE9IG5vOyB0aGVuCisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVz IHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfYWN0aW9uLCAkMSk9cmVsaW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxpbmsgd2l0aG91 dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCisrICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UK KysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhh cmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgX0xUX1RBR1ZBUihoYXJkY29k ZV9hY3Rpb24sICQxKT11bnN1cHBvcnRlZAorK2ZpCisrQUNfTVNHX1JFU1VMVChbJF9MVF9UQUdW QVIoaGFyZGNvZGVfYWN0aW9uLCAkMSldKQorKworK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRj b2RlX2FjdGlvbiwgJDEpIiA9IHJlbGluayB8fAorKyAgIHRlc3QgIiRfTFRfVEFHVkFSKGluaGVy aXRfcnBhdGgsICQxKSIgPSB5ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90 IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkK KysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorK19MVF9UQUdERUNMKFtdLCBb aGFyZGNvZGVfYWN0aW9uXSwgWzBdLAorKyAgICBbSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxp YnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGVdKQorK10pIyBfTFRfTElOS0VSX0hBUkRDT0RF X0xJQlBBVEgKKysKKysKKysjIF9MVF9DTURfU1RSSVBMSUIKKysjIC0tLS0tLS0tLS0tLS0tLS0K KyttNF9kZWZ1bihbX0xUX0NNRF9TVFJJUExJQl0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX0VH UkVQXSkKKytzdHJpcGxpYj0KKytvbGRfc3RyaXBsaWI9CisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0 aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGVdKQorK2lmIHRlc3QgLW4gIiRTVFJJ UCIgJiYgJFNUUklQIC1WIDI+JjEgfCAkR1JFUCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVu CisrICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0 cmlwLWRlYnVnIgorKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0t c3RyaXAtdW5uZWVkZWQiCisrICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorK2Vsc2UKKysjIEZJWE1F IC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91 Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiopCisrICAgIGlmIHRlc3QgLW4gIiRT VFJJUCIgOyB0aGVuCisrICAgICAgc3RyaXBsaWI9IiRTVFJJUCAteCIKKysgICAgICBvbGRfc3Ry aXBsaWI9IiRTVFJJUCAtUyIKKysgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorKyAgICBlbHNl CisrICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICBmaQorKyAgICA7OworKyAgKikKKysg ICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0wo W10sIFtvbGRfc3RyaXBsaWJdLCBbMV0sIFtDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXNdKQor K19MVF9ERUNMKFtdLCBbc3RyaXBsaWJdLCBbMV0pCisrXSkjIF9MVF9DTURfU1RSSVBMSUIKKysK KysKKysjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoW1RBR10pCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgUE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3Rp Y3MKKyttNF9kZWZ1bihbX0xUX1NZU19EWU5BTUlDX0xJTktFUl0sCisrW0FDX1JFUVVJUkUoW0FD X0NBTk9OSUNBTF9IT1NUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisr bTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShbX0xU X0RFQ0xfT0JKRFVNUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKytBQ19N U0dfQ0hFQ0tJTkcoW2R5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljc10pCisrbTRfaWYoWyQx XSwKKysJW10sIFsKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgY2FzZSAkaG9zdF9v cyBpbgorKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7Cisr ICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7CisrICBlc2FjCisrICBsdF9zZWFy Y2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwg JFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAorKyAgaWYgJEVDSE8gIiRs dF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAj IGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2Vw YXJhdG9yCisrICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2Vw YXJhdG9yIChpLmUuICI6IikgLSBpdCBpcworKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9m IGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKKysgICAgIyBv a2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJv YmxlbWF0aWMuCisrICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgIGVsc2UKKysgICAgbHRfc2VhcmNoX3Bh dGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRI X1NFUEFSQVRPUi8gL2ciYAorKyAgZmkKKysgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBz ZXBhcmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0CisrICAjIGFuZCBhZGQg bXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KKysgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVj PQorKyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXBy aW50LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAKKysgIGZvciBsdF9zeXNfcGF0aCBp biAkbHRfc2VhcmNoX3BhdGhfc3BlYzsgZG8KKysgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRo LyRsdF9tdWx0aV9vc19kaXIiOyB0aGVuCisrICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3Nw ZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29z X2RpciIKKysgICAgZWxzZQorKyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAorKwls dF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRs dF9zeXNfcGF0aCIKKysgICAgZmkKKysgIGRvbmUKKysgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRF Q0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsg RlM9Ii98XG4iO30geworKyAgbHRfZm9vPSIiOworKyAgbHRfY291bnQ9MDsKKysgIGZvciAobHRf aSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7CisrICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRf aSAhPSAiLiIpIHsKKysgICAgICBpZiAoJGx0X2kgPT0gIi4uIikgeworKyAgICAgICAgbHRfY291 bnQrKzsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKKysg ICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287CisrICAgICAgICB9IGVsc2UgeworKyAg ICAgICAgICBsdF9jb3VudC0tOworKyAgICAgICAgfQorKyAgICAgIH0KKysgICAgfQorKyAgfQor KyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW1tsdF9mb29dXSsrOyB9CisrICBpZiAobHRf ZnJlcVtbbHRfZm9vXV0gPT0gMSkgeyBwcmludCBsdF9mb287IH0KKyt9J2AKKysgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCisrZWxzZQorKyAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgor K2ZpXSkKKytsaWJyYXJ5X25hbWVzX3NwZWM9CisrbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKKytz b25hbWVfc3BlYz0KKytzaHJleHRfY21kcz0iLnNvIgorK3Bvc3RpbnN0YWxsX2NtZHM9CisrcG9z dHVuaW5zdGFsbF9jbWRzPQorK2ZpbmlzaF9jbWRzPQorK2ZpbmlzaF9ldmFsPQorK3NobGlicGF0 aF92YXI9Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KKyt2ZXJzaW9uX3R5 cGU9bm9uZQorK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKytzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKKytuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgor K2hhcmRjb2RlX2ludG9fbGlicz1ubworKworKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0 byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgorKyMgZmxhZ3Mg dG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cworK25lZWRfdmVyc2lvbj11bmtub3duCisrCisr Y2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJGxpYm5hbWUuYScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAorKworKyAgIyBBSVggMyBo YXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRv IHRoZSBuYW1lLgorKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIDs7CisrCisrYWl4W1s0LTldXSopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAg ICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45 NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVw ZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAg ICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJy YXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4g IFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBw cmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5b WzAxXV0gfCBhaXg0LltbMDFdXS4qKQorKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4g MiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCisrCSAgIGVjaG8g JyB5ZXMgJworKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+ IC9kZXYvbnVsbDsgdGhlbgorKwk6CisrICAgICAgZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5v CisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisrICAgICMgQUlYIChvbiBQb3dlciop IGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRj b2RlIGNvcnJlY3QKKysgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBj YW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bworKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlv bmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3Vz ZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1l IGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAj IGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJl IG5vdAorKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKKysgICAgZWxzZQorKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9u IGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIg d2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCisrICAgICAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAg ZmkKKysgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICBmaQorKyAgOzsKKysKKythbWlnYW9z KikKKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBwb3dlcnBjKQorKyAgICAjIFNpbmNlIEp1bHkg MjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCisrICAgICMg V2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRv IHRoZSBjb21waWxlbGluZS4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIDs7CisrICBtNjhrKQor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwor KyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJz LgorKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAy Pi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVe LiovXChbW14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8k e2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIg JHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGli bmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgICA7OworKyAgZXNhYworKyAg OzsKKysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhf dmFyPUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpW1s0NV1dKikKKysgIHZlcnNpb25fdHlw ZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGli IC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9s aWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3Iv bG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vz ci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGlu ayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQt Y29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBw dzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0i LmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBj YXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxw dzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxs LmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3Rp bnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBc JHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydc JHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbGRpcj0kZGVz dGRpci9gZGlybmFtZSBcJGRscGF0aGB+CisrICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGly IC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8k ZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgaWYgdGVz dCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4K KysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQg XCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwg Mj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0k ZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiop CisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWIn CisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9j eWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4 fSR7c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp YiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgorKyAgICAgIDs7CisrICAgIG1pbmd3 KiB8IGNlZ2NjKikKKysgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHBy ZWZpeAorKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRT RUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJe bGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisr ICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgWyRHUkVQICc7W2Mt ekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJs eSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2Ms IGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAg ICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBX ZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0 aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lh bGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1w LAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0 aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNlCisr ICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorKyAgICAgIGZp CisrICAgICAgOzsKKysgICAgcHczMiopCisrICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJl Zml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAk e2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAt ZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysg ICAgZXNhYworKyAgICA7OworKworKyAgKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZp eH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFt aWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2Vh cmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0 aF92YXI9UEFUSAorKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19s aW5rZXI9IiRob3N0X29zIGR5bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRf ZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVk X2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92 YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55 ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworK200X2lmKFskMV0sIFtdLFsKKysgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xv Y2FsL2xpYiJdKQorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGli IC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0 JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworK2ZyZWVic2Qx KikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5 KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBs ZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAg aWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNy L2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJl ZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7 CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0Cisr ICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg ICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVz YWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGlu CisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysg ICAgOzsKKysgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQorKyAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSog fCBcCisrICBmcmVlYnNkNC5bWzAtNV1dIHwgZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0 LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0 LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7Owor KworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisr aHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9u ZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAj IGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAg bmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1 IGluCisrICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50 b19saWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAg ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwv bGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysg ICAgZmkKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYworKyAgICA7OworKyAgaHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisr ICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29z IGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxk IHdlIGhhbmRsZSBTSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Nj cy9saWIvcGEyMF82NCIKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcK KysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zh cj1TSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlz IHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg ICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hh cmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1 NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJpeFtbMy05XV0qKQorKyAgdmVyc2lvbl90eXBlPWxp bnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxp a2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7Cisr CisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysg ICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OworKyAgICAqKQorKwlpZiB0 ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCisrCQl2ZXJzaW9uX3R5cGU9bGlu dXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgKKysJZmkgOzsKKysgIGVzYWMKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg aXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3VmZj0gc2hsaWJzdWZmPQorKyAgICA7Owor KyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVz ZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxm MzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsK KysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikK KysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKKysgICAgKi02 NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCisrICAgICAgbGlic3VmZj02 NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKysgICAgKikgbGlic3VmZj0gc2hsaWJz dWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVzYWMK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIK KysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7 bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworKyMgTm8gc2hh cmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KKytsaW51eCpv bGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQorKyAgZHluYW1pY19saW5rZXI9bm8K KysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNkKi1n bnUpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQ QVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgIyBTb21lIGJp bnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICisrICBzYXZlX0xERkxBR1M9 JExERkxBR1MKKysgIHNhdmVfbGliZGlyPSRsaWJkaXIKKysgIGV2YWwgImxpYmRpcj0vZm9vOyB3 bD1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKVwiOyBcCisrICAgICAgIExE RkxBR1M9XCJcJExERkxBR1MgJF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpXCIiCisrICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisrICAg IFtBU19JRihbICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwg Z3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbF0sCisrICAgICAgIFtzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzXSldKQorKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICBs aWJkaXI9JHNhdmVfbGliZGlyCisrCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGws IHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQg dG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxl ZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysKKysgICMgQWRkIEFCSS1zcGVjaWZpYyBk aXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0aC4KKysgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgorKworKyAgIyBB cHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3Qg LWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisrICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVk ZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFxbJF0y KSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRdMDsgc2tpcCA9IDA7IH0nIDwg L2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9b OiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdg CisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMgJGx0X2xkX2V4dHJhIgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAv bGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBj LCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRo ZQorKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBj cm9zcyBjb21waWxlcnMsCisrICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5 bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRp c2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0 aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2Vy PSdHTlUvTGludXggbGQuc28nCisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9 c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBl Y2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5p c2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBk eW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hh cmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAg ZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK25l d3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKKysgIDs7CisrCisrKm50byogfCAqcW54KikKKysgIHZlcnNpb25fdHlwZT1xbngKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBkeW5hbWljX2xpbmtlcj0n bGRxbnguc28nCisrICA7OworKworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisr ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3Qp ICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3Bl bmJzZDMuMyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKQkJCQlu ZWVkX3ZlcnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRj b25maWcgLW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBp ZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwg dGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisr ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBvcGVuYnNkMi5bWzg5XV0gfCBvcGVuYnNkMi5b Wzg5XV0uKikKKysJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCTs7CisrICAgICAg KikKKysJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKwk7OworKyAgICAgIGVzYWMK KysgIGVsc2UKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgZmkKKysg IDs7CisrCisrb3MyKikKKysgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCisrICBzaHJleHRfY21kcz0i LmRsbCIKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKKysgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxk LmV4ZScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQq IHwgb3NmNSopCisrICB2ZXJzaW9uX3R5cGU9b3NmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNy L2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIv c2hsaWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyIKKysgIDs7CisrCisrcmRvcyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsK KysKKytzb2xhcmlzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisr ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJh cmllcyBhcmUgZXhlY3V0YWJsZQorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicK KysgIDs7CisrCisrc3Vub3M0KikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJc JFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IGZpCisrICBuZWVkX3ZlcnNpb249eWVzCisrICA7OworKworK3N5c3Y0IHwgc3lzdjQuMyopCisr ICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X3ZlbmRvciBpbgorKyAgICBzbmkpCisrICAg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCisrICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysgICAgICA7OworKyAgICBzaWVt ZW5zKQorKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIG1vdG9yb2xh KQorKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAg ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCisrICAgICAgOzsKKysgIGVz YWMKKysgIDs7CisrCisrc3lzdjQqTVAqKQorKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgor KyAgICB2ZXJzaW9uX3R5cGU9bGludXgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFt ZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRf ZXh0fS4kbWFqb3InCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBmaQor KyAgOzsKKysKKytzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3Bl blVOSVgqIHwgc3lzdjQqdXcyKikKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0geWVzOyB0aGVuCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9s aWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJworKyAgZWxzZQorKyAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIHNjbzMuMnY1KikKKysgICAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgorKwk7OworKyAg ICBlc2FjCisrICBmaQorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJwor KyAgOzsKKysKKyt0cGYqKQorKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZl cnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK3V0czQqKQor KyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysg IDs7CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCisrdGVzdCAiJGR5 bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt2YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisraWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIk dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEgg TElCUkFSWV9QQVRIIgorK2ZpCisrCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i JGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorK2lmIHRlc3QgIiR7bHRfY3Zf c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisr ZmkKKysKKytfTFRfREVDTChbXSwgW3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rXSwgWzFdLAor KyAgICBbVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3 cmFwcGVyIHNjcmlwdHMgYW5kCisrICAgIHJlc3RvcmVkIGF0IGxpbmsgdGltZV0pCisrX0xUX0RF Q0woW10sIFtuZWVkX2xpYl9wcmVmaXhdLCBbMF0sCisrICAgIFtEbyB3ZSBuZWVkIHRoZSAibGli IiBwcmVmaXggZm9yIG1vZHVsZXM/XSkKKytfTFRfREVDTChbXSwgW25lZWRfdmVyc2lvbl0sIFsw XSwgW0RvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/XSkKKytfTFRfREVDTChbXSwg W3ZlcnNpb25fdHlwZV0sIFswXSwgW0xpYnJhcnkgdmVyc2lvbmluZyB0eXBlXSkKKytfTFRfREVD TChbXSwgW3J1bnBhdGhfdmFyXSwgWzBdLCAgW1NoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2 YXJpYWJsZV0pCisrX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfdmFyXSwgWzBdLFtTaGFyZWQgbGli cmFyeSBwYXRoIHZhcmlhYmxlXSkKKytfTFRfREVDTChbXSwgW3NobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aF0sIFswXSwKKysgICAgW0lzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhh cmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD9dKQorK19MVF9ERUNMKFtdLCBbbGlibmFtZV9z cGVjXSwgWzFdLCBbRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXhdKQorK19MVF9ERUNMKFtd LCBbbGlicmFyeV9uYW1lc19zcGVjXSwgWzFdLAorKyAgICBbW0xpc3Qgb2YgYXJjaGl2ZSBuYW1l cy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCisrICAg IFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5B TUVdXSkKKytfTFRfREVDTChbXSwgW3NvbmFtZV9zcGVjXSwgWzFdLAorKyAgICBbW1RoZSBjb2Rl ZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lXV0p CisrX0xUX0RFQ0woW10sIFtwb3N0aW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0 byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQorK19MVF9ERUNM KFtdLCBbcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0 ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX0RFQ0woW10sIFtm aW5pc2hfY21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9v bCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeV0pCisrX0xUX0RFQ0woW10sIFtm aW5pc2hfZXZhbF0sIFsxXSwKKysgICAgW1tBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5n bGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKKysgICAgbm90IHNob3duXV0pCisr X0xUX0RFQ0woW10sIFtoYXJkY29kZV9pbnRvX2xpYnNdLCBbMF0sCisrICAgIFtXaGV0aGVyIHdl IHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzXSkKKytfTFRfREVD TChbXSwgW3N5c19saWJfc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW0NvbXBpbGUtdGlt ZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10pCisrX0xUX0RFQ0woW10sIFtzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAgW1J1bi10aW1lIHN5c3RlbSBzZWFy Y2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKKytdKSMgX0xUX1NZU19EWU5BTUlDX0xJTktFUgorKwor KworKyMgX0xUX1BBVEhfVE9PTF9QUkVGSVgoVE9PTCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgc2hhcmVk IGxpYnJhcnkKKytBQ19ERUZVTihbX0xUX1BBVEhfVE9PTF9QUkVGSVhdLAorK1ttNF9yZXF1aXJl KFtfTFRfREVDTF9FR1JFUF0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQorK0FDX0NB Q0hFX1ZBTChsdF9jdl9wYXRoX01BR0lDX0NNRCwKKytbY2FzZSAkTUFHSUNfQ01EIGluCisrW1tc XC8qXSB8ICA/OltcXC9dKl0pCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyop CisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZT IjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2RubCAkYWNfZHVtbXkgZm9yY2VzIHNwbGl0dGluZyBv biBjb25zdGFudCB1c2VyLXN1cHBsaWVkIHBhdGhzLgorK2RubCBQT1NJWC4yIHdvcmQgc3BsaXR0 aW5nIGlzIGRvbmUgb25seSBvbiB0aGUgb3V0cHV0IG9mIHdvcmQgZXhwYW5zaW9ucywKKytkbmwg bm90IGV2ZXJ5IHdvcmQuICBUaGlzIGNsb3NlcyBhIGxvbmdzdGFuZGluZyBzaCBzZWN1cml0eSBo b2xlLgorKyAgYWNfZHVtbXk9Im00X2lmKFskMl0sICwgJFBBVEgsIFskMl0pIgorKyAgZm9yIGFj X2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0 IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJDE7IHRo ZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKKysgICAgICBpZiB0 ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hl Y2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4 cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1B R0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNf Y21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAi JGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQor KwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxp YnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNf Y21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioq IFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQg bGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBv ZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVz LCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3 aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQor KyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdl ciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRvb2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBm aSA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQor KyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIK KysgIDs7CisrZXNhY10pCisrTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYg dGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJE1BR0lDX0NNRCkK KytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5vKQorK2ZpCisrX0xUX0RFQ0woW10sIFtNQUdJQ19D TURdLCBbMF0sCisrCSBbVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNf Y21kIGJlZ2lucyB3aXRoICJmaWxlIl0pZG5sCisrXSkjIF9MVF9QQVRIX1RPT0xfUFJFRklYCisr CisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtfTFRfUEFU SF9UT09MX1BSRUZJWF0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgorK2RubCBBQ19ERUZVTihbQUNfUEFUSF9UT09MX1BSRUZJWF0sIFtdKQorKworKworKyMgX0xU X1BBVEhfTUFHSUMKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdo aWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQorK200X2RlZnVuKFtfTFRfUEFUSF9N QUdJQ10sCisrW19MVF9QQVRIX1RPT0xfUFJFRklYKCR7YWNfdG9vbF9wcmVmaXh9ZmlsZSwgL3Vz ci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCkKKytpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJ Q19DTUQiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAg IF9MVF9QQVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgp CisrICBlbHNlCisrICAgIE1BR0lDX0NNRD06CisrICBmaQorK2ZpCisrXSkjIF9MVF9QQVRIX01B R0lDCisrCisrCisrIyBMVF9QQVRIX0xECisrIyAtLS0tLS0tLS0tCisrIyBmaW5kIHRoZSBwYXRo bmFtZSB0byB0aGUgR05VIG9yIG5vbi1HTlUgbGlua2VyCisrQUNfREVGVU4oW0xUX1BBVEhfTERd LAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklD QUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKyttNF9y ZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlk bmwKKysKKytBQ19BUkdfV0lUSChbZ251LWxkXSwKKysgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdp dGgtZ251LWxkXSwKKysJW2Fzc3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBAPDpAZGVm YXVsdD1ub0A6PkBdKV0sCisrICAgIFt0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9s ZD15ZXNdLAorKyAgICBbd2l0aF9nbnVfbGQ9bm9dKWRubAorKworK2FjX3Byb2c9bGQKKytpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFt ZT1sZCBnaXZlcyBhIHBhdGguCisrICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRD Q10pCisrICBjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMg YSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3By b2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysg ICopCisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysg IGVzYWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMu CisrICAgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1b W14vXV0qL1wuXC4vJworKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAor KyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAorKyAg ICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251 bGwgMj4mMTsgZG8KKysJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVs dCUvJSJgCisrICAgICAgZG9uZQorKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9n IgorKyAgICAgIDs7CisrICAiIikKKysgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdl IGFyZW4ndCB1c2luZyBHQ0MuCisrICAgIGFjX3Byb2c9bGQKKysgICAgOzsKKysgICopCisrICAg ICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFU SC4KKysgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorKyAgICA7OworKyAgZXNhYworK2VsaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgR05V IGxkXSkKKytlbHNlCisrICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKKytmaQor K0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX0xELAorK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisr ICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIg aW4gJFBBVEg7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNf ZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0 ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9w YXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBw cm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1 dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAg ICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJl ZmVyLgorKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBp bgorKyAgICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9 IG5vICYmIGJyZWFrCisrCTs7CisrICAgICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5 ZXMgJiYgYnJlYWsKKysJOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9 IiRsdF9zYXZlX2lmcyIKKytlbHNlCisrICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorK2ZpXSkKKytMRD0iJGx0X2N2X3Bh dGhfTEQiCisraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVCgkTEQpCisr ZWxzZQorKyAgQUNfTVNHX1JFU1VMVChubykKKytmaQorK3Rlc3QgLXogIiRMRCIgJiYgQUNfTVNH X0VSUk9SKFtubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSF0pCisrX0xUX1BBVEhfTERf R05VCisrQUNfU1VCU1QoW0xEXSkKKysKKytfTFRfVEFHREVDTChbXSwgW0xEXSwgWzFdLCBbVGhl IGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllc10pCisrXSkjIExUX1BBVEhfTEQKKysKKysj IE9sZCBuYW1lczoKKytBVV9BTElBUyhbQU1fUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKKytBVV9B TElBUyhbQUNfUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dh cmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBTV9QUk9HX0xEXSwgW10pCisrZG5s IEFDX0RFRlVOKFtBQ19QUk9HX0xEXSwgW10pCisrCisrCisrIyBfTFRfUEFUSF9MRF9HTlUKKysj LSAtLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfUEFUSF9MRF9HTlVdLAorK1tBQ19DQUNI RV9DSEVDSyhbaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGRdLCBsdF9jdl9wcm9nX2dudV9s ZCwKKytbIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29t ZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxg IGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKKysg IDs7CisrKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPW5vCisrICA7OworK2VzYWNdKQorK3dpdGhf Z251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorK10pIyBfTFRfUEFUSF9MRF9HTlUKKysKKysKKysj IF9MVF9DTURfUkVMT0FECisrIyAtLS0tLS0tLS0tLS0tLQorKyMgZmluZCByZWxvYWQgZmxhZyBm b3IgbGlua2VyCisrIyAgIC0tIFBPUlRNRSBTb21lIGxpbmtlcnMgbWF5IG5lZWQgYSBkaWZmZXJl bnQgcmVsb2FkIGZsYWcuCisrbTRfZGVmdW4oW19MVF9DTURfUkVMT0FEXSwKKytbQUNfQ0FDSEVf Q0hFQ0soW2ZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXNdLAorKyAgbHRfY3Zf bGRfcmVsb2FkX2ZsYWcsCisrICBbbHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJ10pCisrcmVsb2Fk X2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8 ICIgIiopIDs7CisrKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3Jl bG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNl ICRob3N0X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgorKyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIg LW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSck TEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsK Kytlc2FjCisrX0xUX0RFQ0woW10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUg cmVsb2FkYWJsZSBvYmplY3QgZmlsZXNdKWRubAorK19MVF9ERUNMKFtdLCBbcmVsb2FkX2NtZHNd LCBbMl0pZG5sCisrXSkjIF9MVF9DTURfUkVMT0FECisrCisrCisrIyBfTFRfQ0hFQ0tfTUFHSUNf TUVUSE9ECisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBob3cgdG8gY2hlY2sgZm9yIGxp YnJhcnkgZGVwZW5kZW5jaWVzCisrIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1p YyBsaWJyYXJ5IGNoYXJhY3RlcmlzdGljcworK200X2RlZnVuKFtfTFRfQ0hFQ0tfTUFHSUNfTUVU SE9EXSwKKytbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKQorK200X3JlcXVpcmUoW19MVF9E RUNMX09CSkRVTVBdKQorK0FDX0NBQ0hFX0NIRUNLKFtob3cgdG8gcmVjb2duaXplIGRlcGVuZGVu dCBsaWJyYXJpZXNdLAorK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kLAorK1tsdF9jdl9maWxl X21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKKytsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KKyts dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicKKysjIE5lZWQgdG8gc2V0IHRoZSBw cmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKKysjIGludGVy bGlicmFyeSBkZXBlbmRlbmNpZXMuCisrIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBw b3J0ZWQuCisrIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQg d2UgcmVhbGx5IGRvbid0IGtub3cuCisrIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMg cGFzc2VkIHdpdGggbm8gY2hlY2tzLgorKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFr aW5nIHRlc3QgcHJvZ3JhbS4KKysjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkg bG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCisrIyB3aGljaCByZXNwb25kcyB0byB0 aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KKysjIElmIHlv dSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90 IHN1cmUKKysjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9i YWJseSB3YW50IHRoaXMgb25lLgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXhbWzQtOV1dKikK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2Jlb3Mq KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrYnNk aVtbNDVdXSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYg W1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikn CisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKysgIGx0X2N2X2Zp bGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCisrICA7OworKworK2N5Z3dpbiopCisr ICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFp bi5zaAorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNo aXZlIGltcG9ydHxeeDg2IERMTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMy X2xpYmlkJworKyAgOzsKKysKKyttaW5ndyogfCBwdzMyKikKKysgICMgQmFzZSBNU1lTL01pbkdX IGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKysgICMgZnVuY193 aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24g J29iamR1bXAnLAorKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1 c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KKysgIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54 ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdm dW5jX3dpbjMyX2xpYmlkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYp PycKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysgIDs7 CisrCisrY2VnY2MpCisrICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAn LiBTZWUgbWluZ3cqLgorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg ZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKKysgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIDs7CisrCisrZGFyd2luKiB8IHJo YXBzb2R5KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7Owor KworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAt IHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0X2NwdSBp bgorKyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9m IE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGgg b2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbWzMt OV1dODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnknCisrICAgICAgbHRf Y3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNf dGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28uKmAKKysgICAgICA7OworKyAgICBlc2Fj CisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICBm aQorKyAgOzsKKysKKytnbnUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKKysgIDs7CisrCisraHB1eDEwLjIwKiB8IGhwdXgxMSopCisrICBsdF9jdl9maWxlX21hZ2lj X2NtZD0vdXNyL2Jpbi9maWxlCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1b WzAtOV1dfEVMRi1bWzAtOV1dW1swLTldXSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysg ICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysg ICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBbbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3Qg ZmlsZSAtIFBBLVJJU0MgWzAtOV0uWzAtOV0nXQorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3Rf ZmlsZT0vdXNyL2xpYi9wYTIwXzY0L2xpYmMuc2wKKysgICAgOzsKKysgICopCisrICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1d fFBBLVJJU0NbWzAtOV1dLltbMC05XV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7 OworKworK2ludGVyaXhbWzMtOV1dKikKKysgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVy aXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKKysgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298XC5hKSQnCisr ICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRMRCBpbgor KyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgKi1uMzJ8KiItbjMyICIpIGxp Ym1hZ2ljPU4zMjs7CisrICAqLTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7CisrICAqKSBs aWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICBlc2FjCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGlu dXgqIHwgaypic2QqLWdudSkKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICA7OworKworK25ldGJzZCopCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0r fF9waWNcLmEpJCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21h dGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysK KytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxG IFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJwor KyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7OworKworKypudG8qIHwgKnFueCop CisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVu YnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJw YyI7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4g L2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfFwuc298X3BpY1wuYSkkJworKyAg ZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGli W1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8X3BpY1wuYSkkJworKyAgZmkKKysgIDs7 CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKKysgIDs7CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysg IGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0Ig KHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bWzAtOV1dW1swLTldXSogVmVyc2lvbiBbWzAt OV1dJworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJj LnNvKmAKKysgICAgOzsKKysgIG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2lj IEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMg bGliICknCisrICAgIDs7CisrICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmlu L2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBb WzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMK KysgIDs7CisrCisrdHBmKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICA7OworK2VzYWMKKytdKQorK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2Nt ZAorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAorK3Rl c3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5r bm93bgorKworK19MVF9ERUNMKFtdLCBbZGVwbGlic19jaGVja19tZXRob2RdLCBbMV0sCisrICAg IFtNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQg b2JqZWN0c10pCisrX0xUX0RFQ0woW10sIFtmaWxlX21hZ2ljX2NtZF0sIFsxXSwKKysgICAgW0Nv bW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gImZpbGVfbWFnaWMiXSkK KytdKSMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAorKworKworKyMgTFRfUEFUSF9OTQorKyMgLS0t LS0tLS0tLQorKyMgZmluZCB0aGUgcGF0aG5hbWUgdG8gYSBCU0QtIG9yIE1TLWNvbXBhdGlibGUg bmFtZSBsaXN0ZXIKKytBQ19ERUZVTihbTFRfUEFUSF9OTV0sCisrW0FDX1JFUVVJUkUoW0FDX1BS T0dfQ0NdKWRubAorK0FDX0NBQ0hFX0NIRUNLKFtmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5h bWUgbGlzdGVyIChubSldLCBsdF9jdl9wYXRoX05NLAorK1tpZiB0ZXN0IC1uICIkTk0iOyB0aGVu CisrICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKysgIGx0X2N2X3BhdGhfTk09 IiROTSIKKytlbHNlCisrICBsdF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKKysg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7 IHRoZW4KKysgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKKysgIGZpCisr ICBmb3IgbHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsgZG8KKysgICAgbHRfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vz ci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KKysgICAgICBJRlM9 IiRsdF9zYXZlX2lmcyIKKysgICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAg ICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgorKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBf bm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KKysJIyBDaGVjayB0byBz ZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZsYWcuCisrCSMgQWRkaW5nIHRoZSBg c2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6Cisr CSMgICBubTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQKKysJIyBUcnU2NCdzIG5tIGNvbXBs YWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCisrCWNhc2UgYCIk dG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkqL2Rldi9udWxsKiB8 IConSW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCisrCSAgbHRfY3ZfcGF0aF9OTT0iJHRt cF9ubSAtQiIKKysJICBicmVhaworKwkgIDs7CisrCSopCisrCSAgY2FzZSBgIiR0bXBfbm0iIC1w IC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisrCSAgKi9kZXYvbnVsbCopCisrCSAgICBs dF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgorKwkgICAgYnJlYWsKKysJICAgIDs7CisrCSAgKikK KysJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRo ZSBmaXJzdCBtYXRjaCwgYnV0CisrCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0 byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncworKwkgICAgOzsKKysJICBlc2FjCisr CSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgIGRvbmUKKysgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrICBkb25lCisrICA6ICR7bHRfY3ZfcGF0aF9OTT1ub30KKytmaV0pCisraWYgdGVzdCAi JGx0X2N2X3BhdGhfTk0iICE9ICJubyI7IHRoZW4KKysgIE5NPSIkbHRfY3ZfcGF0aF9OTSIKKytl bHNlCisrICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9v ayBmb3IgZHVtcGJpbi4KKysgIEFDX0NIRUNLX1RPT0xTKERVTVBCSU4sIFsiZHVtcGJpbiAtc3lt Ym9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiXSwgOikKKysgIEFDX1NVQlNUKFtEVU1QQklOXSkK KysgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4KKysgICAgTk09IiREVU1QQklOIgor KyAgZmkKKytmaQorK3Rlc3QgLXogIiROTSIgJiYgTk09bm0KKytBQ19TVUJTVChbTk1dKQorK19M VF9ERUNMKFtdLCBbTk1dLCBbMV0sIFtBIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rl cl0pZG5sCisrCisrQUNfQ0FDSEVfQ0hFQ0soW3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZh Y2VdLCBbbHRfY3Zfbm1faW50ZXJmYWNlXSwKKysgIFtsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBu bSIKKysgIGVjaG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAor KyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGFjX2NvbXBpbGVcIiIgPiZBU19N RVNTQUdFX0xPR19GRCkKKysgIChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisr ICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgIChldmFsIGVjaG8gIlwi XCRhc19tZTpfX29saW5lX186ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiZB U19NRVNTQUdFX0xPR19GRCkKKysgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIi IDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFT X01FU1NBR0VfTE9HX0ZECisrICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiBvdXRw dXRcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysgIGNhdCBjb25mdGVzdC5vdXQgPiZBU19NRVNT QUdFX0xPR19GRAorKyAgaWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVz dC5vdXQgPiAvZGV2L251bGw7IHRoZW4KKysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1w YmluIgorKyAgZmkKKysgIHJtIC1mIGNvbmZ0ZXN0Kl0pCisrXSkjIExUX1BBVEhfTk0KKysKKysj IE9sZCBuYW1lczoKKytBVV9BTElBUyhbQU1fUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKKytBVV9B TElBUyhbQUNfUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dh cmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBTV9QUk9HX05NXSwgW10pCisrZG5s IEFDX0RFRlVOKFtBQ19QUk9HX05NXSwgW10pCisrCisrCisrIyBMVF9MSUJfTQorKyMgLS0tLS0t LS0KKysjIGNoZWNrIGZvciBtYXRoIGxpYnJhcnkKKytBQ19ERUZVTihbTFRfTElCX01dLAorK1tB Q19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrTElCTT0KKytjYXNlICRob3N0IGlu CisrKi0qLWJlb3MqIHwgKi0qLWN5Z3dpbiogfCAqLSotcHczMiogfCAqLSotZGFyd2luKikKKysg ICMgVGhlc2Ugc3lzdGVtIGRvbid0IGhhdmUgbGlibSwgb3IgZG9uJ3QgbmVlZCBpdAorKyAgOzsK KysqLW5jci1zeXN2NC4zKikKKysgIEFDX0NIRUNLX0xJQihtdywgX213dmFsaWRjaGVja2wsIExJ Qk09Ii1sbXciKQorKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iJExJQk0gLWxtIikKKysg IDs7CisrKikKKysgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09Ii1sbSIpCisrICA7OworK2Vz YWMKKytBQ19TVUJTVChbTElCTV0pCisrXSkjIExUX0xJQl9NCisrCisrIyBPbGQgbmFtZToKKytB VV9BTElBUyhbQUNfQ0hFQ0tfTElCTV0sIFtMVF9MSUJfTV0pCisrZG5sIGFjbG9jYWwtMS40IGJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sIFtd KQorKworKworKyMgX0xUX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfQ09NUElMRVJfTk9fUlRUSV0s CisrW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorKworK19MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysKKytpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgorKyAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh ZywgJDEpPScgLWZuby1idWlsdGluJworKworKyAgX0xUX0NPTVBJTEVSX09QVElPTihbaWYgJGNv bXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLAorKyAgICBsdF9jdl9w cm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucywKKysgICAgWy1mbm8tcnR0aSAtZm5vLWV4Y2Vw dGlvbnNdLCBbXSwKKysgICAgW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGlu X2ZsYWcsICQxKT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcs ICQxKSAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIl0pCisrZmkKKytfTFRfVEFHREVDTChbbm9f YnVpbHRpbl9mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnXSwgWzFdLAor KwlbQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9uc10pCisrXSkjIF9M VF9DT01QSUxFUl9OT19SVFRJCisrCisrCisrIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCisrIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DTURfR0xPQkFMX1NZTUJPTFNd LAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNf UFJPR19DQ10pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCisrQUNfUkVRVUlSRShb TFRfUEFUSF9MRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKyttNF9yZXF1 aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0p ZG5sCisrCisrIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUg Zm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQg dG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3RdKQorK0FDX0NBQ0hFX1ZB TChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sCisrWworKyMgVGhlc2UgYXJlIHNhbmUg ZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1Ro ZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEg OyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNv ZGVzLgorK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKKysKKysjIFJlZ2V4cCB0byBtYXRjaCBzeW1i b2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KKytzeW1wYXQ9J1woW1tf QS1aYS16XV1bW19BLVphLXowLTldXSpcKScKKysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMg dmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0nW1tCQ0RU XV0nCisrICA7OworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHN5bWNv ZGU9J1tbQUJDREdJU1RXXV0nCisrICA7OworK2hwdXgqKQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1 IiA9IGlhNjQ7IHRoZW4KKysgICAgc3ltY29kZT0nW1tBQkNERUdSU1RdXScKKysgIGZpCisrICA7 OworK2lyaXgqIHwgbm9uc3RvcHV4KikKKysgIHN5bWNvZGU9J1tbQkNERUdSU1RdXScKKysgIDs7 Cisrb3NmKikKKysgIHN5bWNvZGU9J1tbQkNERUdRUlNUXV0nCisrICA7OworK3NvbGFyaXMqKQor KyAgc3ltY29kZT0nW1tCRFJUXV0nCisrICA7OworK3NjbzMuMnY1KikKKysgIHN5bWNvZGU9J1tb RFRdXScKKysgIDs7Cisrc3lzdjQuMnV3MiopCisrICBzeW1jb2RlPSdbW0RUXV0nCisrICA7Owor K3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICBzeW1jb2RlPSdb W0FCRFRdXScKKysgIDs7Cisrc3lzdjQpCisrICBzeW1jb2RlPSdbW0RGTlNUVV1dJworKyAgOzsK Kytlc2FjCisrCisrIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFy ZCBzeW1ib2wgY29kZXMuCisrY2FzZSBgJE5NIC1WIDI+JjFgIGluCisrKkdOVSogfCAqJ3dpdGgg QkZEJyopCisrICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScgOzsKKytlc2FjCisrCisrIyBUcmFu c2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlv bi4KKysjIFNvbWUgc3lzdGVtcyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRhdGEgYW5kIGNvZGUgc3lt Ym9scyBkaWZmZXJlbnRseSwKKysjIHNvIHVzZSB0aGlzIGdlbmVyYWwgYXBwcm9hY2guCisrbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkk L2V4dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBj aGFyIFwxOy9wJyIKKysKKysjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50 byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxc IlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChb W14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgorK2x0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBc KFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNv ZGUqIFwoW1teIF1dKlwpIFwobGliW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9 LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcImxpYlwy XCIsICh2b2lkICopIFwmXDJ9LC9wJyIKKysKKysjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wg Y2hhaW4KKytvcHRfY3I9CisrY2FzZSAkYnVpbGRfb3MgaW4KKyttaW5ndyopCisrICBvcHRfY3I9 YCRFQ0hPICd4XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisr ICA7OworK2VzYWMKKysKKysjIFRyeSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4g d2l0aCBpdC4KKytmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9y bSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMg c3ltYm9sLgorKyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3Jp dGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4KKysgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRl cmZhY2UiID0gIk1TIGR1bXBiaW4iOyB0aGVuCisrICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBh bmQgc2F5IFQgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9uCisrICAgICMgYW5kIEQgZm9yIGFu eSBnbG9iYWwgdmFyaWFibGUuCisrICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBz eW1ib2xzIGZyb20gTVNWQysrLAorKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgorKyAg ICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSIkQVdLIFsnIlwKKysiICAgICB7bGFzdF9z ZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQgM307IlwKKysiICAgICAvU2VjdGlvbiBsZW5ndGgg LiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKKysiICAgICBc JCAwIX4vRXh0ZXJuYWwgKlx8L3tuZXh0fTsiXAorKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsg LyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07IlwKKysiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkg bmV4dH07IlwKKysiICAgICB7Zj0wfTsgXCQgMH4vXChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/ IFwiVCBcIiA6IFwiRCBcIn07IlwKKysiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNw bGl0KGFbMl0sIHMpfTsiXAorKyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBu ZXh0fTsiXAorKyIgICAgIHNbMV1+cHJmeCB7c3BsaXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsx XSwgc3Vic3RyKHRbMV0sbGVuZ3RoKHByZngpKX0iXAorKyIgICAgICcgcHJmeD1eJGFjX3N5bXBy ZnhdIgorKyAgZWxzZQorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4g LWUgJ3MvXi4qW1sJIF1dXCgkc3ltY29kZSRzeW1jb2RlKlwpW1sJIF1dW1sJIF1dKiRhY19zeW1w cmZ4JHN5bXBhdCRvcHRfY3IkLyRzeW14ZnJtL3AnIgorKyAgZmkKKysKKysgICMgQ2hlY2sgdG8g c2VlIHRoYXQgdGhlIHBpcGUgd29ya3MgY29ycmVjdGx5LgorKyAgcGlwZV93b3Jrcz1ubworKwor KyAgcm0gLWYgY29uZnRlc3QqCisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgor KyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorK2NoYXIgbm1fdGVz dF92YXI7Cisrdm9pZCBubV90ZXN0X2Z1bmModm9pZCk7Cisrdm9pZCBubV90ZXN0X2Z1bmModm9p ZCl7fQorKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYKKytpbnQgbWFpbigpe25tX3Rl c3RfdmFyPSdhJztubV90ZXN0X2Z1bmMoKTtyZXR1cm4oMCk7fQorK19MVF9FT0YKKysKKysgIGlm IEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisrICAgICMgTm93IHRyeSB0byBncmFiIHRo ZSBzeW1ib2xzLgorKyAgICBubGlzdD1jb25mdGVzdC5ubQorKyAgICBpZiBBQ19UUllfRVZBTChO TSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ ICRubGlzdCkgJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgorKyAgICAgICMgVHJ5IHNvcnRpbmcg YW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVu aXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisrICAgICAg ZWxzZQorKwlybSAtZiAiJG5saXN0IlQKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJl IHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KKysgICAgICBpZiAkR1JF UCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JFUCAn IG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxfTFRf RU9GID4gY29uZnRlc3QuJGFjX2V4dAorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIg eworKyNlbmRpZgorKworK19MVF9FT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZp bGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5s aXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxf TFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5 bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNo YXIgKm5hbWU7CisrICB2b2lkICAgICAgICphZGRyZXNzOworK30KKytsdF9fUFJPR1JBTV9fTFRY X3ByZWxvYWRlZF9zeW1ib2xzW1tdXSA9CisreworKyAgeyAiQFBST0dSQU1AIiwgKHZvaWQgKikg MCB9LAorK19MVF9FT0YKKysJICAkU0VEICJzL14kc3ltY29kZSRzeW1jb2RlKiBcKC4qXCkgXCgu KlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC8iIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBt YWluID4+IGNvbmZ0ZXN0LiRhY19leHQKKysJICBjYXQgPDxcX0xUX0VPRiA+PiBjb25mdGVzdC4k YWNfZXh0CisrICB7MCwgKHZvaWQgKikgMH0KKyt9OworKworKy8qIFRoaXMgd29ya3MgYXJvdW5k IGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtlciAqLworKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9V TkQKKytzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgeworKyAgcmV0dXJu IGx0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5bWJvbHM7CisrfQorKyNlbmRpZgorKworKyNp ZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYKKytfTFRfRU9GCisrCSAgIyBOb3cgdHJ5IGxp bmtpbmcgdGhlIHR3byBmaWxlcy4KKysJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3Rt LiRhY19vYmpleHQKKysJICBsdF9zYXZlX0xJQlM9IiRMSUJTIgorKwkgIGx0X3NhdmVfQ0ZMQUdT PSIkQ0ZMQUdTIgorKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCisrCSAgQ0ZMQUdTPSIk Q0ZMQUdTJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIK KysJICBpZiBBQ19UUllfRVZBTChhY19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVl eHR9OyB0aGVuCisrCSAgICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3Nh dmVfTElCUyIKKysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8g ImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQK KysJZmkKKysgICAgICBlbHNlCisrCWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRu bGlzdCIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICAgIGZpCisrICAgIGVsc2UKKysgICAgICBl Y2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NB R0VfTE9HX0ZECisrICAgIGZpCisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICBjYXQgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAjIERv IG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBpZiB0 ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysgICAg bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KKysgIGZpCisrZG9uZQorK10pCisraWYgdGVz dCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrICBsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jZGVjbD0KKytmaQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgor KyAgQUNfTVNHX1JFU1VMVChmYWlsZWQpCisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChvaykKKytm aQorKworK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3BpcGVdLCBbbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZV0sIFsxXSwKKysgICAgW1Rha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVj ZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXNdKQorK19MVF9ERUNMKFtnbG9i YWxfc3ltYm9sX3RvX2NkZWNsXSwgW2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwg WzFdLAorKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNs YXJhdGlvbl0pCisrX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLAor KyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NdLCBbMV0sCisr ICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXJd KQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXhd LAorKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3By ZWZpeF0sIFsxXSwKKysgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1l IGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkXSkKKytdKSAjIF9MVF9DTURf R0xPQkFMX1NZTUJPTFMKKysKKysKKysjIF9MVF9DT01QSUxFUl9QSUMoW1RBR05BTUVdKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9QSUNd LAorK1ttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKKytfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0KKytfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9CisrX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPQorKworK0FDX01T R19DSEVDS0lORyhbZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNdKQorK200X2lm KFskMV0sIFtDWFhdLCBbCisrICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0aWMs IHdsLCBldGMuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworKworKyAgICBjYXNlICRob3N0X29zIGlu CisrICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQg cHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBj YXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29t bWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02 OGspCisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRv IGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBg LW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAor KyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJl c3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBi ZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3Nm NSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAg OzsKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAg ICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVy IGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQg c2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRo ZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxl CisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBtNF9p ZihbJDFdLCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1ERExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrICAgIGRhcndpbiogfCByaGFwc29keSop CisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMg Q29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7 CisrICAgICpkamdwcCopCisrICAgICAgIyBESkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBs aWJyYXJpZXMgYXQgYWxsCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPQorKyAgICAgIDs7CisrICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICAjIEludGVyaXgg My54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAg ICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAg ICAgIDs7CisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVu CisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCisr ICAgICAgZmkKKysgICAgICA7OworKyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVm YXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKKysgICAgICAjIFBB IEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZs YWcKKysgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGlu aW5nLgorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCopCisrCTs7Cisr ICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycK KysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAgKnFueCogfCAqbnRvKikKKysgICAg ICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0 b28sIG90aGVyd2lzZQorKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsK KysgICAgKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1m UElDJworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICAgIGFpeFtbNC05XV0qKQorKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCisrCWlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2 NCBwcm9jZXNzb3IKKysJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAg Y2hvcnVzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVu IEhpbGxzIEMrKyBDb21waWxlcgorKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWlu IC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGli Qy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCisrCSAgOzsKKysJZXNhYworKwk7 OworKyAgICAgIGRndXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGVjKysqKQorKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICAgIDs7 CisrCSAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICAq KQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikK KysJIyBGcmVlQlNEIHVzZXMgR05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCog fCBocHV4MTEqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAg IGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwkgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgYUND KikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9 YXJjaGl2ZScKKysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikK KysJICAgICAgIyArWiB0aGUgZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKKysJICAgICAgOzsKKysJ ICAgIGVzYWMKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAg ICBpbnRlcml4KikKKysJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8g c2hhcmVkIGxpYnMpCisrCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAg ICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgor KwkgIENDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3No YXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCisrCSAgICA7 OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbGludXgqIHwgaypic2Qq LWdudSkKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAgIyBLQUkgQysr IENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1i YWNrZW5kIC1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1mUElDJworKwkgICAgOzsKKysJICBlY3BjKiApCisrCSAgICAjIG9sZCBJbnRlbCBDKysgZm9y IHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisrCSAgICA7OworKwkgIGljcGMqICkKKysJICAgICMg SW50ZWwgQysrLCB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KKysJICAgICMgSUND IDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctc3RhdGljJworKwkgICAgOzsKKysJICBwZ0NDKiB8IHBnY3BwKikKKysJ ICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLWZwaWMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBDb21w YXEgQysrCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBl YXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBv YmplY3RzIGFyZSBQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25f c2hhcmVkJworKwkgICAgOzsKKysJICB4bGMqIHwgeGxDKikKKysJICAgICMgSUJNIFhMIDguMCBv biBQUEMKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwor KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKKysJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJwor KwkgICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisr CSAgICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJworKwkgICAgICA7OworKwkg ICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGx5bnhvcyopCisrCTs7Cisr ICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4K KysJICBjeHgqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct VyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsK KysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAgICAgICAj IFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28s IG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJworKyAgICAgICAg OzsKKysgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrCSAgS0NDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct LWJhY2tlbmQgLVdsLCcKKysJICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysr IDIuNC4xCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMn CisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKworKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICAjIE1ha2Ug c3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisr CSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJ ICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7OworKyAgICAg IHNvbGFyaXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3Vu IEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysJICAgIDs7CisrCSAgZ2N4KikKKysJICAg ICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1QSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2Fj CisrCTs7CisrICAgICAgc3Vub3M0KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyop CisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1waWMnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsK KysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJl KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1l IGluCisrCSAgQ0MqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElD JworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRp YycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19i YXNlbmFtZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICA7Owor KwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7Cisr ICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQs ICQxKT1ubworKwk7OworKyAgICBlc2FjCisrICBmaQorK10sCisrWworKyAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0 YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBB bGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAg IHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28g c3VwcG9ydAorKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhN RTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMs IGJ1dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJl dmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02 ODA0MCcuCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7Owor KyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8 IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhl IGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3ln d2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0 aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAg IyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xz IGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMg LWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxl LWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisr CVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQor KyAgICAgIDs7CisrCisrICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMg dGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90 IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQor KyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3Qg Zm9yIDMyLWJpdAorKyAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhl IGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZworKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMg bW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysg ICAgICBocHBhKjY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCTs7CisrICAgICAg ZXNhYworKyAgICAgIDs7CisrCisrICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICAjIEludGVy aXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAg ICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgor KyAgICAgIDs7CisrCisrICAgIG1zZG9zZGpncHAqKQorKyAgICAgICMgSnVzdCBiZWNhdXNlIHdl IHVzZSBHQ0MgZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCisr ICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKysgICAgICBl bmFibGVfc2hhcmVkPW5vCisrICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAg ICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0 b28sIG90aGVyd2lzZQorKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsK KysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJ X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisr ICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2gg dGhlIHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQor KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAg IGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRz IElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nLUJzdGF0aWMnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyop CisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwg d2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRs bCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgbTRfaWYo WyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKworKyAgICBocHV4OSogfCBocHV4MTAqIHwg aHB1eDExKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVds LCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0 IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7 OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nK1on CisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19j b21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hp dmUnCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAj IFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAg ICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAg ICAgIyBvbGQgSW50ZWwgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisr ICAgICAgZWNjKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwn CisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCV9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysgICAgICAgIDs7 CisrICAgICAgIyBpY2MgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrICAgICAg IyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCisrICAgICAgaWNjKiB8IGlm b3J0KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAg ICAgIyBMYWhleSBGb3J0cmFuIDguMS4KKysgICAgICBsZjk1KikKKysJX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLS1zaGFyZWQnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nLS1zdGF0aWMnCisrCTs7CisrICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCog fCBwZ2Y5NSopCisrICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhl IFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9q ZWN0KQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKKysJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICAgIDs7CisrICAg ICAgY2NjKikKKysgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct V2wsJworKyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgICAg OzsKKysgICAgICB4bCopCisrCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSBvbiBQUEMKKysJ X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJworKwk7OworKyAgICAgICopCisrCWNh c2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUu OQorKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7OworKwkqU3Vu XCBGKikKKysJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFn cyB0byB0aGUgbGlua2VyCisrCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctS1BJQycKKysJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1C c3RhdGljJworKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCisrCSAg OzsKKysJZXNhYworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBuZXdzb3M2 KQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycK KysgICAgICA7OworKworKyAgICAqbnRvKiB8ICpxbngqKQorKyAgICAgICMgUU5YIHVzZXMgR05V IEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisr ICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKKysgICAgICA7OworKworKyAgICBvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAgICA7 OworKworKyAgICByZG9zKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKKysJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OworKyAgICAg ICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7CisrICAg ICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBz eXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysg ICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLUtjb25mb3JtX3BpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg IHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7 CisrCisrICAgIHVuaWNvcyopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWls ZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKysgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFy ZWQsICQxKT1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrXSkKKytjYXNlICRob3N0 X29zIGluCisrICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJ QyBpcyBtZWFuaW5nbGVzczoKKysgICpkamdwcCopCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0KKysgICAgOzsKKysgICopCisrICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtd KV0pIgorKyAgICA7OworK2VzYWMKKytBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpXSkKKytfTFRfVEFHREVDTChbd2xdLCBbbHRfcHJvZ19jb21waWxl cl93bF0sIFsxXSwKKysJW0hvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29t cGlsZXJdKQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFs bHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSkiOyB0aGVuCisrICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgUElD IGZsYWcgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSB3b3Jrc10sCisrICAg IFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzLCAkMSldLAorKyAgICBb JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsg LURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pXSwgW10sCisrICAgIFtjYXNl ICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgaW4KKysgICAgICIiIHwgIiAi KikgOzsKKysgICAgICopIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0iICRf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiIDs7CisrICAgICBlc2FjXSwKKysg ICAgW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKysgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm9dKQorK2ZpCisrX0xU X1RBR0RFQ0woW3BpY19mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJfcGljXSwgWzFdLAorKwlbQWRk aXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzXSkKKysK KysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtz LgorKyMKKyt3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgZXZhbCBsdF90 bXBfc3RhdGljX2ZsYWc9XCIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp XCIKKytfTFRfTElOS0VSX09QVElPTihbaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBf c3RhdGljX2ZsYWcgd29ya3NdLAorKyAgX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3N0 YXRpY193b3JrcywgJDEpLAorKyAgJGx0X3RtcF9zdGF0aWNfZmxhZywKKysgIFtdLAorKyAgW19M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT1dKQorK19MVF9UQUdERUNMKFts aW5rX3N0YXRpY19mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJfc3RhdGljXSwgWzFdLAorKwlbQ29t cGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZ10pCisrXSkjIF9MVF9DT01QSUxF Ul9QSUMKKysKKysKKysjIF9MVF9MSU5LRVJfU0hMSUJTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlZSBpZiB0aGUgbGlua2VyIHN1cHBvcnRzIGJ1aWxk aW5nIHNoYXJlZCBsaWJyYXJpZXMuCisrbTRfZGVmdW4oW19MVF9MSU5LRVJfU0hMSUJTXSwKKytb QUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5s CisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRfcmVxdWlyZShb X0xUX0RFQ0xfRUdSRVBdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrbTRf cmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCisrbTRfcmVxdWlyZShbX0xUX1RB R19DT01QSUxFUl0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIg bGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorK200X2lmKFskMV0sIFtD WFhdLCBbCisrICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJv YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8v J1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgY2FzZSAkaG9zdF9vcyBp bgorKyAgYWl4W1s0LTldXSopCisrICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdl IGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRv IEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrICAgIGlmICRO TSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICBfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmll bmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChc JCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAz IH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBlbHNlCisrICAgICAg X0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJE IikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHBy aW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAgIGZpCisr ICAgIDs7CisrICBwdzMyKikKKysgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSk9IiRsdGRsbF9jbWRzIgorKyAgOzsKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisr ICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNv bnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNd XVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvOy9eLipbWyBdXV9fbm1fXy9zL14u KltbIF1dX19ubV9fXChbW14gXV0qXClbWyBdXVtbXiBdXSovXDEgREFUQS87L15JW1sgXV0vZDsv XltbQUlUV11dW1sgXV0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9s cycKKysgIDs7CisrICAqKQorKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQx KT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VE ICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsK KysgIGVzYWMKKysgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09G RlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorK10sIFsKKysgIHJ1bnBhdGhfdmFyPQor KyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorKyAgX0xUX1RBR1ZBUihh bHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0KKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorKyAgX0xUX1RB R1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihlbmFibGVf c2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2Nt ZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUg fCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwor KyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworKyAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJz b2x1dGUsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9CisrICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKysg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQorKyAgX0xUX1RBR1ZB UihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQx KT1ubworKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorKyAgX0xU X1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2Nt ZHMsICQxKT0KKysgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPQor KyAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpPQorKyAgX0xU X1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKT0KKysgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBh IGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKKysgICMgaW5j bHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0CisrICBfTFRfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywg JDEpPQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBz eW1ib2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGAp JCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUu ICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQg YGJjJywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAg X0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xf R0xPQkFMX19GW0lEXV8uKiddCisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBp cyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChhYil1 c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgorKyAg IyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNv ZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBm aW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMu CisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9u IHN5bWJvbHMuCisrZG5sIE5vdGUgYWxzbyBhZGp1c3QgZXhjbHVkZV9leHBzeW1zIGZvciBDKysg YWJvdmUuCisrICBleHRyYWN0X2V4cHN5bXNfY21kcz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgIyBGSVhNRTogdGhl IE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAj IFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2lu ZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5 ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7OworKyAgaW50 ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4 OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3BlbmJzZCop CisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhl bgorKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBi ZSBlbXB0eQorKyAgICB3bGFyYz0nJHt3bH0nCisrCisrICAgICMgU2V0IHNvbWUgZGVmYXVsdHMg Zm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisrICAgICMgYXJl IHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRp bmcgdGhlbQorKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNl c3NhcnkuCisrICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisr ICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBv cnQtZHluYW1pYycKKysgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xl LWFyY2hpdmUgZXQuIGFsLgorKyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnbm8td2hv bGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNl ICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgIGVsc2UKKysgICAgICBfTFRfVEFH VkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CisrICAgIGZpCisrICAgIHN1cHBvcnRz X2Fub25fdmVyc2lvbmluZz1ubworKyAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAq XCBbWzAxXV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNp b25zIDwgMi4xMQorKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisrICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorKyAgICAgICpc IDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisrICAgICAgKikgc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nPXllcyA7OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIEdOVSBsZCBz dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFp eFtbMy05XV0qKQorKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBi cm9rZW4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KKysJX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2Fy bmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJl cG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJh cmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVk IGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQg bGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0 IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VP RgorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KKysgICAgICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQg YWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJworKyAgICAgICAgOzsKKysgICAgICBtNjhr KQorKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lE IDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVS U0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNk ZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRf b2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICAgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysgICAgICAgIDs7CisrICAgICAgZXNh YworKyAgICAgIDs7CisrCisrICAgIGJlb3MqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8 ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJ X0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrCSMgSm9z ZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBnY2MK KysJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRp b24uICBGSVhNRQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l IC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBj ZWdjYyopCisrICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKysgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJj aCBwYXRoIGZvciBETExzLgorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5 bWJvbHMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcywgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21k cywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8 ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERB VEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBz b3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+ JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1 dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJ ZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGlu ZQorKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgor KwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFx ICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJv bHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMg PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhs aW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpbnRl cml4W1szLTldXSopCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRs aWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tRScKKysgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGls ZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQg bGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQorKyAg ICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBh IHNsb3cgdmVyeSBtZW1vcnkKKysgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJv Y2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisrICAgICAgIyAyNTYgS2lC LWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQg bGluaworKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxv d3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAl IDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJv bHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1y ZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1p bWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIx NzcyODBgIC1vICRsaWInCisrICAgICAgOzsKKysKKysgICAgZ251KiB8IGxpbnV4KiB8IHRwZiog fCBrKmJzZCotZ251KQorKyAgICAgIHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhvc3Rf b3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBk aWV0XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtp bmcgKCFkaWV0LWR5bikKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVscCAy PiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAor KwkgJiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxhZz0K KysJdG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2Nw dSBpbgorKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorKwkg IF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFy Y2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwi ICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVD SE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRt cF9hZGRmbGFnPScgJHBpY19mbGFnJworKwkgIDs7CisrCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1 KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKKysJICBfTFRfVEFHVkFS KHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBj b252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29u dmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19j b252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0n ICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50 ZWwgQyBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7Owor KwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24g aWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZj KiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0n IC1ub2Zvcl9tYWluJyA7OworKwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIF9M VF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysJICB0bXBfc2hhcmVkZmxh Zz0nLS1zaGFyZWQnIDs7CisrCXhsW1tjQ11dKikJCQkjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRl YWwgd2l0aCB4bGYgYmVsb3cpCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAg dG1wX2FkZGZsYWc9IDs7CisrCWVzYWMKKysJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGlu CisrCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45CisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBm b3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdf Y29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5l d19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICBfTFRfVEFHVkFS KGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycg OzsKKysJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKKysJICB0bXBfc2hhcmVkZmxhZz0n LUcnIDs7CisrCWVzYWMKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDICciJHRt cF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysgICAgICAgIGlmIHRl c3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysgICAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Cisr CSAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K KysJICAgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNp b24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAg ICAgICBmaQorKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwl4bGYqKQorKwkgICMgSUJNIFhM IEZvcnRyYW4gMTAuMSBvbiBQUEMgY2Fubm90IGNyZWF0ZSBzaGFyZWQgbGlicyBpdHNlbGYKKysJ ICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy0td2hvbGUtYXJjaGl2 ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkLCAkMSk9Jy1ycGF0aCAkbGliZGlyJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKKysJICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25f dmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZl cn4KKysJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkgICAgICBlY2hvICJsb2NhbDogKjsg fTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgJExEIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lv bi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrCSAgZmkKKysJ ICA7OworKwllc2FjCisrICAgICAgZWxzZQorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBp ZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhl bgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNl CisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwor KwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAg ZmkKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBpZiAkTEQgLXYgMj4mMSB8 ICRHUkVQICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogVGhlIHJl bGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQorKyoqKiBjcmVh dGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRv b2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2Ug eW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3 ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRIIG9yIGNvbXBp bGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcworKyoqKiB1c2Vk LCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAg Mj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn CisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAg ICBlbHNlCisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAg IDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBP cGVuVU5JWCopCisrICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisrICAgICAgICAqXCBbWzAx XV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4xW1swLTVdXS4qKQorKwlfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCWNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiBS ZWxlYXNlcyBvZiB0aGUgR05VIGxpbmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90Cisr KioqIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhl cmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBv cnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0byByZWxlYXNl IDIuMTYuOTEuMC4zIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioq IHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBs aW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KKysKKytfTFRfRU9GCisrCTs7 CisrCSopCisrCSAgIyBGb3Igc2VjdXJpdHkgcmVhc29ucywgaXQgaXMgaGlnaGx5IHJlY29tbWVu ZGVkIHRoYXQgeW91IGFsd2F5cworKwkgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcg c2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCisrCSAgIyBEVF9SVU5QQVRIIHRhZyBm cm9tIGV4ZWN1dGFibGVzIGFuZCBsaWJyYXJpZXMuICBCdXQgZG9pbmcgc28KKysJICAjIHJlcXVp cmVzIHRoYXQgeW91IGNvbXBpbGUgZXZlcnl0aGluZyB0d2ljZSwgd2hpY2ggaXMgYSBwYWluLgor KwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVs ZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9z aGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRM RCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2 L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l IC1vICRsaWInCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxp YicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBm aQorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAiJF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSkiID0gbm87IHRoZW4KKysgICAgICBydW5wYXRoX3Zhcj0KKysgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKysgICAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorKyAgICAgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICAgZmkKKysgIGVsc2UKKysgICAgIyBQT1JUTUUg ZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxk KQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeDMqKQorKyAgICAgIF9MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKyAgICAgIF9MVF9UQUdWQVIo YWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAt Yk06U1JFfiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAg ICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRI IGlmIHRoZXJlCisrICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIGlmIHRl c3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRo ZW4KKysJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBpcyBz dXBwb3J0ZWQgd2l0aCBhCisrCSMgYnJva2VuIGNvbGxlY3QyLgorKwlfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBhaXhbWzQtOV1dKikKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQs IHNvIHdlIGRvbid0CisrCSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKwlhaXhfdXNl X3J1bnRpbWVsaW5raW5nPW5vCisrCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrCW5vX2VudHJ5 X2ZsYWc9IiIKKysgICAgICBlbHNlCisrCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdl IGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJ WCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrCWlmICROTSAtViAy PiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysJICBfTFRfVEFHVkFSKGV4cG9y dF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdr ICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJC IikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycg fCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihleHBv cnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBh d2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0g IkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wn JyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVudGltZWxp bmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxp bmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3 aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKwlj YXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFpeDQuW1syM11dLip8YWl4W1s1LTldXSopCisr CSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAi LWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KKysJICAgIGFpeF91 c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICBicmVhaworKwkgIGZpCisrCSAgZG9uZQorKwkg IDs7CisrCWVzYWMKKysKKysJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysJbm9fZW50cnlfZmxh Zz0nLWJub2VudHJ5JworKyAgICAgIGZpCisrCisrICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFi bGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICMgaGF2 ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEg bGlicmFyeQorKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZs b3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcr Ky9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAjIGVub3VnaCB0 byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCisrICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZSwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciwgJDEpPSc6JworKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXll cworKyAgICAgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nJHt3bH0tZiwnCisrCisr ICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0 LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24g QUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVj dDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmlu dC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYK KysJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4v ZGV2L251bGwKKysJICB0aGVuCisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAg OgorKwkgIGVsc2UKKysJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorKwkgICMgSXQgZmFpbHMgdG8gZmluZCB1 bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKKysJICAjIHBhdGggaXMg bm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkg ICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZworKwkgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbWludXNfTCwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9CisrCSAgZmkKKysJICA7OworKwllc2FjCisrCXNoYXJlZF9mbGFnPSctc2hh cmVkJworKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJ ICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKysJZmkKKysgICAgICBlbHNl CisrCSMgbm90IHVzaW5nIGdjYworKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRh IDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBj b3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9 LUcnCisrCSAgZWxzZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQor KwlmaQorKyAgICAgIGZpCisrCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFn X3NwZWMsICQxKT0nJHt3bH0tYmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBh bGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAjIHVuZGVy c2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMg dG8gZXhwb3J0LgorKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9 eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu CisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBm bGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1h eSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVk X2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGli cGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrICAgICAgICAjIGVtcHR5IGV4ZWN1 dGFibGUuCisrICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJk aXI6JyIkYWl4X2xpYnBhdGgiCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6 XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIk aG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKysJICBfTFRfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKysJICBfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWci JyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRl eHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKysJZWxzZQorKwkgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAjIGVtcHR5 IGV4ZWN1dGFibGUuCisrCSBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKwkgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIk YWl4X2xpYnBhdGgiCisrCSAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVu IHRpbWUgbG9hZGluZyBmbGFncywKKysJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJv ciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCSAgX0xUX1RBR1ZBUihub191 bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2snCisrCSAgX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCisrCSAgIyBFeHBvcnRlZCBzeW1i b2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCisrCSAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkgICMgVGhpcyBp cyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJy YXJpZXMuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNo YXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAk e3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHth bGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFt ZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysJZmkKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAg ICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5z byBzdXBwb3J0CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JycKKysgICAgICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2Ey aXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAk b3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRy ZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdT ICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGli cmFyeSAtMzIpJworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9t aW51c19MLCAkMSk9eWVzCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKwor KyAgICBic2RpW1s0NV1dKikKKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPS1yZHluYW1pYworKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyog fCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVu dGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBD KysuCisrICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5p bmdsZXNzLCBhcyB0aGVyZSBpcworKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisr ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisrICAg ICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAg ICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAg ICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5v dCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTog U2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBg JEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRs bH5saW5rbmFtZXM9JworKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVp bGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCisrICAgICAgX0xUX1RBR1ZBUihvbGRf YXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxk IGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBfTFRfVEFHVkFS KG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBs aWJzJworKyAgICAgIF9MVF9UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0aCAt dyAiJHNyY2ZpbGUiYCcKKysgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNv ZHkqKQorKyAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTKCQxKQorKyAgICAgIDs7Cisr CisrICAgIGRndXgqKQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGly JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAg ICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0 byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKKysgICAgIyBzdXBwb3J0 LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0 IGMrK3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWdu aWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4dHJhIHNwYWNlKS4K KysgICAgZnJlZWJzZDIuMiopCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAv dXNyL2xpYi9jKytydDAubycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9m IEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2QyKikKKysg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAt c2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5 KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBocHV4OSopCisrICAg ICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisrCV9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRM RCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRs aWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGZpCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0k bGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKworKyAgICAg ICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrICAg ICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihl eHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICA7OworKworKyAg ICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisr CV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGly JworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxp YmRpcicKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKwlf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwlfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1FJworKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkg aW4gdGhlIHNlYXJjaCBQQVRILAorKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0 aGUgbGlicmFyeS4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAg ICAgZmkKKysgICAgICA7OworKworKyAgICBocHV4MTEqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0Mi ID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJY2FzZSAkaG9zdF9jcHUgaW4K KysJaHBwYSo2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZh dWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg OzsKKysJKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt ZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMK KysgICAgICBlbHNlCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikK KysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRz b25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7Owor Kwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRo ZW4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2Ig JHt3bH0kbGliZGlyJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT06CisrCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqfGlhNjQqKQorKwkgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3QsICQxKT15ZXMKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZSwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBz ZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGli cmFyeS4KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysJICA7Owor Kwllc2FjCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBu b25zdG9wdXgqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCV9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAg JHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysJIyBUcnkgdG8gdXNlIHRoZSAtZXhwb3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwg aWYgaXQgZG9lcyBub3QKKysJIyB3b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMg bm90IHdvcmsgZWl0aGVyIGFuZAorKwkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgor KyAgICAgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRMREZM QUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9y ZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKKysgICAgICAgIEFDX0xJTktfSUZFTFNFKGludCBmb28o dm9pZCkge30sCisrICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmlsZSAk e3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgICAgKQorKyAgICAgICAgTERGTEFH Uz0iJHNhdmVfTERGTEFHUyIKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1l ICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2 ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBm aQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IsICQxKT06CisrICAgICAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAg ICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrICAgICAgOzsKKysKKysg ICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAg IyBhLm91dAorKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMg RUxGCisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAk MSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K KysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9OgorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zhciwg JDEpPW5vCisrICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAgICA7OworKwor KyAgICBvcGVuYnNkKikKKysgICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhl bgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwlfTFRfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZSwgJDEpPXllcworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVu YnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCisrCSAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisr CSAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJ ZWxzZQorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgb3BlbmJzZFtbMDFdXS4qIHwgb3BlbmJz ZDIuW1swLTddXSB8IG9wZW5ic2QyLltbMC03XV0uKikKKysJICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJworKwkgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPSctUiRsaWJkaXInCisrCSAgICAgOzsKKysJICAgKikKKysJICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICAgOzsKKysJ ICBlc2FjCisrCWZpCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBvczIqKQorKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JEVDSE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5kZWZ+JEVDSE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpk bGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAk b3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisrICAgICAgOzsKKysKKysgICAgb3NmMyopCisr ICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX1RBR1ZBUihhbGxvd191bmRl ZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9 JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lv biAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRf VEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXCon CisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0 cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNf bmVlZF9sYywgJDEpPSdubycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICA7OworKworKyAgICBvc2Y0 KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNv bmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0t c2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0 cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVn aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xz YDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4 cDsgZG9uZTsgcHJpbnRmICIlc1xcbiIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRDQyAtc2hh cmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29t cGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAt dXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJN ICRsaWIuZXhwJworKworKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRo IGRpcmVjdGx5CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct cnBhdGggJGxpYmRpcicKKysgICAgICBmaQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz X25lZWRfbGMsICQxKT0nbm8nCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9U QUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16IGRlZnMnCisrICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9JworKwlfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4 cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5l eHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3ds fS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwor KyAgICAgIGVsc2UKKysJY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSoiQ29tcGlsZXJzIDUuMCIq KQorKwkgIHdsYXJjPScnCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1H JHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNF RCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAk bGliLmV4cH4KKysJICAkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAt aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxp Yi5leHAnCisrCSAgOzsKKysJKikKKysJICB3bGFyYz0nJHt3bH0nCisrCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhw fmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4 cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtRyR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCWVzYWMKKysgICAg ICBmaQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct UiRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNv bGFyaXMyLltbMC01XV0uKikgOzsKKysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIg d2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0 YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisr CSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgorKwkjIFN1cHBvcnRlZCBz aW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0t eiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0 JworKwllbHNlCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSct eiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7Owor KyAgICAgIGVzYWMKKysgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMK KysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5k b3IiID0geHNlcXVlbnQ7IHRoZW4KKysJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwg YmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRyYSAubworKwkjIGZpbGVzIHRoYXQgbWFrZSAu aW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICA7OworKworKyAgICBzeXN2NCkKKysgICAgICBjYXNlICRob3N0X3ZlbmRvciBp bgorKwlzbmkpCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/Pwor Kwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJQgorKwkg ICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4KKysJICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JworKwkgIF9MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0nJENDIC1yIC1vICRvdXRwdXQkcmVs b2FkX29ianMnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAg ICAgOzsKKysJbW90b3JvbGEpCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8gI01vdG9yb2xhIG1hbnVhbCBz YXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NC4zKikKKysg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYywgJDEpPSctQmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2 NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zhciwg JDEpPW5vCisrCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX3J1bnBhdGhfdmFy PXllcworKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKyAgICAgIGZpCisrICAgICAg OzsKKysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcu W1swMV1dLltbMTBdXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKKysgICAg ICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdM RF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7 d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisr ICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisrICAgICAgIyBOb3RlOiBXZSBjYW4g Tk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysg ICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVz ZWQgZnJvbSBsaWJjIHRvCisrICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVh bnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisrICAgICAgIyBldmVyIGxpbmsgY29ycmVj dGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAgICAgICMg dGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhl YXZ5LWhhbmRlZAorKyAgICAgICMgYXMgLXogZGVmcy4KKysgICAgICBfTFRfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAgICBfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxs X2RlcGxpYnMsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFU SCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBv cnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHV0czQq KQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysg ICAgKikKKysgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgOzsKKysg ICAgZXNhYworKworKyAgICBpZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0aGVuCisrICAg ICAgY2FzZSAkaG9zdCBpbgorKyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8 IHN5c3Y1KikKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3 bH0tQmxhcmdlZHluc3ltJworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGZpCisrXSkK KytBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCisrdGVzdCAiJF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKwor K19MVF9UQUdWQVIod2l0aF9nbnVfbGQsICQxKT0kd2l0aF9nbnVfbGQKKysKKytfTFRfREVDTChb XSwgW2xpYmV4dF0sIFswXSwgW09sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKV0pZG5s CisrX0xUX0RFQ0woW10sIFtzaHJleHRfY21kc10sIFsxXSwgW1NoYXJlZCBsaWJyYXJ5IHN1ZmZp eCAobm9ybWFsbHkgIi5zbyIpXSlkbmwKKytfTFRfREVDTChbXSwgW2V4dHJhY3RfZXhwc3ltc19j bWRzXSwgWzJdLAorKyAgICBbVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5 bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2ZV0pCisrCisrIworKyMgRG8gd2UgbmVlZCB0 byBleHBsaWNpdGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRfTFRfVEFHVkFSKGFyY2hpdmVf Y21kc19uZWVkX2xjLCAkMSkiIGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBi ZSBhZGRlZAorKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwor KyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCisrICAgIGNhc2UgJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgaW4KKysgICAgKid+ JyopCisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1h bmQgc2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdo ZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29t ZQorKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2Nj IGFscmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3Jl IC1sZ2NjLgorKyAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4 cGxpY2l0bHkgbGlua2VkIGluXSkKKysgICAgICAkUk0gY29uZnRlc3QqCisrICAgICAgZWNobyAi JGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAg ICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcnI7IHRoZW4KKysgICAg ICAgIHNvbmFtZT1jb25mdGVzdAorKyAgICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAgICBsaWJv YmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICAgICAgIGRlcGxpYnM9CisrICAgICAgICB3bD0k X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkKKysJcGljX2ZsYWc9JF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKQorKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYK KysgICAgICAgIGxpbmtlcl9mbGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAg b3V0cHV0X29iamRpcj0uCisrICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9z YXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFn LCAkMSkKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKysg ICAgICAgIGlmIEFDX1RSWV9FVkFMKF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgMlw+XCYx IFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpCisrICAgICAgICB0aGVuCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgICBlbHNl CisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKyAgICAgICAg ZmkKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2 ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVz dC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIEFDX01T R19SRVNVTFQoWyRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSldKQorKyAgICAg IDs7CisrICAgIGVzYWMKKysgIGZpCisrICA7OworK2VzYWMKKysKKytfTFRfVEFHREVDTChbYnVp bGRfbGlidG9vbF9uZWVkX2xjXSwgW2FyY2hpdmVfY21kc19uZWVkX2xjXSwgWzBdLAorKyAgICBb V2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllc10p CisrX0xUX1RBR0RFQ0woW2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lc10s CisrICAgIFtlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwgWzBdLAorKyAgICBb V2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMg YXJlIHN0YXRpY10pCisrX0xUX1RBR0RFQ0woW10sIFtleHBvcnRfZHluYW1pY19mbGFnX3NwZWNd LCBbMV0sCisrICAgIFtDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zXSkK KytfTFRfVEFHREVDTChbXSwgW3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjXSwgWzFdLAorKyAgICBb Q29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFy Y2hpdmVzXSkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX25lZWRzX29iamVjdF0sIFsxXSwK KysgICAgW1doZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3Rz IGRpcmVjdGx5XSkKKytfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNd LCBbMl0sCisrICAgIFtDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBh cmNoaXZlXSkKKytfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz XSwgWzJdLAorKyAgICBbQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxp bmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKKytfTFRfVEFHREVDTChbXSwgW2FyY2hp dmVfY21kc10sIFsyXSwgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZV0p CisrX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2V4cHN5bV9jbWRzXSwgWzJdKQorK19MVF9UQUdE RUNMKFtdLCBbbW9kdWxlX2NtZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCisrICAgIGEgc2hh cmVkIGFyY2hpdmUuXSkKKytfTFRfVEFHREVDTChbXSwgW21vZHVsZV9leHBzeW1fY21kc10sIFsy XSkKKytfTFRfVEFHREVDTChbXSwgW3dpdGhfZ251X2xkXSwgWzFdLAorKyAgICBbV2hldGhlciB3 ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90XSkKKytfTFRfVEFHREVDTChbXSwgW2Fs bG93X3VuZGVmaW5lZF9mbGFnXSwgWzFdLAorKyAgICBbRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQg bGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHRdKQorK19MVF9UQUdE RUNMKFtdLCBbbm9fdW5kZWZpbmVkX2ZsYWddLCBbMV0sCisrICAgIFtGbGFnIHRoYXQgZW5mb3Jj ZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHNdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY10sIFsxXSwKKysgICAgW0ZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRv IGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgorKyAgICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRs aWJkaXIgZG9lcyBub3QgZXhpc3RdKQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZF0sIFsxXSwKKysgICAgW1tJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywg ZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkKKysgICAgZHVyaW5nIGxpbmtp bmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdXSkKKytf TFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JdLCBbMV0sCisrICAgIFtX aGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFy Z3VtZW50XSkKKytfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF0sIFswXSwKKysgICAg W1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxp bmtpbmcgaGFyZGNvZGVzCisrICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5XSkKKytf TFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV0sIFswXSwKKysgICAgW1Nl dCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzCisrICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUg cmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcworKyAgICAiYWJzb2x1dGUiLCBpLmUgaW1w b3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyAke3NobGlicGF0aF92YXJ9IGlmIHRoZQorKyAg ICBsaWJyYXJ5IGlzIHJlbG9jYXRlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9taW51 c19MXSwgWzBdLAorKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFy eV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9zaGxpYnBhdGhfdmFyXSwgWzBdLAorKyAg ICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIKKysgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RB R0RFQ0woW10sIFtoYXJkY29kZV9hdXRvbWF0aWNdLCBbMF0sCisrICAgIFtTZXQgdG8gInllcyIg aWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIK KysgICAgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBl eGVjdXRhYmxlcyBsaW5rZWQKKysgICAgYWdhaW5zdCBpdF0pCisrX0xUX1RBR0RFQ0woW10sIFtp bmhlcml0X3JwYXRoXSwgWzBdLAorKyAgICBbU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50 aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKKysgICAgdG8gcnVudGltZSBwYXRoIGxp c3RdKQorK19MVF9UQUdERUNMKFtdLCBbbGlua19hbGxfZGVwbGlic10sIFswXSwKKysgICAgW1do ZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRl bmN5IGxpYnJhcmllc10pCisrX0xUX1RBR0RFQ0woW10sIFtmaXhfc3JjZmlsZV9wYXRoXSwgWzFd LAorKyAgICBbRml4IHRoZSBzaGVsbCB2YXJpYWJsZSAkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVy XSkKKytfTFRfVEFHREVDTChbXSwgW2Fsd2F5c19leHBvcnRfc3ltYm9sc10sIFswXSwKKysgICAg W1NldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZF0pCisrX0xUX1RB R0RFQ0woW10sIFtleHBvcnRfc3ltYm9sc19jbWRzXSwgWzJdLAorKyAgICBbVGhlIGNvbW1hbmRz IHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9sc10pCisrX0xUX1RBR0RFQ0woW10sIFtleGNsdWRlX2V4 cHN5bXNdLCBbMV0sCisrICAgIFtTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4g dGhlIHByZWxvYWRlZCBzeW1ib2xzXSkKKytfTFRfVEFHREVDTChbXSwgW2luY2x1ZGVfZXhwc3lt c10sIFsxXSwKKysgICAgW1N5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZF0pCisr X0xUX1RBR0RFQ0woW10sIFtwcmVsaW5rX2NtZHNdLCBbMl0sCisrICAgIFtDb21tYW5kcyBuZWNl c3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBs YXRlc10pCisrX0xUX1RBR0RFQ0woW10sIFtmaWxlX2xpc3Rfc3BlY10sIFsxXSwKKysgICAgW1Nw ZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlc10pCisrZG5sIEZJWE1FOiBOb3Qg eWV0IGltcGxlbWVudGVkCisrZG5sIF9MVF9UQUdERUNMKFtdLCBbdGhyZWFkX3NhZmVfZmxhZ19z cGVjXSwgWzFdLAorK2RubCAgICBbQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQgc2Fm ZSBvYmplY3RzXSkKKytdKSMgX0xUX0xJTktFUl9TSExJQlMKKysKKysKKysjIF9MVF9MQU5HX0Nf Q09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhh dCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgQyBjb21waWxlciBhcmUgc3VpdGFi bHkKKysjIGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5 IF9MVF9DT05GSUcgdG8gd3JpdGUKKysjIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBs aWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xBTkdfQ19DT05GSUddLAorK1ttNF9yZXF1aXJlKFtf TFRfREVDTF9FR1JFUF0pZG5sCisrbHRfc2F2ZV9DQz0iJENDIgorK0FDX0xBTkdfUFVTSChDKQor KworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KKythY19leHQ9 YworKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNl cy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFp bigpe3JldHVybigwKTt9JworKworK19MVF9UQUdfQ09NUElMRVIKKysjIFNhdmUgdGhlIGRlZmF1 bHQgY29tcGlsZXIsIHNpbmNlIGl0IGdldHMgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgb3RoZXIKKysj IHRhZ3MgYXJlIGJlaW5nIHRlc3RlZCwgYW5kIF9MVF9UQUdWQVIoY29tcGlsZXIsIFtdKSBpcyBh IE5PUC4KKytjb21waWxlcl9ERUZBVUxUPSRDQworKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJw bGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xU X0xJTktFUl9CT0lMRVJQTEFURQorKworKyMjIENBVkVBVCBFTVBUT1I6CisrIyMgVGhlcmUgaXMg bm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFu Z2UKKysjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1 bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorK2lmIHRl c3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorKyAg X0xUX0NPTVBJTEVSX1BJQygkMSkKKysgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICBfTFRfQ09N UElMRVJfRklMRV9MT0NLUygkMSkKKysgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgX0xUX1NZ U19EWU5BTUlDX0xJTktFUigkMSkKKysgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkK KysgIExUX1NZU19ETE9QRU5fU0VMRgorKyAgX0xUX0NNRF9TVFJJUExJQgorKworKyAgIyBSZXBv cnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0CisrICBBQ19NU0df Q0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICBBQ19N U0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisrCisrICBBQ19NU0dfQ0hFQ0tJTkcoW3do ZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisrICB0ZXN0ICIkY2FuX2J1aWxkX3No YXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKysKKysgICMgT24gQUlYLCBzaGFyZWQg bGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFu ZAorKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAg YWl4MyopCisrICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGlj PW5vCisrICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRz PSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9 JyRSQU5MSUIgJGxpYicKKysgICAgZmkKKysgICAgOzsKKysKKysgIGFpeFtbNC05XV0qKQorKyAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0gbm8gOyB0aGVuCisrICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYm IGVuYWJsZV9zdGF0aWM9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIEFDX01TR19S RVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0 byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKKysgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVf c2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorKyAgdGVzdCAiJGVuYWJsZV9zaGFyZWQi ID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0 YXRpY10pCisrCisrICBfTFRfQ09ORklHKCQxKQorK2ZpCisrQUNfTEFOR19QT1AKKytDQz0iJGx0 X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0NfQ09ORklHCisrCisrCisrIyBfTFRfUFJPR19DWFgK KysjIC0tLS0tLS0tLS0tLQorKyMgU2luY2UgQUNfUFJPR19DWFggaXMgYnJva2VuLCBpbiB0aGF0 IGl0IHJldHVybnMgZysrIGlmIHRoZXJlIGlzIG5vIGMrKworKyMgY29tcGlsZXIsIHdlIGhhdmUg b3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0NYWF0sCisrWworK3B1 c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXNdKQorK0FDX1BS T0dfQ1hYCisraWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYK KysgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYx YCApIHx8CisrICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKyAgQUNfUFJP R19DWFhDUFAKKytlbHNlCisrICBfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXMKKytmaQorK3BvcGRl ZihbQUNfTVNHX0VSUk9SXSkKKytdKSMgX0xUX1BST0dfQ1hYCisrCisrZG5sIGFjbG9jYWwtMS40 IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbX0xUX1BST0dfQ1hYXSwg W10pCisrCisrCisrIyBfTFRfTEFOR19DWFhfQ09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxl cyBmb3IgYSBDKysgY29tcGlsZXIgYXJlIHN1aXRhYmx5CisrIyBkZWZpbmVkLiAgVGhlc2UgdmFy aWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCisrIyB0 aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9M QU5HX0NYWF9DT05GSUddLAorK1tBQ19SRVFVSVJFKFtfTFRfUFJPR19DWFhdKWRubAorK200X3Jl cXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNM X0VHUkVQXSlkbmwKKysKKytBQ19MQU5HX1BVU0goQysrKQorK19MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKT1ubworK19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0KKytfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCisrX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19v YmplY3QsICQxKT1ubworK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 CisrX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQs ICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKytfTFRf VEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0 aWMsICQxKT1ubworK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCisrX0xUX1RBR1ZB Uihtb2R1bGVfY21kcywgJDEpPQorK19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9 CisrX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9UQUdWQVIo b2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX1RBR1ZBUihub191 bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKytfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQx KT1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDKysgdGVzdCBzb3VyY2VzLgor K2FjX2V4dD1jcHAKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQysr IHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4 dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFk eSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBDWFggY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNv bWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3Vt ZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdp bGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNv bXBpbGVyLgorK2lmIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9lcnJvciIgIT0geWVzOyB0aGVuCisr ICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworKyAgbHRfc2ltcGxl X2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyAgIyBDb2Rl IHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKysgIGx0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZT0naW50IG1haW4oaW50LCBjaGFyICpbW11dKSB7IHJldHVybigwKTsgfScKKysKKysgICMg bHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1 cmUgJENDIGlzIHNldC4KKysgIF9MVF9UQUdfQ09NUElMRVIKKysKKysgICMgc2F2ZSB3YXJuaW5n cy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrICBfTFRfQ09NUElMRVJfQk9JTEVS UExBVEUKKysgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKysgICMgQWxsb3cgQ0MgdG8gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrICBsdF9zYXZlX0NDPSRDQworKyAgbHRf c2F2ZV9MRD0kTEQKKysgIGx0X3NhdmVfR0NDPSRHQ0MKKysgIEdDQz0kR1hYCisrICBsdF9zYXZl X3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAorKyAgbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRo X0xECisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3Byb2dfZ251X2xkY3h4K3NldH0iOyB0aGVuCisr ICAgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAorKyAgZWxzZQorKyAg ICAkYXNfdW5zZXQgbHRfY3ZfcHJvZ19nbnVfbGQKKysgIGZpCisrICBpZiB0ZXN0IC1uICIke2x0 X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKysgICAgbHRfY3ZfcGF0aF9MRD0kbHRfY3ZfcGF0 aF9MRENYWAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorKyAgZmkKKysg IHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExEQ1hYCisrICBDQz0ke0NYWC0iYysrIn0K KysgIGNvbXBpbGVyPSRDQworKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQworKyAgX0xU X0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsg dGhlbgorKyAgICAjIFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21waWxpbmcg QysrIGNvZGUsIHNvIHNldCB0aGUKKysgICAgIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQor KyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKKysgICAgZWxz ZQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQx KT0KKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAj IFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmlndXJhdGlvbgorKworKyAgICAgIExUX1BBVEhf TEQKKysKKysgICAgICAjIENoZWNrIGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVy bHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKKysgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxv dyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4KKysgICAgICBpZiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lIC1vICRsaWInCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwor KworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysKKysgICAgICAgICMg SWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Cisr ICAgICAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4 LCBidXQgSSBuZWVkIHRvCisrICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBi aXQgbW9yZS4gKE1NKQorKyAgICAgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAgICAgIyBhbmNp ZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAgICAg ICAgaWYgZXZhbCAiYCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAorKwkg ICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgICBf TFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1h cmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAg ICBlbHNlCisrICAgICAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0KKysgICAgICAgIGZpCisrICAgICAgZWxzZQorKyAgICAgICAgd2l0aF9nbnVfbGQ9bm8KKysg ICAgICAgIHdsYXJjPQorKworKyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRl ZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KKysgICAgICAgICMgY29tbWFuZCBmb3IgR05V IEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCisrICAgICAgICAjIGxp bmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBzZXR0aW5nIHNob3Vs ZAorKyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUg bGlua2VyIGZlYXR1cmVzIG9uCisrICAgICAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBiZWluZyB1 c2VkIG9uLgorKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJworKyAgICAgIGZpCisrCisrICAgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cworKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxh Z3MgYXJlIHVzZWQgd2hlbgorKyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyAg ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0 ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworKworKyAgICBlbHNlCisrICAgICAgR1hY PW5vCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICB3bGFyYz0KKysgICAgZmkKKysKKysg ICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIEMrKyBs aW5rIGNoYXJhY3RlcmlzdGljcworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRj b21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg ICBhaXgzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgOzsK KysgICAgICBhaXhbWzQtOV1dKikKKysgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrICAgICAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxp bmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysgICAgICAgICAgIyBoYXZlIHRvIGRvIGFu eXRoaW5nIHNwZWNpYWwuCisrICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysg ICAgICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxh Zz0iIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5v CisrCisrICAgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBs aW5raW5nIG9yIG5vcm1hbAorKyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0 bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKKysgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1 bnRpbWUgbGlua2luZy4KKysgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxh aXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7 IGRvCisrCSAgICAgIGNhc2UgJGxkX2ZsYWcgaW4KKysJICAgICAgKi1icnRsKikKKysJICAgICAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAgICAgIGJyZWFrCisrCSAgICAgICAg OzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgOzsKKysgICAgICAgICAgZXNhYwor KworKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworKyAgICAgICAgICBub19lbnRy eV9mbGFnPSctYm5vZW50cnknCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBXaGVuIGxhcmdl IGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgorKyAg ICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElm IGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJy b3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICAgIyBDWFhGTEFH Uy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKKysg ICAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBM REZMQUdTLgorKworKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAg ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAgICAgIF9MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAgICAgX0xUX1RBR1ZBUihmaWxlX2xp c3Rfc3BlYywgJDEpPScke3dsfS1mLCcKKysKKysgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCisrICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzAxMl1dfGFpeDQuW1sw MTJdXS4qKQorKyAgICAgICAgICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIg YW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxl Y3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisrCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJp bnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYm CisrCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1l ID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIK KysJICAgIDoKKysJICBlbHNlCisrCSAgICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrCSAgICAjIEl0IGZh aWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisr CSAgICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNv ZGVfbWludXNfTAorKwkgICAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysJICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKysJICBmaQorKyAgICAgICAgICBl c2FjCisrICAgICAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFy ZWRfZmxhZyAiJyR7d2x9LUcnCisrCSAgZmkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBu b3QgdXNpbmcgZ2NjCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu CisrCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwg QmV0YSAzIFJlbGVhc2UKKysJICAjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGlu ZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkg ICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAg IHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkgICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0n JHt3bH0tYk06U1JFJworKwkgICAgZmkKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisr ICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1i ZXhwYWxsJworKyAgICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9y dCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBp dCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8KKysJIyBleHBvcnQu CisrICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAg ICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAg ICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGlu ZyBmbGFncyAoLWJydGwpLAorKyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBl cnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAgIF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgICAjIERl dGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4g ZW1wdHkKKysgICAgICAgICAgIyBleGVjdXRhYmxlLgorKyAgICAgICAgICBfTFRfU1lTX01PRFVM RV9QQVRIX0FJWAorKyAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWci JyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0g IngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsg ZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJl ZF9mbGFnIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0g aWE2NDsgdGhlbgorKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgICAgX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCisrCSAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3lt X2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKysgICAgICAgICAgZWxzZQorKwkgICAgIyBEZXRlcm1p bmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisrCSAg ICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrCSAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKwkg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJw YXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVz aW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICAgIyAtYmVyb2sgd2ls bCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5Lgor KwkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2sn CisrCSAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJv aycKKysJICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9i amVjdHMgZnJvbSBhcmNoaXZlcworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPSckY29udmVuaWVuY2UnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9eWVzCisrCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRp dGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKysJICAgICMgbGlicmFyaWVzLgorKwkgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRf ZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91 dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrICAgICAg ICA7OworKworKyAgICAgIGJlb3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBz dXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVj a2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMg c3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAg RklYTUUKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCWVsc2UKKysJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCWZpCisr CTs7CisrCisrICAgICAgY2hvcnVzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgICAgICopCisrCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0CisrCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgIDs7CisrICAgICAgICBl c2FjCisrICAgICAgICA7OworKworKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKKysgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNl YXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKyAgICAgICAgX0xUX1RBR1ZBUihhbHdheXNf ZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAgICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVk X3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisrCisrICAgICAgICBpZiAkTEQgLS1oZWxw IDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2Ut YmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICAgICAgIyBJ ZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGlu ZQorKyAgICAgICAgICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJl cGVuZC4uLgorKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n aWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJ ICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysgICAg ICAgICAgZWxzZQorKwkgICAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmOworKyAgICAgICAgICBmaX4KKysgICAgICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRv dXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29u YW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAt WGxpbmtlciAkbGliJworKyAgICAgICAgZWxzZQorKyAgICAgICAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBkYXJ3aW4qIHwg cmhhcHNvZHkqKQorKyAgICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCisrCTs7 CisrCisrICAgICAgZGd1eCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAg ICAgICBlYysrKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysgICAg ICAgICAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysK KysgICAgICBmcmVlYnNkW1sxMl1dKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMg cmVwb3J0ZWQgdG8gYmUgZmFpcmx5IGJyb2tlbiBiZWZvcmUKKysJIyBzd2l0Y2ggdG8gRUxGCisr ICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKworKyAg ICAgIGZyZWVic2QtZWxmKikKKysgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKT1ubworKyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSop CisrICAgICAgICAjIEZyZWVCU0QgMyBhbmQgbGF0ZXIgdXNlIEdOVSBDKysgYW5kIEdOVSBsZCB3 aXRoIHN0YW5kYXJkIEVMRgorKyAgICAgICAgIyBjb252ZW50aW9ucworKyAgICAgICAgX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKysgICAgICAgIDs7CisrCisrICAgICAgZ251KikKKysg ICAgICAgIDs7CisrCisrICAgICAgaHB1eDkqKQorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkJ CQkgICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKKysJCQkJICAgICAgICAgICAgICMg bG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgICAgICBDQyopCisrICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgIGFDQyopCisrICAgICAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JEND IC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0 cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAgICAgICAgIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKyAgICAgICAgICAg ICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVz ZWQgd2hlbgorKyAgICAgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKyAgICAg ICAgICAgICMKKysgICAgICAgICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5 IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrICAgICAgICAgICAgIyBleHBsaWNpdGx5 IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysg ICAgICAgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1 ZGVkIGluIHRoZSBsaWJyYXJ5CisrICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCisrICAgICAg ICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1Mg LXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6 IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlz dCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNI TyAiWCRsaXN0IiB8ICRYc2VkJworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICopCisrICAg ICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgICAgICAg IGVsc2UKKysgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKyAgICAgICAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAg ICAgICAgICAgIGZpCisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7 CisrCisrICAgICAgaHB1eDEwKnxocHV4MTEqKQorKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVf bGQgPSBubzsgdGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT06CisrCisrICAgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAg ICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAgICAgICA7OworKyAgICAgICAgICAg ICopCisrCSAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LUUnCisrICAgICAgICAgICAgICA7OworKyAgICAgICAgICBlc2FjCisrICAgICAgICBmaQor KyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisr ICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgICAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgICAg ICAgOzsKKysgICAgICAgICAgKikKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPXllcworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlLCAkMSk9eWVzCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJCSAgICAgICAgICMgYnV0 IGFzIHRoZSBkZWZhdWx0CisrCQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5 LgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrCisrICAgICAgICBjYXNlICRjY19i YXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysJICAgIDs7CisrICAgICAgICAgIGFDQyopCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkg ICAgICBocHBhKjY0KikKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAg OzsKKysJICAgICAgaWE2NCopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7CisrCSAgICAgICopCisrCSAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsK KysJICAgIGVzYWMKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQor KwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNh c2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7 ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcK KysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhl bgorKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisrCSAgICAgICAgY2Fz ZSAkaG9zdF9jcHUgaW4KKysJICAgICAgICAgIGhwcGEqNjQqKQorKwkgICAgICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3 bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7Cisr CSAgICAgICAgICBpYTY0KikKKysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7 d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7Owor KwkgICAgICAgICAgKikKKysJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAg IDs7CisrCSAgICAgICAgZXNhYworKwkgICAgICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisr ICAgICAgICA7OworKworKyAgICAgIGludGVyaXhbWzMtOV1dKikKKysJX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tcnBhdGgsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKT0nJHt3bH0tRScKKysJIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBp bGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJy YXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVm YXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVy eSBtZW1vcnkKKysJIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9p ZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNl IGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1v dmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgor KwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1h Z2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3 MjgwYCAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2Vk ICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+ JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5 NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsKKysgICAgICBpcml4 NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBD QyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwg JFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8g JGxpYicKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11 c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUg SVJJWCBDKysgY29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1 cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFy Y2hpdmUuCisrCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1hciAt V1IsLXUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAg ICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVf bGQiID0gbm87IHRoZW4KKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0k dmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICBlbHNlCisrCSAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNI TyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgLW8gJGxpYicK KysJICAgICAgZmkKKysJICAgIGZpCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMs ICQxKT15ZXMKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwor KyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAg ICAgICAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9eWVzCisrICAgICAgICA7OworKwor KyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgorKyAgICAgICAgICBLQ0MqKQorKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChL QUkpIEMrKyBDb21waWxlcgorKworKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJl ZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9y ICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkgICAgIyB0byBpdHMg cHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1l ICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNo byAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFy ZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wn J2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8i YDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCisrCSAg ICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0 IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5k IGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5Lgor KwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2 ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVt IG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUg b3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJ ICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBs aXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJl ZF9leHQgMj4mMSB8ICRHUkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBs aXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4 dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNh YzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysKKysJICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAg X0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1k eW5hbWljJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMg bXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIg aXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKwkg IGljcGMqIHwgZWNwYyogKQorKwkgICAgIyBJbnRlbCBDKysKKysJICAgIHdpdGhfZ251X2xkPXll cworKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBs eSBkZWZpbmVkIHN5bWJvbHMKKysJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQg JHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCisrCSAgICAjIGVhcmxpZXIgZG8gbm90 IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGlu CisrCSAgICAgICoiVmVyc2lvbiA3LiIqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJworKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkJOzsKKysJICAgICAgKikgICMg VmVyc2lvbiA4LjAgb3IgbmV3ZXIKKysJICAgICAgICB0bXBfaWR5bj0KKysJICAgICAgICBjYXNl ICRob3N0X2NwdSBpbgorKwkJICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7CisrCQll c2FjCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQn IiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJCTs7CisrCSAgICBlc2FjCisrCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysJICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkg ICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9y dC1keW5hbWljJworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2 ZScKKysJICAgIDs7CisrICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQorKyAgICAgICAgICAgICMg UG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisrCSAgICBjYXNlIGAkQ0MgLVZgIGluCisrCSAg ICAqcGdDQ1wgW1sxLTVdXSogfCAqcGdjcHBcIFtbMS01XV0qKQorKwkgICAgICBfTFRfVEFHVkFS KHByZWxpbmtfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxk aXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGly ICRvYmpzICRsaWJvYmpzICRjb21waWxlX2RlcGxpYnN+CisrCQljb21waWxlX2NvbW1hbmQ9IiRj b21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCInCisrCSAg ICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGly fgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50 aWF0aW9uX2RpciAkdHBsZGlyICRvbGRvYmpzJG9sZF9kZXBsaWJzfgorKwkJJEFSICRBUl9GTEFH UyAkb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwg JE5MMlNQYH4KKysJCSRSQU5MSUIgJG9sZGxpYicKKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJ JENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+ CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRp cn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFu dGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNv bnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8 ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7 d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xz IC1vICRsaWInCisrCSAgICAgIDs7CisrCSAgICAqKSAjIFZlcnNpb24gNiB3aWxsIHVzZSB3ZWFr IHN5bWJvbHMKKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWIn CisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0 YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAgICA7 OworKwkgICAgZXNhYworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAg ICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1h cmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZc IiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRF Q0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAg ICAgICAgICA7OworKwkgIGN4eCopCisrCSAgICAjIENvbXBhcSBDKysKKysJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8g JGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKKysKKysJ ICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1h a2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBU aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIg ZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3 ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhl eSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVz LgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1g JEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwp L1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRl c3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0 ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrCSAg eGwqKQorKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKKysJICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS52ZXJ+CisrCQljYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQllY2hvICJsb2NhbDogKjsgfTsiID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJCSRDQyAtcW1rc2hyb2JqICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12 ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwor KwkgICAgZmkKKysJICAgIDs7CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2Vk IDVxYCBpbgorKwkgICAgKlN1blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAg X0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJworKwkgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAt aCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUg LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRf c3ltYm9scycKKysJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9Jy1SJGxpYmRpcicKKysJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBp biAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVu Y2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5p ZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgICAgX0xUX1RBR1ZBUihjb21w aWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMKKysKKysJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVy IHNvbWV0aGluZyBiYXNlZCBvbgorKwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRv YmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCisrCSAgICAgICMgd291bGQgYmUg YmV0dGVyLgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysKKysJICAg ICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVk IHVzaW5nCisrCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNv bXBpbGVyLiAgVGhpcyBpcworKwkgICAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFu dGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4K KysJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRv bGRsaWIgJG9sZG9ianMnCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwllc2Fj CisrCTs7CisrCisrICAgICAgbHlueG9zKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CTs7CisrCisrICAgICAgbTg4ayopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysJOzsKKysKKysgICAgICBtdnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAgICAgY3h4KikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgOzsKKysJ ICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKwllc2FjCisrCTs7 CisrCisrICAgICAgbmV0YnNkKikKKysgICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAt IHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCisrCSAgd2xhcmM9 CisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRp cicKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCWZpCisrCSMgV29ya2Fyb3VuZCBz b21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29u ZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKwk7OworKwor KyAgICAgICpudG8qIHwgKnFueCopCisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PXllcworKwk7OworKworKyAgICAgIG9wZW5ic2QyKikKKysgICAgICAgICMgQysrIHNoYXJlZCBs aWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwk7OworKworKyAgICAgIG9wZW5ic2QqKQorKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9s ZC5zbzsgdGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCSAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJICBfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysJ ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgs JGxpYmRpcicKKysJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVw IF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93 ZXJwYyI7IHRoZW4KKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUs JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3 bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGZpCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9ZWNobworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwlm aQorKwk7OworKworKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgICAgICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5kIEFzc29j aWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxsIG9ubHkg Y3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAjIGVuZHMg d2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5Cisr CSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgor KwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVk X2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydg OyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8i YDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1w bGliICRsaWInCisrCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysg b2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyB0aGUgS0FJIEMrKyBj b21waWxlci4KKysJICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgb3NmMyopIF9MVF9UQUdWQVIo b2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2Jqcycg OzsKKysJICAgICAgKikgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAk b2xkbGliICRvbGRvYmpzJyA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysgICAgICAgICAgUkND KikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KKysJICAgIDs7CisrICAgICAgICAgIGN4eCopCisrCSAgICBjYXNlICRob3N0IGluCisrCSAg ICAgIG9zZjMqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCSAgICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdp c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAgICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3ds fSRsaWJkaXInCisrCQk7OworKwkgICAgICAqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKysJICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVf cmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhw b3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGki ID4+ICRsaWIuZXhwOyBkb25lfgorKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4 cH4KKysJICAgICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtbXN5bSAtc29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhz ZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp Yn4KKysJICAgICAgICAgICRSTSAkbGliLmV4cCcKKysJICAgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXInCisrCQk7OworKwkgICAg ZXNhYworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 OgorKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQg bGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3 YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5r aW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAj IGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBs aWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+ JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVt cGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9 IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBs aXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBk b25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgaWYg dGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAg ICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCisrCSAgICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgICBvc2Yz KikKKysJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAk e3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCQkgIDs7CisrCSAg ICAgICAgKikKKysJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t bXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAk RUNITyAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11 cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli JworKwkJICA7OworKwkgICAgICBlc2FjCisrCisrCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICAg IyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBs aXN0cworKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5k IGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku CisrCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12 IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworKworKwkgICAgZWxzZQorKwkg ICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgICAg X0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgZmkKKysJICAgIDs7CisrICAgICAg ICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIHBzb3MqKQorKyAgICAgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKworKyAgICAgIHN1bm9zNCopCisrICAgICAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFN1biBDKysg NC54CisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJ ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgIGxj YyopCisrCSAgICAjIEx1Y2lkCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7 CisrICAgICAgICAgICopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7Cisr ICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIHNvbGFyaXMqKQorKyAgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQu MiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzX25lZWRfbGMsJDEpPXllcworKwkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxh ZywgJDEpPScgLXpkZWZzJworKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycK KysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2Jh bDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wx Oy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgICAg ICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRz b25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCSAgICBjYXNlICRob3N0X29z IGluCisrCSAgICAgIHNvbGFyaXMyLltbMC01XV0gfCBzb2xhcmlzMi5bWzAtNV1dLiopIDs7Cisr CSAgICAgICopCisrCQkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9y ZGVyIGxpbmtlciBvcHRpb25zLAorKwkJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFn Jy4KKysJICAgICAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/ KQorKwkJX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRy YWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwkgICAgICAgIDs7CisrCSAgICBl c2FjCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysKKysJICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKworKwkgICAgIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJD QyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJ ICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBp bmNsdWRlZAorKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2Fy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgOzsK KysgICAgICAgICAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCisrCSAgICAjIFRoZSBDKysgY29tcGlsZXIgbXVz dCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgYXJjaGl2ZS4KKysJICAgIF9MVF9UQUdWQVIob2xkX2Fy Y2hpdmVfY21kcywgJDEpPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2Jq cycKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0 aCBTb2xhcmlzIGxpbmtlcgorKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2Zs YWcsICQxKT0nICR7d2x9LXogJHt3bH1kZWZzJworKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwg JEdSRVAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4 cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJCSAgJENDIC1zaGFyZWQgLW5vc3RkbGliICR7 d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkg ICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0 IHRoYXQgbGlzdHMKKysJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICAgICAjIGxpbmtpbmcgYSBzaGFy ZWQgbGlicmFyeS4KKysJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFy ZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysJICAg ICAgZWxzZQorKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1Qg YC1zaGFyZWQnIG9uIHRoaXMKKysJICAgICAgICAjIHBsYXRmb3JtLgorKwkgICAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRl eHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8g ImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0t TSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAg ICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhh dCBsaXN0cworKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxl cyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgorKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysJICAgICAgZmkKKysK KysJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LVIgJHdsJGxpYmRpcicKKysJICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKwkJc29sYXJpczIuW1sw LTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKysJCSopCisrCQkgIF9MVF9UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVu aWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworKwkJICA7OworKwkgICAgICBlc2Fj CisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAg IHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEw XV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRdXSopCisrICAgICAgX0xUX1RBR1ZB Uihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQnCisrICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgn CisrCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgIENDKikKKysJICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMg JHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysgICAgICBlc2Fj CisrICAgICAgOzsKKysKKysgICAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKwkj IE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNl IHdlIGRvIG5vdAorKwkjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBz eW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrCSMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNo IG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKwkjIGV2ZXIgbGluayBjb3JyZWN0 bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrCSMgdGhvdWdo LCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhh bmRlZAorKwkjIGFzIC16IGRlZnMuCisrCV9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQx KT0nJHt3bH0teix0ZXh0JworKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyR7d2x9LXosbm9kZWZzJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9 bm8KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKysJ X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9JzonCisrCV9MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworKwlydW5wYXRoX3Zhcj0nTERfUlVOX1BB VEgnCisrCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1i b2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKKysJICAgIDs7CisrCSAgKikKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICA7 OworKwllc2FjCisrICAgICAgOzsKKysKKysgICAgICB0YW5kZW0qKQorKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgTkNDKikKKysJICAgICMgTm9uU3RvcC1VWCBOQ0Mg My4yMAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgICAq KQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAg ICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYwor KyAgICAgICAgOzsKKysKKysgICAgICB2eHdvcmtzKikKKysgICAgICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKT1ubworKyAgICAgICAgOzsKKysKKysgICAgICAqKQorKyAgICAgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICBfTFRfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIEFDX01TR19S RVNVTFQoWyRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpXSkKKysgICAgdGVzdCAiJF9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworKyAgICBf TFRfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgorKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIK KysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxh dGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMg dGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlv dSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgIF9MVF9T WVNfSElEREVOX0xJQkRFUFMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICAgIF9M VF9DT01QSUxFUl9DX08oJDEpCisrICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorKyAg ICBfTFRfTElOS0VSX1NITElCUygkMSkKKysgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkK KysgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgICBfTFRfQ09ORklH KCQxKQorKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisrCisrICBDQz0kbHRfc2F2ZV9DQwor KyAgTERDWFg9JExECisrICBMRD0kbHRfc2F2ZV9MRAorKyAgR0NDPSRsdF9zYXZlX0dDQworKyAg d2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKKysgIGx0X2N2X3BhdGhfTERDWFg9JGx0 X2N2X3BhdGhfTEQKKysgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorKyAgbHRfY3Zf cHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCisrICBsdF9jdl9wcm9nX2dudV9sZD0k bHRfc2F2ZV93aXRoX2dudV9sZAorK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAh PSB5ZXMKKysKKytBQ19MQU5HX1BPUAorK10pIyBfTFRfTEFOR19DWFhfQ09ORklHCisrCisrCisr IyBfTFRfU1lTX0hJRERFTl9MSUJERVBTKFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgRmlndXJlIG91dCAiaGlkZGVuIiBsaWJyYXJ5IGRlcGVuZGVu Y2llcyBmcm9tIHZlcmJvc2UKKysjIGNvbXBpbGVyIG91dHB1dCB3aGVuIGxpbmtpbmcgYSBzaGFy ZWQgbGlicmFyeS4KKysjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhl IG5lY2Vzc2FyeQorKyMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorK200 X2RlZnVuKFtfTFRfU1lTX0hJRERFTl9MSUJERVBTXSwKKytbbTRfcmVxdWlyZShbX0xUX0ZJTEVV VElMU19ERUZBVUxUU10pZG5sCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBh ZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKKytfTFRfVEFHVkFSKHByZWRlcF9vYmplY3Rz LCAkMSk9CisrX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0KKytfTFRfVEFHVkFSKHBy ZWRlcHMsICQxKT0KKytfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9CisrX0xUX1RBR1ZBUihjb21w aWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0KKysKKytkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGUgaGVyZSwKKytkbmwgYmVjYXVzZSBpdCBjb250YWlucyBj b2RlIGludGVuZGVkIGZvciBhbiBleGVjdXRhYmxlLAorK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQn cyBwb3NzaWJsZSB3ZSBzaG91bGQgbGV0IGVhY2gKKytkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/ Pz8/X2xpbmtfdGVzdF9jb2RlIHZhcmlhYmxlLAorK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVy ZS4uLgorK200X2lmKFskMV0sIFtdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YK KytpbnQgYTsKKyt2b2lkIGZvbyAodm9pZCkgeyBhID0gMDsgfQorK19MVF9FT0YKKytdLCBbJDFd LCBbQ1hYXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrY2xhc3MgRm9vCisr eworK3B1YmxpYzoKKysgIEZvbyAodm9pZCkgeyBhID0gMDsgfQorK3ByaXZhdGU6CisrICBpbnQg YTsKKyt9OworK19MVF9FT0YKKytdLCBbJDFdLCBbRjc3XSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19l eHQgPDxfTFRfRU9GCisrICAgICAgc3Vicm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25l CisrICAgICAgaW50ZWdlcio0IGEKKysgICAgICBhPTAKKysgICAgICByZXR1cm4KKysgICAgICBl bmQKKytfTFRfRU9GCisrXSwgWyQxXSwgW0ZDXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxf TFRfRU9GCisrICAgICAgc3Vicm91dGluZSBmb28KKysgICAgICBpbXBsaWNpdCBub25lCisrICAg ICAgaW50ZWdlciBhCisrICAgICAgYT0wCisrICAgICAgcmV0dXJuCisrICAgICAgZW5kCisrX0xU X0VPRgorK10sIFskMV0sIFtHQ0pdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YK KytwdWJsaWMgY2xhc3MgZm9vIHsKKysgIHByaXZhdGUgaW50IGE7CisrICBwdWJsaWMgdm9pZCBi YXIgKHZvaWQpIHsKKysgICAgYSA9IDA7CisrICB9CisrfTsKKytfTFRfRU9GCisrXSkKKytkbmwg UGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5CisrZG5s IG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KKytpZiBBQ19UUllfRVZBTChh Y19jb21waWxlKTsgdGhlbgorKyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRy YWN0IHRoZSBuZWNlc3NhcnkKKysgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZs YWdzLgorKworKyAgIyBTZW50aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBu b3Qgd2UgYXJlIGJlZm9yZQorKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCisrICBwcmVf dGVzdF9vYmplY3RfZGVwc19kb25lPW5vCisrCisrICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92 ZXJib3NlX2xpbmtfY21kImA7IGRvCisrICAgIGNhc2UgJHAgaW4KKysKKysgICAgLUwqIHwgLVIq IHwgLWwqKQorKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17 TCxSfSIgYW5kIHRoZSBwYXRoLgorKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCisrICAgICAg IGlmIHRlc3QgJHAgPSAiLUwiIHx8CisrICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCisr CSBwcmV2PSRwCisrCSBjb250aW51ZQorKyAgICAgICBlbHNlCisrCSBwcmV2PQorKyAgICAgICBm aQorKworKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsg dGhlbgorKwkgY2FzZSAkcCBpbgorKwkgLUwqIHwgLVIqKQorKwkgICAjIEludGVybmFsIGNvbXBp bGVyIGxpYnJhcnkgcGF0aHMgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhvc2UKKysJICAgIyBwcm92aWRl ZCB0aGUgdXNlci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCisrCSAgICMg dXNlciBzdXBwbGllZCBsaWJzIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgor KwkgICBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQx KSI7IHRoZW4KKysJICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEp PSIke3ByZXZ9JHtwfSIKKysJICAgZWxzZQorKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoLCAkMSk9IiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgs ICQxKX0gJHtwcmV2fSR7cH0iCisrCSAgIGZpCisrCSAgIDs7CisrCSAjIFRoZSAiLWwiIGNhc2Ug d291bGQgbmV2ZXIgY29tZSBiZWZvcmUgdGhlIG9iamVjdCBiZWluZworKwkgIyBsaW5rZWQsIHNv IGRvbid0IGJvdGhlciBoYW5kbGluZyB0aGlzIGNhc2UuCisrCSBlc2FjCisrICAgICAgIGVsc2UK KysJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSkiOyB0aGVuCisrCSAgIF9M VF9UQUdWQVIocG9zdGRlcHMsICQxKT0iJHtwcmV2fSR7cH0iCisrCSBlbHNlCisrCSAgIF9MVF9U QUdWQVIocG9zdGRlcHMsICQxKT0iJHtfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSl9ICR7cHJldn0k e3B9IgorKwkgZmkKKysgICAgICAgZmkKKysgICAgICAgOzsKKysKKysgICAgKi4kb2JqZXh0KQor KyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hv d3MgdXAKKysgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCisrICAgICAgIGlm IHRlc3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0IjsgdGhlbgorKwkgcHJlX3Rlc3Rfb2JqZWN0 X2RlcHNfZG9uZT15ZXMKKysJIGNvbnRpbnVlCisrICAgICAgIGZpCisrCisrICAgICAgIGlmIHRl c3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCisrCSBpZiB0ZXN0IC16 ICIkX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpIjsgdGhlbgorKwkgICBfTFRfVEFHVkFS KHByZWRlcF9vYmplY3RzLCAkMSk9IiRwIgorKwkgZWxzZQorKwkgICBfTFRfVEFHVkFSKHByZWRl cF9vYmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkgJHAiCisrCSBm aQorKyAgICAgICBlbHNlCisrCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVj dHMsICQxKSI7IHRoZW4KKysJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJHAi CisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRfTFRfVEFH VkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpICRwIgorKwkgZmkKKysgICAgICAgZmkKKysgICAgICAg OzsKKysKKysgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3QuCisrCisrICAgIGVzYWMKKysgIGRv bmUKKysKKysgICMgQ2xlYW4gdXAuCisrICBybSAtZiBhLm91dCBhLmV4ZQorK2Vsc2UKKysgIGVj aG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBpbGluZyAkMSB0ZXN0IHByb2dyYW0i CisrZmkKKysKKyskUk0gLWYgY29uZmVzdC4kb2JqZXh0CisrCisrIyBQT1JUTUU6IG92ZXJyaWRl IGFib3ZlIHRlc3Qgb24gc3lzdGVtcyB3aGVyZSBpdCBpcyBicm9rZW4KKyttNF9pZihbJDFdLCBb Q1hYXSwKKytbY2FzZSAkaG9zdF9vcyBpbgorK2ludGVyaXhbWzMtOV1dKikKKysgICMgSW50ZXJp eCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0 aGVyIHRoYW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysi IHRvIERUUlQuCisrICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCQxKT0KKysgIF9MVF9UQUdW QVIocG9zdGRlcF9vYmplY3RzLCQxKT0KKysgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPQorKyAg OzsKKysKKytsaW51eCopCisrICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpT dW5cIEMqKQorKyAgICAjIFN1biBDKysgNS45CisrCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRz LWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRo IHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGlu IENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRl cGVuZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1s aWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAg ICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0 IiAhPSB5ZXM7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9 Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysK Kytzb2xhcmlzKikKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICBDQyopCisrICAgICMgVGhl IG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAgICAjIGlu Y29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKKysgICAg IyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAjIC1saWJy YXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhGTEFHUyAi IGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNfdXNlX3N0 bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBBZGRpbmcgdGhpcyBy ZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAgb2Ygc2hhcmVkIGxpYnJhcmllcyBmb3IKKysgICAg IyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVmb3JlIDUuNiwgZWxzZSBQSUMgb2JqZWN0cyBmcm9t IGFuIG9sZAorKyAgICAjIGFyY2hpdmUgd2lsbCBiZSBsaW5rZWQgaW50byB0aGUgb3V0cHV0LCBs ZWFkaW5nIHRvIHN1YnRsZSBidWdzLgorKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9y dDQiICE9IHllczsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFy eT1Dc3RkIC1saWJyYXJ5PUNydW4nCisrICAgIGZpCisrICAgIDs7CisrICBlc2FjCisrICA7Owor K2VzYWMKKytdKQorKworK2Nhc2UgIiAkX0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpICIgaW4KKysq IiAtbGMgIiopIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubyA7OworK2Vz YWMKKysgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KKytpZiB0ZXN0 IC1uICIke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IjsgdGhlbgor KyBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPWBlY2hvICIgJHtfTFRf VEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSIgfCAke1NFRH0gLWUgJ3MhIC1M ISAhZycgLWUgJ3MhXiAhISdgCisrZmkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xpYl9z ZWFyY2hfZGlyc10sIFsxXSwKKysgICAgW1RoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlz IGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGlicmFyeV0pCisrX0xUX1RBR0RFQ0wo W10sIFtwcmVkZXBfb2JqZWN0c10sIFsxXSwKKysgICAgW0RlcGVuZGVuY2llcyB0byBwbGFjZSBi ZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0bworKyAgICBjcmVhdGUg YSBzaGFyZWQgbGlicmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtwb3N0ZGVwX29iamVjdHNdLCBb MV0pCisrX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBzXSwgWzFdKQorK19MVF9UQUdERUNMKFtdLCBb cG9zdGRlcHNdLCBbMV0pCisrX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJfc2VhcmNoX3Bh dGhdLCBbMV0sCisrICAgIFtUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkg YnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZworKyAgICBhIHNoYXJlZCBsaWJyYXJ5XSkKKytd KSMgX0xUX1NZU19ISURERU5fTElCREVQUworKworKworKyMgX0xUX1BST0dfRjc3CisrIyAtLS0t LS0tLS0tLS0KKysjIFNpbmNlIEFDX1BST0dfRjc3IGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1 cm5zIHRoZSBlbXB0eSBzdHJpbmcKKysjIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIs IHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0Y3N10s CisrWworK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GNzc9eWVzXSkKKytB Q19QUk9HX0Y3NworK2lmIHRlc3QgLXogIiRGNzciIHx8IHRlc3QgIlgkRjc3IiA9ICJYbm8iOyB0 aGVuCisrICBfbHRfZGlzYWJsZV9GNzc9eWVzCisrZmkKKytwb3BkZWYoW0FDX01TR19FUlJPUl0p CisrXSkjIF9MVF9QUk9HX0Y3NworKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0 aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW19MVF9QUk9HX0Y3N10sIFtdKQorKworKworKyMgX0xU X0xBTkdfRjc3X0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgRm9ydHJhbiA3 NyBjb21waWxlciBhcmUKKysjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJl IHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKysjIHRvIHdyaXRlIHRoZSBjb21waWxl ciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xBTkdfRjc3X0NP TkZJR10sCisrW0FDX1JFUVVJUkUoW19MVF9QUk9HX0Y3N10pZG5sCisrQUNfTEFOR19QVVNIKEZv cnRyYW4gNzcpCisrCisrX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisr X0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIoYWx3YXlz X2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKytfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0KKytfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorK19MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZSwgJDEpPW5vCisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Cisr X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX1RBR1ZBUiho YXJkY29kZV9taW51c19MLCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywg JDEpPW5vCisrX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KKytfTFRfVEFHVkFSKG1v ZHVsZV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKytf TFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCisrX0xUX1RBR1ZBUihvbGRf YXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVm aW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PQorK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5v CisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGY3NyB0ZXN0IHNvdXJjZXMuCisrYWNf ZXh0PWYKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgZjc3IHRlc3Qg c291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKwor KyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRl cm1pbmVkIHRoYXQKKysjIHRoZSBGNzcgY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFy aWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisrIyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8g YXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUg Y29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVy LgorK2lmIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRv IGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVu ZAorKyIKKysKKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBs dF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQK KysiCisrCisrICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlv bnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAj IHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NP TVBJTEVSX0JPSUxFUlBMQVRFCisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFs bG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9D Qz0iJENDIgorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9JHtGNzctImY3NyJ9CisrICBjb21w aWxlcj0kQ0MKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysgIF9MVF9DQ19CQVNF TkFNRShbJGNvbXBpbGVyXSkKKysgIEdDQz0kRzc3CisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIi OyB0aGVuCisrICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQg bGlicmFyaWVzXSkKKysgICAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQorKwor KyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10p CisrICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1u bworKworKyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmll cyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20g UElDLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4MyopCisrICAgICAgICB0ZXN0 ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICAgaWYg dGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2 ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFO TElCICRsaWInCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikK KysJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVs aW5raW5nIiA9IG5vIDsgdGhlbgorKwkgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBl bmFibGVfc3RhdGljPW5vCisrCWZpCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgIEFDX01T R19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0 aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIg ZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KKysgICAgdGVzdCAiJGVuYWJs ZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICAgIEFDX01TR19SRVNVTFQo WyRlbmFibGVfc3RhdGljXSkKKysKKysgICAgX0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKKysg ICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrICAgICMjIENBVkVBVCBFTVBUT1I6Cisr ICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFj cm9zLCBkbyBub3QgY2hhbmdlCisrICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lz ZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrICAgICMjIHdoYXQg eW91IGFyZSBkb2luZy4uLgorKyAgICBfTFRfQ09NUElMRVJfUElDKCQxKQorKyAgICBfTFRfQ09N UElMRVJfQ19PKCQxKQorKyAgICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgICAgX0xU X0xJTktFUl9TSExJQlMoJDEpCisrICAgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrICAg IF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysKKysgICAgX0xUX0NPTkZJRygkMSkK KysgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAgR0NDPSRsdF9zYXZlX0dDQworKyAg Q0M9IiRsdF9zYXZlX0NDIgorK2ZpICMgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzCisr CisrQUNfTEFOR19QT1AKKytdKSMgX0xUX0xBTkdfRjc3X0NPTkZJRworKworKworKyMgX0xUX1BS T0dfRkMKKysjIC0tLS0tLS0tLS0tCisrIyBTaW5jZSBBQ19QUk9HX0ZDIGlzIGJyb2tlbiwgaW4g dGhhdCBpdCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcKKysjIGlmIHRoZXJlIGlzIG5vIGZvcnRy YW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19M VF9QUk9HX0ZDXSwKKytbCisrcHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9kaXNhYmxlX0ZD PXllc10pCisrQUNfUFJPR19GQworK2lmIHRlc3QgLXogIiRGQyIgfHwgdGVzdCAiWCRGQyIgPSAi WG5vIjsgdGhlbgorKyAgX2x0X2Rpc2FibGVfRkM9eWVzCisrZmkKKytwb3BkZWYoW0FDX01TR19F UlJPUl0pCisrXSkjIF9MVF9QUk9HX0ZDCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbX0xUX1BST0dfRkNdLCBbXSkKKysKKysKKysj IF9MVF9MQU5HX0ZDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFu IGNvbXBpbGVyIGFyZQorKyMgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUg c3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRworKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVy IGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK200X2RlZnVuKFtfTFRfTEFOR19GQ19DT05G SUddLAorK1tBQ19SRVFVSVJFKFtfTFRfUFJPR19GQ10pZG5sCisrQUNfTEFOR19QVVNIKEZvcnRy YW4pCisrCisrX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9y dF9zeW1ib2xzLCAkMSk9bm8KKytfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0K KytfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZSwgJDEpPW5vCisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29k ZV9taW51c19MLCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5v CisrX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KKytfTFRfVEFHVkFSKG1vZHVsZV9j bWRzLCAkMSk9CisrX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFH VkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2 ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKKytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9m bGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19M VF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisr IyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGZjIHRlc3Qgc291cmNlcy4KKythY19leHQ9JHth Y19mY19zcmNleHQtZn0KKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQg ZmMgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2Jq ZXh0CisrCisrIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJl YWR5IGRldGVybWluZWQgdGhhdAorKyMgdGhlIEZDIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBT b21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQorKyMgYXJlIGN1cnJlbnRseSBhc3N1 bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKKysjIGFuZCB3 aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBj b21waWxlci4KKytpZiB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllczsgdGhlbgorKyAgIyBD b2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAg ICAgIGVuZAorKyIKKysKKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3Rz CisrICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKKysgICAgICBwcm9ncmFtIHQKKysgICAg ICBlbmQKKysiCisrCisrICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmln dXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrICBfTFRfVEFHX0NPTVBJTEVSCisr CisrICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorKyAg X0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrICBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisr ICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorKyAgbHRf c2F2ZV9DQz0iJENDIgorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9JHtGQy0iZjk1In0KKysg IGNvbXBpbGVyPSRDQworKyAgR0NDPSRhY19jdl9mY19jb21waWxlcl9nbnUKKysKKysgIF9MVF9U QUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkK KysKKysgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgICAgQUNfTVNHX0NIRUNLSU5H KFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorKyAgICBBQ19NU0dfUkVT VUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisrCisrICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhl ciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAgdGVzdCAiJGNhbl9idWlsZF9zaGFy ZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrICAgICMgT24gQUlYLCBzaGFyZWQg bGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFu ZAorKyAgICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4K KysgICAgICBhaXgzKikKKysgICAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBl bmFibGVfc3RhdGljPW5vCisrICAgICAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAg ICAgICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAg ICAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKysgICAgICAgIGZpCisrICAg ICAgICA7OworKyAgICAgIGFpeFtbNC05XV0qKQorKwlpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlh NjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisrCSAgdGVz dCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysJZmkKKysgICAg ICAgIDs7CisrICAgIGVzYWMKKysgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQor KworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmll c10pCisrICAgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0 aWMgaXMgeWVzLgorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0 YXRpYz15ZXMKKysgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9zdGF0aWNdKQorKworKyAgICBf TFRfVEFHVkFSKEdDQywgJDEpPSIkYWNfY3ZfZmNfY29tcGlsZXJfZ251IgorKyAgICBfTFRfVEFH VkFSKExELCAkMSk9IiRMRCIKKysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhl cmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5v dCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhl bSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRv aW5nLi4uCisrICAgIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoJDEpCisrICAgIF9MVF9DT01QSUxF Ul9QSUMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICAgIF9MVF9DT01QSUxFUl9G SUxFX0xPQ0tTKCQxKQorKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKKysgICAgX0xUX1NZU19E WU5BTUlDX0xJTktFUigkMSkKKysgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQor KworKyAgICBfTFRfQ09ORklHKCQxKQorKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisrCisr ICBHQ0M9JGx0X3NhdmVfR0NDCisrICBDQz0iJGx0X3NhdmVfQ0MiCisrZmkgIyB0ZXN0ICIkX2x0 X2Rpc2FibGVfRkMiICE9IHllcworKworK0FDX0xBTkdfUE9QCisrXSkjIF9MVF9MQU5HX0ZDX0NP TkZJRworKworKworKyMgX0xUX0xBTkdfR0NKX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJs ZXMgZm9yIHRoZSBHTlUgSmF2YSBDb21waWxlciBjb21waWxlcgorKyMgYXJlIHN1aXRhYmx5IGRl ZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05G SUcKKysjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4K KyttNF9kZWZ1bihbX0xUX0xBTkdfR0NKX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0df R0NKXSlkbmwKKytBQ19MQU5HX1NBVkUKKysKKysjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3Ig SmF2YSB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWphdmEKKysKKysjIE9iamVjdCBmaWxlIGV4dGVu c2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfVEFH VkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg Y29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9 IgorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxl X2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZv aWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9OyB9JworKworKyMgbHRtYWluIG9ubHkgdXNlcyAk Q0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKytf TFRfVEFHX0NPTVBJTEVSCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBs ZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxF UlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50 cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrbHRfc2F2ZV9HQ0M9JEdDQworK0dDQz15ZXMKKytDQz0k e0dDSi0iZ2NqIn0KKytjb21waWxlcj0kQ0MKKytfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JEND CisrX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJd KQorKworKyMgR0NKIGRpZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNp dGx5IGxpbmsgbGliYyBpbi4KKytfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9 bm8KKysKKytfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21k cworKworKyMjIENBVkVBVCBFTVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3 aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmlu ZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhh Y3RseQorKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7 IHRoZW4KKysgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygk MSkKKysgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygk MSkKKysgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQ QVRIKCQxKQorKworKyAgX0xUX0NPTkZJRygkMSkKKytmaQorKworK0FDX0xBTkdfUkVTVE9SRQor KworK0dDQz0kbHRfc2F2ZV9HQ0MKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0dD Sl9DT05GSUcKKysKKysKKysjIF9MVF9MQU5HX1JDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlh YmxlcyBmb3IgdGhlIFdpbmRvd3MgcmVzb3VyY2UgY29tcGlsZXIKKysjIGFyZSBzdWl0YWJseSBk ZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09O RklHCisrIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcu CisrbTRfZGVmdW4oW19MVF9MQU5HX1JDX0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW0xUX1BST0df UkNdKWRubAorK0FDX0xBTkdfU0FWRQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBS QyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PXJjCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24g Zm9yIGNvbXBpbGVkIFJDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2Jq ZXh0LCAkMSk9JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxl IHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSdzYW1wbGUgTUVOVSB7IE1FTlVJ VEVNICImU291cCIsIDEwMCwgQ0hFQ0tFRCB9JworKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSIkbHRfc2ltcGxlX2Nv bXBpbGVfdGVzdF9jb2RlIgorKworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBj b25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVS CisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytf TFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBB bGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0ND PSIkQ0MiCisrbHRfc2F2ZV9HQ0M9JEdDQworK0dDQz0KKytDQz0ke1JDLSJ3aW5kcmVzIn0KKytj b21waWxlcj0kQ0MKKytfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX0NDX0JBU0VO QU1FKFskY29tcGlsZXJdKQorK19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQx KT15ZXMKKysKKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICA6CisrICBfTFRfQ09O RklHKCQxKQorK2ZpCisrCisrR0NDPSRsdF9zYXZlX0dDQworK0FDX0xBTkdfUkVTVE9SRQorK0ND PSIkbHRfc2F2ZV9DQyIKKytdKSMgX0xUX0xBTkdfUkNfQ09ORklHCisrCisrCisrIyBMVF9QUk9H X0dDSgorKyMgLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRfUFJPR19HQ0pdLAorK1ttNF9pZmRl ZihbQUNfUFJPR19HQ0pdLCBbQUNfUFJPR19HQ0pdLAorKyAgW200X2lmZGVmKFtBXVtNX1BST0df R0NKXSwgW0FdW01fUFJPR19HQ0pdLAorKyAgICBbQUNfQ0hFQ0tfVE9PTChHQ0osIGdjaiwpCisr ICAgICAgdGVzdCAieCR7R0NKRkxBR1Mrc2V0fSIgPSB4c2V0IHx8IEdDSkZMQUdTPSItZyAtTzIi CisrICAgICAgQUNfU1VCU1QoR0NKRkxBR1MpXSldKVtdZG5sCisrXSkKKysKKysjIE9sZCBuYW1l OgorK0FVX0FMSUFTKFtMVF9BQ19QUk9HX0dDSl0sIFtMVF9QUk9HX0dDSl0pCisrZG5sIGFjbG9j YWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbTFRfQUNfUFJP R19HQ0pdLCBbXSkKKysKKysKKysjIExUX1BST0dfUkMKKysjIC0tLS0tLS0tLS0KKytBQ19ERUZV TihbTFRfUFJPR19SQ10sCisrW0FDX0NIRUNLX1RPT0woUkMsIHdpbmRyZXMsKQorK10pCisrCisr IyBPbGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19SQ10sIFtMVF9QUk9HX1JDXSkKKytk bmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtM VF9BQ19QUk9HX1JDXSwgW10pCisrCisrCisrIyBfTFRfREVDTF9FR1JFUAorKyMgLS0tLS0tLS0t LS0tLS0KKysjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29z ZSB0aGUgYmVzdCBncmVwCisrIyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRo ZSB1c2VyJ3MgUEFUSC4KKyttNF9kZWZ1bihbX0xUX0RFQ0xfRUdSRVBdLAorK1tBQ19SRVFVSVJF KFtBQ19QUk9HX0VHUkVQXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0ZHUkVQXSlkbmwKKyt0 ZXN0IC16ICIkR1JFUCIgJiYgR1JFUD1ncmVwCisrX0xUX0RFQ0woW10sIFtHUkVQXSwgWzFdLCBb QSBncmVwIHByb2dyYW0gdGhhdCBoYW5kbGVzIGxvbmcgbGluZXNdKQorK19MVF9ERUNMKFtdLCBb RUdSRVBdLCBbMV0sIFtBbiBFUkUgbWF0Y2hlcl0pCisrX0xUX0RFQ0woW10sIFtGR1JFUF0sIFsx XSwgW0EgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hlcl0pCisrZG5sIE5vbi1ibGVlZGluZy1lZGdlIGF1 dG9jb25mIGRvZXNuJ3Qgc3Vic3QgR1JFUCwgc28gZG8gaXQgaGVyZSB0b28KKytBQ19TVUJTVChb R1JFUF0pCisrXSkKKysKKysKKysjIF9MVF9ERUNMX09CSkRVTVAKKysjIC0tLS0tLS0tLS0tLS0t CisrIyBJZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBBdXRvY29uZiB0byBjaG9vc2UgdGhl IGJlc3Qgb2JqZHVtcAorKyMgYXZhaWxhYmxlLCBjaG9vc2UgdGhlIG9uZSBmaXJzdCBpbiB0aGUg dXNlcidzIFBBVEguCisrbTRfZGVmdW4oW19MVF9ERUNMX09CSkRVTVBdLAorK1tBQ19DSEVDS19U T09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpE VU1QPW9iamR1bXAKKytfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtBbiBvYmplY3Qgc3lt Ym9sIGR1bXBlcl0pCisrQUNfU1VCU1QoW09CSkRVTVBdKQorK10pCisrCisrCisrIyBfTFRfREVD TF9TRUQKKysjIC0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGEgZnVsbHktZnVuY3Rpb25hbCBz ZWQgcHJvZ3JhbSwgdGhhdCB0cnVuY2F0ZXMKKysjIGFzIGZldyBjaGFyYWN0ZXJzIGFzIHBvc3Np YmxlLiAgUHJlZmVyIEdOVSBzZWQgaWYgZm91bmQuCisrbTRfZGVmdW4oW19MVF9ERUNMX1NFRF0s CisrW0FDX1BST0dfU0VECisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQg LWUgMXMvXlgvLyIKKytfTFRfREVDTChbXSwgW1NFRF0sIFsxXSwgW0Egc2VkIHByb2dyYW0gdGhh dCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXRdKQorK19MVF9ERUNMKFtdLCBbWHNlZF0sIFsiXCRT RUQgLWUgMXMvXlgvLyJdLAorKyAgICBbU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRh bGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW5dKQorK10pIyBfTFRfREVDTF9T RUQKKysKKyttNF9pZm5kZWYoW0FDX1BST0dfU0VEXSwgWworKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgTk9URTogVGhpcyBt YWNybyBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbnRvICAgIworKyMgIEdOVSBB dXRvY29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgIworKyMg IGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAg IworKyMgIG1hY3JvIGFuZCB1c2UgaXQgaW5zdGVhZC4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworKworK200X2RlZnVuKFtBQ19QUk9HX1NFRF0sCisrW0FDX01TR19DSEVD S0lORyhbZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0XSkKKytBQ19DQUNI RV9WQUwobHRfY3ZfcGF0aF9TRUQsCisrWyMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBh bmQgdGVzdCBmb3Igc2VkIGFuZCBnc2VkLgorKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdz IGFzIG9uZXMgdG8gdGVzdCBmb3IgdHJ1bmNhdGlvbi4KKythc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGx0X2FjX3By b2cgaW4gc2VkIGdzZWQ7IGRvCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbworKyAgICAgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIv JGx0X2FjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCisrICAgICAgICBsdF9hY19zZWRfbGlzdD0i JGx0X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAg ZmkKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrbHRfYWNf bWF4PTAKKytsdF9hY19jb3VudD0wCisrIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMg dHlwaWNhbGx5IGZvdW5kIG9uIFNvbGFyaXMKKysjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0 cnVuY2F0ZXMgb3V0cHV0LgorK2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3Iv eHBnNC9iaW4vc2VkOyBkbworKyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKKysg IGNhdCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgorKyAgbHRfYWNfY291bnQ9MAorKyAgZWNobyAk RUNIT19OICIwMTIzNDU2Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCisrICAjIENoZWNrIGZvciBH TlUgc2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICBpZiAiJGx0X2FjX3NlZCIg LS12ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVu CisrICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKKysgICAgYnJlYWsKKysgIGZpCisrICB3 aGlsZSB0cnVlOyBkbworKyAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0 LnRtcAorKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3QuaW4KKysgICAgY3AgY29uZnRlc3Qu aW4gY29uZnRlc3QubmwKKysgICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCisrICAgICRsdF9hY19zZWQg LWUgJ3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisrICAgIGNt cCAtcyBjb25mdGVzdC5vdXQgY29uZnRlc3QubmwgfHwgYnJlYWsKKysgICAgIyAxMDAwMCBjaGFy cyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGx0X2FjX2NvdW50 IC1ndCAxMCAmJiBicmVhaworKyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAx YAorKyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorKyAgICAg IGx0X2FjX21heD0kbHRfYWNfY291bnQKKysgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2Vk CisrICAgIGZpCisrICBkb25lCisrZG9uZQorK10pCisrU0VEPSRsdF9jdl9wYXRoX1NFRAorK0FD X1NVQlNUKFtTRURdKQorK0FDX01TR19SRVNVTFQoWyRTRURdKQorK10pI0FDX1BST0dfU0VECisr XSkjbTRfaWZuZGVmCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19TRURd LCBbQUNfUFJPR19TRURdKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKKytkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSwgW10pCisrCisrCisrIyBfTFRfQ0hF Q0tfU0hFTExfRkVBVFVSRVMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmluZCBv dXQgd2hldGhlciB0aGUgc2hlbGwgaXMgQm91cm5lIG9yIFhTSSBjb21wYXRpYmxlLAorKyMgb3Ig aGFzIHNvbWUgb3RoZXIgdXNlZnVsIGZlYXR1cmVzLgorK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hF TExfRkVBVFVSRVNdLAorK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlIHNoZWxsIHVuZGVy c3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHNdKQorKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCisr eHNpX3NoZWxsPW5vCisrKCBfbHRfZHVtbXk9ImEvYi9jIgorKyAgdGVzdCAiJHtfbHRfZHVtbXkj IyovfSwke19sdF9kdW1teSUvKn0sIiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKysgICAg ICA9IGMsYS9iLCwgXAorKyAgICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCisr ICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCisr ICAmJiB4c2lfc2hlbGw9eWVzCisrQUNfTVNHX1JFU1VMVChbJHhzaV9zaGVsbF0pCisrX0xUX0NP TkZJR19MSUJUT09MX0lOSVQoW3hzaV9zaGVsbD0nJHhzaV9zaGVsbCddKQorKworK0FDX01TR19D SEVDS0lORyhbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgIis9Il0pCisrbHRfc2hlbGxf YXBwZW5kPW5vCisrKCBmb289YmFyOyBzZXQgZm9vIGJhejsgZXZhbCAiJFsxXSs9XCRbMl0iICYm IHRlc3QgIiRmb28iID0gYmFyYmF6ICkgXAorKyAgICA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYg bHRfc2hlbGxfYXBwZW5kPXllcworK0FDX01TR19SRVNVTFQoWyRsdF9zaGVsbF9hcHBlbmRdKQor K19MVF9DT05GSUdfTElCVE9PTF9JTklUKFtsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBl bmQnXSkKKysKKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxs IDI+JjE7IHRoZW4KKysgIGx0X3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgbHRfdW5zZXQ9ZmFsc2UK KytmaQorK19MVF9ERUNMKFtdLCBbbHRfdW5zZXRdLCBbMF0sIFt3aGV0aGVyIHRoZSBzaGVsbCB1 bmRlcnN0YW5kcyAidW5zZXQiXSlkbmwKKysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2Fz ZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAg ICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNi L3RyCisrICBsdF9TUDJOTD0ndHIgXDA0MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEy IFwwNDBcMDQwJworKyAgOzsKKysgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJO TD0ndHIgXDEwMCBcbicKKysgIGx0X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytl c2FjCisrX0xUX0RFQ0woW1NQMk5MXSwgW2x0X1NQMk5MXSwgWzFdLCBbdHVybiBzcGFjZXMgaW50 byBuZXdsaW5lc10pZG5sCisrX0xUX0RFQ0woW05MMlNQXSwgW2x0X05MMlNQXSwgWzFdLCBbdHVy biBuZXdsaW5lcyBpbnRvIHNwYWNlc10pZG5sCisrXSkjIF9MVF9DSEVDS19TSEVMTF9GRUFUVVJF UworKworKworKyMgX0xUX1BST0dfWFNJX1NIRUxMRk5TCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIEJvdXJuZSBhbmQgWFNJIGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwg c2hlbGwgZnVuY3Rpb25zLgorK200X2RlZnVuKFtfTFRfUFJPR19YU0lfU0hFTExGTlNdLAorK1tj YXNlICR4c2lfc2hlbGwgaW4KKysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2Zn ZmlsZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQK KysjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5E IHRvIHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFD RU1FTlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikg ZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJu YW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZp bGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMj Ki99IgorK30KKysKKysjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9u ZGlyX3JlcGxhY2VtZW50CisrIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFt ZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgorKyMgY2FsbDoKKysjICAgZGlybmFtZTogIENvbXB1dGUg dGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorKyMgICAgICAgICAgICAgYWRkIEFQ UEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAorKyMgICAgICAgICAgICAg dG8gTk9ORElSX1JFUExBQ0VNRU5ULgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4g IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBv ZiBGSUxFLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgorKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRo IGZ1bmNfZGlybmFtZQorKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBk byBub3QgZGVsZWdhdGUgdG8KKysjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNh dGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KKytmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgp CisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsx JS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysg IGVzYWMKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5j X3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklY IG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9i YmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2ln bnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNh c2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorK2Z1bmNfc3RyaXBuYW1lICgpCisreworKyAg IyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFu ZCBZIGFyZQorKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3Jk aW5hcnkgcGFyYW1ldGVyIGZpcnN0LgorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KKysg IGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9Cisr ICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifQor K30KKysKKysjIGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRfc3BsaXQgKCkKKyt7CisrICBmdW5j X29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19Cisr fQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAoKQorK3sKKysgIGNhc2UgJHsx fSBpbgorKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7Owor KyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKKysgIGVzYWMKKyt9CisrCisrIyBm dW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAgZnVuY194 Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbworK30KKysKKysjIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10 ZXJtLi4uCisrZnVuY19hcml0aCAoKQorK3sKKysgIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkWypd ICkpCisrfQorKworKyMgZnVuY19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3 aXRoIGEgaHlwaGVuLgorK2Z1bmNfbGVuICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PSR7IzF9 CisrfQorKworK19MVF9FT0YKKysgICAgOzsKKysgICopICMgQm91cm5lIGNvbXBhdGlibGUgZnVu Y3Rpb25zLgorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19k aXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorKyMgQ29tcHV0ZSB0aGUgZGly bmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKysj IG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKytmdW5jX2Rpcm5h bWUgKCkKKyt7CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50Lgor KyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFt ZSJgCisrICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgor KyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBmdW5jX2Rpcm5h bWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorK30KKysKKysjIGZ1 bmNfYmFzZW5hbWUgZmlsZQorK2Z1bmNfYmFzZW5hbWUgKCkKKyt7CisrICBmdW5jX2Jhc2VuYW1l X3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorK30KKysKKytk bmwgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZQorK2RubCBBIHBvcnRhYmxlIHZlcnNpb24gb2Yg dGhpcyBmdW5jdGlvbiBpcyBhbHJlYWR5IGRlZmluZWQgaW4gZ2VuZXJhbC5tNHNoCisrZG5sIHNv IHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0IGhlcmUuCisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVm aXggc3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgor KyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBz cGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVgg bWF5IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVz IG9ubHkgYSBkb3QpLgorKyMgZnVuY19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKKytmdW5jX3N0 cmlwbmFtZSAoKQorK3sKKysgIGNhc2UgJHsyfSBpbgorKyAgICAuKikgZnVuY19zdHJpcG5hbWVf cmVzdWx0PWAkRUNITyAiWCR7M30iIFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0l JSIgLWUgInMlXFxcXCR7Mn1cJCUlImA7OworKyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0 PWAkRUNITyAiWCR7M30iIFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUg InMlJHsyfVwkJSUiYDs7CisrICBlc2FjCisrfQorKworKyMgc2VkIHNjcmlwdHM6CisrbXlfc2Vk X2xvbmdfb3B0PScxcy9eXCgtW1tePV1dKlwpPS4qL1wxLztxJworK215X3NlZF9sb25nX2FyZz0n MXMvXi1bW149XV0qPS8vJworKworKyMgZnVuY19vcHRfc3BsaXQKKytmdW5jX29wdF9zcGxpdCAo KQorK3sKKysgIGZ1bmNfb3B0X3NwbGl0X29wdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIk bXlfc2VkX2xvbmdfb3B0ImAKKysgIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8 ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKKyt9CisrCisrIyBmdW5jX2xvMm8gb2JqZWN0 CisrZnVuY19sbzJvICgpCisreworKyAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8 ICRYc2VkIC1lICIkbG8ybyJgCisrfQorKworKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNl CisrZnVuY194Zm9ybSAoKQorK3sKKysgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0i IHwgJFhzZWQgLWUgJ3MvXC5bW14uXV0qJC8ubG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFy aXRobWV0aWMtdGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3Vs dD1gZXhwciAiJFtAXSJgCisrfQorKworKyMgZnVuY19sZW4gc3RyaW5nCisrIyBTVFJJTkcgbWF5 IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1bmNfbGVuICgpCisreworKyAgZnVuY19sZW5f cmVzdWx0PWBleHByICIkWzFdIiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9s ZW5gCisrfQorKworK19MVF9FT0YKKytlc2FjCisrCisrY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGlu CisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5j X2FwcGVuZCB2YXIgdmFsdWUKKysjIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZh cmlhYmxlIFZBUi4KKytmdW5jX2FwcGVuZCAoKQorK3sKKysgIGV2YWwgIiRbMV0rPVwkWzJdIgor K30KKytfTFRfRU9GCisrICAgIDs7CisrICAqKQorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRj ZmdmaWxlIgorKworKyMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCisrIyBBcHBlbmQgVkFMVUUgdG8g dGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCisrZnVuY19hcHBlbmQgKCkKKyt7CisrICBl dmFsICIkWzFdPVwkJFsxXVwkWzJdIgorK30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICBlc2Fj CisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNoIHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWcvbHRtYWluLnNoCistLS0gc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL2x0bWFpbi5zaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRtYWluLnNoCTIwMDktMDUtMjMgMTA6MDE6NTUuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDg0MDYgQEAKKysjIEdlbmVyYXRlZCBmcm9tIGx0bWFp bi5tNHNoLgorKworKyMgbHRtYWluLnNoIChHTlUgbGlidG9vbCkgMi4yLjYKKysjIFdyaXR0ZW4g YnkgR29yZG9uIE1hdHppZ2tlaXQgPGdvcmRAZ251LmFpLm1pdC5lZHU+LCAxOTk2CisrCisrIyBD b3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysjIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29u ZGl0aW9ucy4gIFRoZXJlIGlzIE5PCisrIyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKysjIEdOVSBM aWJ0b29sIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKysjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmls ZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSBvciBsaWJyYXJ5IHRoYXQKKysjIGlzIGJ1aWx0IHVzaW5n IEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQorKyMgc2Ft ZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHBy b2dyYW0uCisrIworKyMgR05VIExpYnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisrIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyMgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9u ZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5 CisrIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9n cGwuaHRtbCwKKysjIG9yIG9idGFpbmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLiwKKysjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKworKyMgVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9O XS4uLiBbTU9ERS1BUkddLi4uCisrIworKyMgUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1 aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIworKyMgICAgIC0tY29uZmlnICAgICAgICAgICAg IHNob3cgYWxsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzCisrIyAgICAgLS1kZWJ1ZyAgICAgICAg ICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZworKyMgLW4sIC0tZHJ5LXJ1biAgICAg ICAgICAgIGRpc3BsYXkgY29tbWFuZHMgd2l0aG91dCBtb2RpZnlpbmcgYW55IGZpbGVzCisrIyAg ICAgLS1mZWF0dXJlcyAgICAgICAgICAgZGlzcGxheSBiYXNpYyBjb25maWd1cmF0aW9uIGluZm9y bWF0aW9uIGFuZCBleGl0CisrIyAgICAgLS1tb2RlPU1PREUgICAgICAgICAgdXNlIG9wZXJhdGlv biBtb2RlIE1PREUKKysjICAgICAtLXByZXNlcnZlLWR1cC1kZXBzICBkb24ndCByZW1vdmUgZHVw bGljYXRlIGRlcGVuZGVuY3kgbGlicmFyaWVzCisrIyAgICAgLS1xdWlldCwgLS1zaWxlbnQgICAg ZG9uJ3QgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdlcworKyMgICAgIC0tdGFnPVRBRyAgICAg ICAgICAgIHVzZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmcm9tIHRhZyBUQUcKKysjIC12LCAt LXZlcmJvc2UgICAgICAgICAgICBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIChkZWZhdWx0 KQorKyMgICAgIC0tdmVyc2lvbiAgICAgICAgICAgIHByaW50IHZlcnNpb24gaW5mb3JtYXRpb24K KysjIC1oLCAtLWhlbHAgICAgICAgICAgICAgICBwcmludCBzaG9ydCBvciBsb25nIGhlbHAgbWVz c2FnZQorKyMKKysjIE1PREUgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKysjCisrIyAg ICAgICBjbGVhbiAgICAgICAgICAgICAgcmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVj dG9yeQorKyMgICAgICAgY29tcGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBp bnRvIGEgbGlidG9vbCBvYmplY3QKKysjICAgICAgIGV4ZWN1dGUgICAgICAgICAgICBhdXRvbWF0 aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQorKyMgICAgICAgZmlu aXNoICAgICAgICAgICAgIGNvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9vbCBsaWJy YXJpZXMKKysjICAgICAgIGluc3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBl eGVjdXRhYmxlcworKyMgICAgICAgbGluayAgICAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkg b3IgYW4gZXhlY3V0YWJsZQorKyMgICAgICAgdW5pbnN0YWxsICAgICAgICAgIHJlbW92ZSBsaWJy YXJpZXMgZnJvbSBhbiBpbnN0YWxsZWQgZGlyZWN0b3J5CisrIworKyMgTU9ERS1BUkdTIHZhcnkg ZGVwZW5kaW5nIG9uIHRoZSBNT0RFLgorKyMgVHJ5IGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT1N T0RFJyBmb3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIE1PREUuCisrIworKyMgV2hl biByZXBvcnRpbmcgYSBidWcsIHBsZWFzZSBkZXNjcmliZSBhIHRlc3QgY2FzZSB0byByZXByb2R1 Y2UgaXQgYW5kCisrIyBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246CisrIworKyMg ICAgICAgaG9zdC10cmlwbGV0OgkkaG9zdAorKyMgICAgICAgc2hlbGw6CQkkU0hFTEwKKysjICAg ICAgIGNvbXBpbGVyOgkJJExUQ0MKKysjICAgICAgIGNvbXBpbGVyIGZsYWdzOgkJJExUQ0ZMQUdT CisrIyAgICAgICBsaW5rZXI6CQkkTEQgKGdudT8gJHdpdGhfZ251X2xkKQorKyMgICAgICAgJHBy b2duYW1lOgkJKEdOVSBsaWJ0b29sKSAyLjIuNgorKyMgICAgICAgYXV0b21ha2U6CQkkYXV0b21h a2VfdmVyc2lvbgorKyMgICAgICAgYXV0b2NvbmY6CQkkYXV0b2NvbmZfdmVyc2lvbgorKyMKKysj IFJlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KKysKKytQUk9HUkFNPWx0bWFp bi5zaAorK1BBQ0tBR0U9bGlidG9vbAorK1ZFUlNJT049Mi4yLjYKKytUSU1FU1RBTVA9IiIKKytw YWNrYWdlX3JldmlzaW9uPTEuMzAxMgorKworKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKKytpZiB0 ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBac2ggMy54IGFuZCA0 LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBj b250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1n ICckezErIiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBj YXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNh YworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FT RT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBOTFMgbnVpc2FuY2VzOiBX ZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKysj IE9ubHkgc2V0IExBTkcgYW5kIExDX0FMTCB0byBDIGlmIGFscmVhZHkgc2V0LgorKyMgVGhlc2Ug bXVzdCBub3QgYmUgc2V0IHVuY29uZGl0aW9uYWxseSBiZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1 bmRlcnN0YW5kCisrIyBlLmcuIExBTkc9QyAobm90YWJseSBTQ08pLgorK2x0X3VzZXJfbG9jYWxl PQorK2x0X3NhZmVfbG9jYWxlPQorK2ZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwg TENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUworK2RvCisrICBldmFsICJpZiB0ZXN0IFwi XCR7JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KKysgICAgICAgICAgc2F2ZV8kbHRfdmFyPVwk JGx0X3ZhcgorKyAgICAgICAgICAkbHRfdmFyPUMKKysJICBleHBvcnQgJGx0X3ZhcgorKwkgIGx0 X3VzZXJfbG9jYWxlPVwiJGx0X3Zhcj1cXFwkc2F2ZV9cJGx0X3ZhcjsgXCRsdF91c2VyX2xvY2Fs ZVwiCisrCSAgbHRfc2FmZV9sb2NhbGU9XCIkbHRfdmFyPUM7IFwkbHRfc2FmZV9sb2NhbGVcIgor KwlmaSIKKytkb25lCisrCisrJGx0X3Vuc2V0IENEUEFUSAorKworKworKworKworKworKzogJHtD UD0iY3AgLWYifQorKzogJHtFQ0hPPSJlY2hvIn0KKys6ICR7RUdSRVA9Ii9iaW4vZ3JlcCAtRSJ9 CisrOiAke0ZHUkVQPSIvYmluL2dyZXAgLUYifQorKzogJHtHUkVQPSIvYmluL2dyZXAifQorKzog JHtMTl9TPSJsbiAtcyJ9CisrOiAke01BS0U9Im1ha2UifQorKzogJHtNS0RJUj0ibWtkaXIifQor KzogJHtNVj0ibXYgLWYifQorKzogJHtSTT0icm0gLWYifQorKzogJHtTRUQ9Ii9iaW4vc2VkIn0K Kys6ICR7U0hFTEw9IiR7Q09ORklHX1NIRUxMLS9iaW4vc2h9In0KKys6ICR7WHNlZD0iJFNFRCAt ZSAxcy9eWC8vIn0KKysKKysjIEdsb2JhbCB2YXJpYWJsZXM6CisrRVhJVF9TVUNDRVNTPTAKKytF WElUX0ZBSUxVUkU9MQorK0VYSVRfTUlTTUFUQ0g9NjMgICMgJD8gPSA2MyBpcyB1c2VkIHRvIGlu ZGljYXRlIHZlcnNpb24gbWlzbWF0Y2ggdG8gbWlzc2luZy4KKytFWElUX1NLSVA9NzcJICAjICQ/ ID0gNzcgaXMgdXNlZCB0byBpbmRpY2F0ZSBhIHNraXBwZWQgdGVzdCB0byBhdXRvbWFrZS4KKysK KytleGl0X3N0YXR1cz0kRVhJVF9TVUNDRVNTCisrCisrIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNl bnNpYmxlIGRlZmF1bHQKKytsdF9ubD0nCisrJworK0lGUz0iIAkkbHRfbmwiCisrCisrZGlybmFt ZT0icywvW14vXSokLCwiCisrYmFzZW5hbWU9InMsXi4qLywsIgorKworKyMgZnVuY19kaXJuYW1l X2FuZF9iYXNlbmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIHBlcmZvcm0g ZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCisrIyBj YWxsOgorKyMgICBkaXJuYW1lOiAgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9u ZW1wdHksCisrIyAgICAgICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lz ZSBzZXQgcmVzdWx0CisrIyAgICAgICAgICAgICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrIyAg ICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrIyAg IGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCisrIyAgICAgICAgICAgICB2YWx1 ZSByZXR1bmVkIGluICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrIyBJbXBsZW1lbnRhdGlvbiBt dXN0IGJlIGtlcHQgc3luY2hyb25pemVkIHdpdGggZnVuY19kaXJuYW1lCisrIyBhbmQgZnVuY19i YXNlbmFtZS4gRm9yIGVmZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bworKyMgdGhvc2Ug ZnVuY3Rpb25zIGJ1dCBpbnN0ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgor K2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkKKyt7CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0 b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgk ezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9y ZXN1bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9Igor KyAgZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7 Mn0iCisrICBmaQorKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNl ZCAtZSAiJGJhc2VuYW1lImAKKyt9CisrCisrIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGlu c2VydGVkIGhlcmUuCisrCisrIyBXb3JrIGFyb3VuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlz c3VlIG9uIElSSVggNi41LiBPbiBJUklYIDYuNCssIHNoCisrIyBpcyBrc2ggYnV0IHdoZW4gdGhl IHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKKysjIHRo ZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0aGUg c3BlY2lhbAorKyMgcG9zaXRpb25hbCBwYXJhbWV0ZXIgJDAsIHdpdGhpbiBhIGZ1bmN0aW9uIGNh bGwsIGlzIHRoZSBuYW1lIG9mIHRoZQorKyMgZnVuY3Rpb24uCisrcHJvZ3BhdGg9IiQwIgorKwor KyMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgorKyMgSW4gdGhlIHVubGlrZWx5IGV2ZW50ICRw cm9nbmFtZSBiZWdhbiB3aXRoIGEgJy0nLCBpdCB3b3VsZCBwbGF5IGhhdm9jIHdpdGgKKysjIGZ1 bmNfZWNobyAoaW1hZ2luZSBwcm9nbmFtZT0tbiksIHNvIHdlIHByZXBlbmQgLi8gaW4gdGhhdCBj YXNlOgorK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIKKytwcm9nbmFtZT0k ZnVuY19iYXNlbmFtZV9yZXN1bHQKKytjYXNlICRwcm9nbmFtZSBpbgorKyAgLSopIHByb2duYW1l PS4vJHByb2duYW1lIDs7CisrZXNhYworKworKyMgTWFrZSBzdXJlIHdlIGhhdmUgYW4gYWJzb2x1 dGUgcGF0aCBmb3IgcmVleGVjdXRpb246CisrY2FzZSAkcHJvZ3BhdGggaW4KKysgIFtcXC9dKnxb QS1aYS16XTpcXCopIDs7CisrICAqW1xcL10qKQorKyAgICAgcHJvZ2Rpcj0kZnVuY19kaXJuYW1l X3Jlc3VsdAorKyAgICAgcHJvZ2Rpcj1gY2QgIiRwcm9nZGlyIiAmJiBwd2RgCisrICAgICBwcm9n cGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgorKyAgICAgOzsKKysgICopCisrICAgICBzYXZlX0lG Uz0iJElGUyIKKysgICAgIElGUz06CisrICAgICBmb3IgcHJvZ2RpciBpbiAkUEFUSDsgZG8KKysg ICAgICAgSUZTPSIkc2F2ZV9JRlMiCisrICAgICAgIHRlc3QgLXggIiRwcm9nZGlyLyRwcm9nbmFt ZSIgJiYgYnJlYWsKKysgICAgIGRvbmUKKysgICAgIElGUz0iJHNhdmVfSUZTIgorKyAgICAgdGVz dCAtbiAiJHByb2dkaXIiIHx8IHByb2dkaXI9YHB3ZGAKKysgICAgIHByb2dwYXRoPSIkcHJvZ2Rp ci8kcHJvZ25hbWUiCisrICAgICA7OworK2VzYWMKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhh dCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRh Y2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3Ry aW5ncy4KKytYc2VkPSIke1NFRH0iJyAtZSAxcy9eWC8vJworK3NlZF9xdW90ZV9zdWJzdD0ncy9c KFtgIiRcXF1cKS9cXFwxL2cnCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3Rl IHZhcmlhYmxlIHJlZmVyZW5jZXMuCisrZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkv XFxcMS9nJworKworKyMgUmUtYFwnIHBhcmFtZXRlciBleHBhbnNpb25zIGluIG91dHB1dCBvZiBk b3VibGVfcXVvdGVfc3Vic3QgdGhhdCB3ZXJlCisrIyBgXCctZWQgaW4gaW5wdXQgdG8gdGhlIHNh bWUuICBJZiBhbiBvZGQgbnVtYmVyIG9mIGBcJyBwcmVjZWRlZCBhICckJworKyMgaW4gaW5wdXQg dG8gZG91YmxlX3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5z aW9uLgorKyMgU2luY2UgZWFjaCBpbnB1dCBgXCcgaXMgbm93IHR3byBgXCdzLCBsb29rIGZvciBh bnkgbnVtYmVyIG9mIHJ1bnMgb2YKKysjIGZvdXIgYFwncyBmb2xsb3dlZCBieSB0d28gYFwncyBh bmQgdGhlbiBhICckJy4gIGBcJyB0aGF0ICckJy4KKyticz0nXFwnCisrYnMyPSdcXFxcJworK2Jz ND0nXFxcXFxcXFwnCisrZG9sbGFyPSdcJCcKKytzZWRfZG91YmxlX2JhY2tzbGFzaD0iXAorKyAg cy8kYnM0LyZcXAorKy9nCisrICBzL14kYnMyJGRvbGxhci8kYnMmLworKyAgcy9cXChbXiRic11c XCkkYnMyJGRvbGxhci9cXDEkYnMyJGJzJGRvbGxhci9nCisrICBzL1xuLy9nIgorKworKyMgU3Rh bmRhcmQgb3B0aW9uczoKKytvcHRfZHJ5X3J1bj1mYWxzZQorK29wdF9oZWxwPWZhbHNlCisrb3B0 X3F1aWV0PWZhbHNlCisrb3B0X3ZlcmJvc2U9ZmFsc2UKKytvcHRfd2FybmluZz06CisrCisrIyBm dW5jX2VjaG8gYXJnLi4uCisrIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlLCBh bG9uZyB3aXRoIHRoZSBjdXJyZW50IG1vZGUKKysjIG5hbWUgaWYgaXQgaGFzIGJlZW4gc2V0IHll dC4KKytmdW5jX2VjaG8gKCkKKyt7CisrICAgICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1v ZGU6ICQqIgorK30KKysKKysjIGZ1bmNfdmVyYm9zZSBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBu YW1lIHByZWZpeGVkIG1lc3NhZ2UgaW4gdmVyYm9zZSBtb2RlIG9ubHkuCisrZnVuY192ZXJib3Nl ICgpCisreworKyAgICAkb3B0X3ZlcmJvc2UgJiYgZnVuY19lY2hvICR7MSsiJEAifQorKworKyAg ICAjIEEgYnVnIGluIGJhc2ggaGFsdHMgdGhlIHNjcmlwdCBpZiB0aGUgbGFzdCBsaW5lIG9mIGEg ZnVuY3Rpb24KKysgICAgIyBmYWlscyB3aGVuIHNldCAtZSBpcyBpbiBmb3JjZSwgc28gd2UgbmVl ZCBhbm90aGVyIGNvbW1hbmQgdG8KKysgICAgIyB3b3JrIGFyb3VuZCB0aGF0OgorKyAgICA6Cisr fQorKworKyMgZnVuY19lcnJvciBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVk IG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCisrZnVuY19lcnJvciAoKQorK3sKKysgICAgJEVD SE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogIiR7MSsiJEAifSAxPiYyCisrfQorKworKyMg ZnVuY193YXJuaW5nIGFyZy4uLgorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgd2Fybmlu ZyBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLgorK2Z1bmNfd2FybmluZyAoKQorK3sKKysgICAg JG9wdF93YXJuaW5nICYmICRFQ0hPICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6IHdhcm5pbmc6 ICIkezErIiRAIn0gMT4mMgorKworKyAgICAjIGJhc2ggYnVnIGFnYWluOgorKyAgICA6CisrfQor KworKyMgZnVuY19mYXRhbF9lcnJvciBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZp eGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGFuZCBleGl0LgorK2Z1bmNfZmF0YWxfZXJy b3IgKCkKKyt7CisrICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CisrICAgIGV4aXQgJEVYSVRfRkFJ TFVSRQorK30KKysKKysjIGZ1bmNfZmF0YWxfaGVscCBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBu YW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CisrIyBh IGhlbHAgaGludCwgYW5kIGV4aXQuCisrZnVuY19mYXRhbF9oZWxwICgpCisreworKyAgICBmdW5j X2Vycm9yICR7MSsiJEAifQorKyAgICBmdW5jX2ZhdGFsX2Vycm9yICIkaGVscCIKKyt9CisraGVs cD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAgIyMgZGVm YXVsdAorKworKworKyMgZnVuY19ncmVwIGV4cHJlc3Npb24gZmlsZW5hbWUKKysjIENoZWNrIHdo ZXRoZXIgRVhQUkVTU0lPTiBtYXRjaGVzIGFueSBsaW5lIG9mIEZJTEVOQU1FLCB3aXRob3V0IG91 dHB1dC4KKytmdW5jX2dyZXAgKCkKKyt7CisrICAgICRHUkVQICIkMSIgIiQyIiA+L2Rldi9udWxs IDI+JjEKKyt9CisrCisrCisrIyBmdW5jX21rZGlyX3AgZGlyZWN0b3J5LXBhdGgKKysjIE1ha2Ug c3VyZSB0aGUgZW50aXJlIHBhdGggdG8gRElSRUNUT1JZLVBBVEggaXMgYXZhaWxhYmxlLgorK2Z1 bmNfbWtkaXJfcCAoKQorK3sKKysgICAgbXlfZGlyZWN0b3J5X3BhdGg9IiQxIgorKyAgICBteV9k aXJfbGlzdD0KKysKKysgICAgaWYgdGVzdCAtbiAiJG15X2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0 ICIkb3B0X2RyeV9ydW4iICE9ICI6IjsgdGhlbgorKworKyAgICAgICMgUHJvdGVjdCBkaXJlY3Rv cnkgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScKKysgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0 aCBpbgorKyAgICAgICAgLSopIG15X2RpcmVjdG9yeV9wYXRoPSIuLyRteV9kaXJlY3RvcnlfcGF0 aCIgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBXaGlsZSBzb21lIHBvcnRpb24gb2YgRElS IGRvZXMgbm90IHlldCBleGlzdC4uLgorKyAgICAgIHdoaWxlIHRlc3QgISAtZCAiJG15X2RpcmVj dG9yeV9wYXRoIjsgZG8KKysgICAgICAgICMgLi4ubWFrZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJz dCBvcmRlci4gIFVzZSBhIGNvbG9uIGRlbGltaXRlZAorKwkjIGxpc3QgaW5jYXNlIHNvbWUgcG9y dGlvbiBvZiBwYXRoIGNvbnRhaW5zIHdoaXRlc3BhY2UuCisrICAgICAgICBteV9kaXJfbGlzdD0i JG15X2RpcmVjdG9yeV9wYXRoOiRteV9kaXJfbGlzdCIKKysKKysgICAgICAgICMgSWYgdGhlIGxh c3QgcG9ydGlvbiBhZGRlZCBoYXMgbm8gc2xhc2ggaW4gaXQsIHRoZSBsaXN0IGlzIGRvbmUKKysg ICAgICAgIGNhc2UgJG15X2RpcmVjdG9yeV9wYXRoIGluICovKikgOzsgKikgYnJlYWsgOzsgZXNh YworKworKyAgICAgICAgIyAuLi5vdGhlcndpc2UgdGhyb3cgYXdheSB0aGUgY2hpbGQgZGlyZWN0 b3J5IGFuZCBsb29wCisrICAgICAgICBteV9kaXJlY3RvcnlfcGF0aD1gJEVDSE8gIlgkbXlfZGly ZWN0b3J5X3BhdGgiIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKKysgICAgICBkb25lCisrICAgICAg bXlfZGlyX2xpc3Q9YCRFQ0hPICJYJG15X2Rpcl9saXN0IiB8ICRYc2VkIC1lICdzLDoqJCwsJ2AK KysKKysgICAgICBzYXZlX21rZGlyX3BfSUZTPSIkSUZTIjsgSUZTPSc6JworKyAgICAgIGZvciBt eV9kaXIgaW4gJG15X2Rpcl9saXN0OyBkbworKwlJRlM9IiRzYXZlX21rZGlyX3BfSUZTIgorKyAg ICAgICAgIyBta2RpciBjYW4gZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBw cm9jZXNzZXMKKysgICAgICAgICMgdHJ5IHRvIGNyZWF0ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVz IGNvbmN1cnJlbnRseS4gIERvbid0CisrICAgICAgICAjIHN0b3AgaW4gdGhhdCBjYXNlIQorKyAg ICAgICAgJE1LRElSICIkbXlfZGlyIiAyPi9kZXYvbnVsbCB8fCA6CisrICAgICAgZG9uZQorKyAg ICAgIElGUz0iJHNhdmVfbWtkaXJfcF9JRlMiCisrCisrICAgICAgIyBCYWlsIG91dCBpZiB3ZSAo b3Igc29tZSBvdGhlciBwcm9jZXNzKSBmYWlsZWQgdG8gY3JlYXRlIGEgZGlyZWN0b3J5LgorKyAg ICAgIHRlc3QgLWQgIiRteV9kaXJlY3RvcnlfcGF0aCIgfHwgXAorKyAgICAgICAgZnVuY19mYXRh bF9lcnJvciAiRmFpbGVkIHRvIGNyZWF0ZSBcYCQxJyIKKysgICAgZmkKKyt9CisrCisrCisrIyBm dW5jX21rdGVtcGRpciBbc3RyaW5nXQorKyMgTWFrZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhh dCB3b24ndCBjbGFzaCB3aXRoIG90aGVyIHJ1bm5pbmcKKysjIGxpYnRvb2wgcHJvY2Vzc2VzLCBh bmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElmCisrIyBnaXZlbiwgU1RS SU5HIGlzIHRoZSBiYXNlbmFtZSBmb3IgdGhhdCBkaXJlY3RvcnkuCisrZnVuY19ta3RlbXBkaXIg KCkKKyt7CisrICAgIG15X3RlbXBsYXRlPSIke1RNUERJUi0vdG1wfS8kezEtJHByb2duYW1lfSIK KysKKysgICAgaWYgdGVzdCAiJG9wdF9kcnlfcnVuIiA9ICI6IjsgdGhlbgorKyAgICAgICMgUmV0 dXJuIGEgZGlyZWN0b3J5IG5hbWUsIGJ1dCBkb24ndCBjcmVhdGUgaXQgaW4gZHJ5LXJ1biBtb2Rl CisrICAgICAgbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0kJCIKKysgICAgZWxzZQorKworKyAg ICAgICMgSWYgbWt0ZW1wIHdvcmtzLCB1c2UgdGhhdCBmaXJzdCBhbmQgZm9yZW1vc3QKKysgICAg ICBteV90bXBkaXI9YG1rdGVtcCAtZCAiJHtteV90ZW1wbGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9u dWxsYAorKworKyAgICAgIGlmIHRlc3QgISAtZCAiJG15X3RtcGRpciI7IHRoZW4KKysgICAgICAg ICMgRmFpbGluZyB0aGF0LCBhdCBsZWFzdCB0cnkgYW5kIHVzZSAkUkFORE9NIHRvIGF2b2lkIGEg cmFjZQorKyAgICAgICAgbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgor KworKyAgICAgICAgc2F2ZV9ta3RlbXBkaXJfdW1hc2s9YHVtYXNrYAorKyAgICAgICAgdW1hc2sg MDA3NworKyAgICAgICAgJE1LRElSICIkbXlfdG1wZGlyIgorKyAgICAgICAgdW1hc2sgJHNhdmVf bWt0ZW1wZGlyX3VtYXNrCisrICAgICAgZmkKKysKKysgICAgICAjIElmIHdlJ3JlIG5vdCBpbiBk cnktcnVuIG1vZGUsIGJvbWIgb3V0IG9uIGZhaWx1cmUKKysgICAgICB0ZXN0IC1kICIkbXlfdG1w ZGlyIiB8fCBcCisrICAgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgY3JlYXRlIHRlbXBv cmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIKKysgICAgZmkKKysKKysgICAgJEVDSE8gIlgk bXlfdG1wZGlyIiB8ICRYc2VkCisrfQorKworKworKyMgZnVuY19xdW90ZV9mb3JfZXZhbCBhcmcK KysjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRlci4KKysjIFRoaXMg ZnVuY3Rpb24gcmV0dXJucyB0d28gdmFsdWVzOiBGVU5DX1FVT1RFX0ZPUl9FVkFMX1JFU1VMVAor KyMgaXMgZG91YmxlLXF1b3RlZCwgc3VpdGFibGUgZm9yIGEgc3Vic2VxdWVudCBldmFsLCB3aGVy ZWFzCisrIyBGVU5DX1FVT1RFX0ZPUl9FVkFMX1VOUVVPVEVEX1JFU1VMVCBoYXMgbWVyZWx5IGFs bCBjaGFyYWN0ZXJzCisrIyB3aGljaCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUgcXVv dGVzIGJhY2tzbGFzaGlmaWVkLgorK2Z1bmNfcXVvdGVfZm9yX2V2YWwgKCkKKyt7CisrICAgIGNh c2UgJDEgaW4KKysgICAgICAqW1xcXGBcIlwkXSopCisrCWZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5x dW90ZWRfcmVzdWx0PWAkRUNITyAiWCQxIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAg OzsKKysgICAgICAqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1 bHQ9IiQxIiA7OworKyAgICBlc2FjCisrCisrICAgIGNhc2UgJGZ1bmNfcXVvdGVfZm9yX2V2YWxf dW5xdW90ZWRfcmVzdWx0IGluCisrICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5n IHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHRvIGRlbGF5CisrICAgICAgIyB3b3JkIHNwbGl0dGluZywg Y29tbWFuZCBzdWJzdGl0dXRpb24gYW5kIGFuZCB2YXJpYWJsZQorKyAgICAgICMgZXhwYW5zaW9u IGZvciBhIHN1YnNlcXVlbnQgZXZhbC4KKysgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5u b3QgaGFuZGxlIGNsb3NlIGJyYWNrZXRzIGNvcnJlY3RseQorKyAgICAgICMgaW4gc2NhbiBzZXRz LCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCisrICAgICAgKltcW1x+XCNcXlwmXCpcKFwp XHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrICAgICAgICBmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdD0iXCIkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHRcIiIKKysg ICAgICAgIDs7CisrICAgICAgKikKKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0 PSIkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQiCisrICAgIGVzYWMKKyt9Cisr CisrCisrIyBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgYXJnCisrIyBBZXN0aGV0aWNhbGx5IHF1b3Rl IEFSRyB0byBiZSBldmFsZWQgbGF0ZXI7IHNhbWUgYXMgYWJvdmUsCisrIyBidXQgZG8gbm90IHF1 b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCisrZnVuY19xdW90ZV9mb3JfZXhwYW5kICgpCisrewor KyAgICBjYXNlICQxIGluCisrICAgICAgKltcXFxgXCJdKikKKysJbXlfYXJnPWAkRUNITyAiWCQx IiB8ICRYc2VkIFwKKysJICAgIC1lICIkZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3Vi bGVfYmFja3NsYXNoImAgOzsKKysgICAgICAqKQorKyAgICAgICAgbXlfYXJnPSIkMSIgOzsKKysg ICAgZXNhYworKworKyAgICBjYXNlICRteV9hcmcgaW4KKysgICAgICAjIERvdWJsZS1xdW90ZSBh cmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKKysgICAgICAjIHdv cmQgc3BsaXR0aW5nIGFuZCBjb21tYW5kIHN1YnN0aXR1dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2 YWwuCisrICAgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFj a2V0cyBjb3JyZWN0bHkKKysgICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBz ZXBhcmF0ZWx5LgorKyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJ XSp8Kl0qfCIiKQorKyAgICAgICAgbXlfYXJnPSJcIiRteV9hcmdcIiIKKysgICAgICAgIDs7Cisr ICAgIGVzYWMKKysKKysgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIK Kyt9CisrCisrCisrIyBmdW5jX3Nob3dfZXZhbCBjbWQgW2ZhaWxfZXhwXQorKyMgVW5sZXNzIG9w dF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBp cworKyMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBm YWlscywgYW5kIEZBSUxfRVhQCisrIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBpdC4KKytmdW5j X3Nob3dfZXZhbCAoKQorK3sKKysgICAgbXlfY21kPSIkMSIKKysgICAgbXlfZmFpbF9leHA9IiR7 Mi06fSIKKysKKysgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7CisrICAgICAgZnVuY19xdW90 ZV9mb3JfZXhwYW5kICIkbXlfY21kIgorKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90 ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKysgICAgfQorKworKyAgICBpZiAke29wdF9kcnlfcnVuLWZh bHNlfTsgdGhlbiA6OyBlbHNlCisrICAgICAgZXZhbCAiJG15X2NtZCIKKysgICAgICBteV9zdGF0 dXM9JD8KKysgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCisr CWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCisrICAgICAgZmkKKysgICAg ZmkKKyt9CisrCisrCisrIyBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgY21kIFtmYWlsX2V4cF0KKysj IFVubGVzcyBvcHRfc2lsZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9w dF9kcnlydW4gaXMKKysjIG5vdCB0cnVlLCBldmFsdWF0ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlv biBvZiBDTUQgZmFpbHMsIGFuZCBGQUlMX0VYUAorKyMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUg aXQuICBVc2UgdGhlIHNhdmVkIGxvY2FsZSBmb3IgZXZhbHVhdGlvbi4KKytmdW5jX3Nob3dfZXZh bF9sb2NhbGUgKCkKKyt7CisrICAgIG15X2NtZD0iJDEiCisrICAgIG15X2ZhaWxfZXhwPSIkezIt On0iCisrCisrICAgICR7b3B0X3NpbGVudC1mYWxzZX0gfHwgeworKyAgICAgIGZ1bmNfcXVvdGVf Zm9yX2V4cGFuZCAiJG15X2NtZCIKKysgICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVf Zm9yX2V4cGFuZF9yZXN1bHQiCisrICAgIH0KKysKKysgICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxz ZX07IHRoZW4gOjsgZWxzZQorKyAgICAgIGV2YWwgIiRsdF91c2VyX2xvY2FsZQorKwkgICAgJG15 X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8KKysgICAgICBldmFsICIkbHRfc2FmZV9sb2NhbGUi CisrICAgICAgaWYgdGVzdCAiJG15X3N0YXR1cyIgLWVxIDA7IHRoZW4gOjsgZWxzZQorKwlldmFs ICIoZXhpdCAkbXlfc3RhdHVzKTsgJG15X2ZhaWxfZXhwIgorKyAgICAgIGZpCisrICAgIGZpCisr fQorKworKworKworKworKworKyMgZnVuY192ZXJzaW9uCisrIyBFY2hvIHZlcnNpb24gbWVzc2Fn ZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCisrZnVuY192ZXJzaW9uICgpCisreworKyAg ICAkU0VEIC1uICcvXiMgJyRQUk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7IC8geworKyAgICAg ICAgcy9eIyAvLworKwlzL14jICokLy8KKysgICAgICAgIHMvXCgoQylcKVsgMC05LC1dKlwoIFsx LTldWzAtOV0qXCkvXDFcMi8KKysgICAgICAgIHAKKysgICAgIH0nIDwgIiRwcm9ncGF0aCIKKysg ICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5jX3VzYWdlCisrIyBFY2hvIHNob3J0IGhlbHAgbWVz c2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCisrZnVuY191c2FnZSAoKQorK3sKKysg ICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgLWgvIHsKKysgICAgICAgIHMvXiMgLy8KKysJcy9e IyAqJC8vCisrCXMvXCRwcm9nbmFtZS8nJHByb2duYW1lJy8KKysJcAorKyAgICB9JyA8ICIkcHJv Z3BhdGgiCisrICAgICRFQ0hPCisrICAgICRFQ0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwg bW9yZScgZm9yIGZ1bGwgdXNhZ2UiCisrICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5jX2hlbHAK KysjIEVjaG8gbG9uZyBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0Lgor K2Z1bmNfaGVscCAoKQorK3sKKysgICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgUmVwb3J0IGJ1 Z3MgdG8vIHsKKysgICAgICAgIHMvXiMgLy8KKysJcy9eIyAqJC8vCisrCXMqXCRwcm9nbmFtZSon JHByb2duYW1lJyoKKysJcypcJGhvc3QqJyIkaG9zdCInKgorKwlzKlwkU0hFTEwqJyIkU0hFTEwi JyoKKysJcypcJExUQ0MqJyIkTFRDQyInKgorKwlzKlwkTFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoK KysJcypcJExEKiciJExEIicqCisrCXMvXCR3aXRoX2dudV9sZC8nIiR3aXRoX2dudV9sZCInLwor KwlzL1wkYXV0b21ha2VfdmVyc2lvbi8nImAoYXV0b21ha2UgLS12ZXJzaW9uKSAyPi9kZXYvbnVs bCB8JFNFRCAxcWAiJy8KKysJcy9cJGF1dG9jb25mX3ZlcnNpb24vJyJgKGF1dG9jb25mIC0tdmVy c2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCisrCXAKKysgICAgIH0nIDwgIiRwcm9ncGF0 aCIKKysgICAgZXhpdCAkPworK30KKysKKysjIGZ1bmNfbWlzc2luZ19hcmcgYXJnbmFtZQorKyMg RWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciBhbmQg c2V0IGdsb2JhbAorKyMgZXhpdF9jbWQuCisrZnVuY19taXNzaW5nX2FyZyAoKQorK3sKKysgICAg ZnVuY19lcnJvciAibWlzc2luZyBhcmd1bWVudCBmb3IgJDEiCisrICAgIGV4aXRfY21kPWV4aXQK Kyt9CisrCisrZXhpdF9jbWQ9OgorKworKworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBoYXZl IGEgd29ya2luZyAkRUNITy4KKytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisr ICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0 CisrZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBp bmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVz dCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCisrICAjIFlp cHBlZSwgJEVDSE8gd29ya3MhCisrICA6CisrZWxzZQorKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBj b3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSAkRUNITyB3aWxsIHdvcmsuCisrICBleGVjICRT SEVMTCAiJHByb2dwYXRoIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KKytmaQorKworK2lmIHRlc3Qg IlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCisrICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNo bworKyAgc2hpZnQKKysgIGNhdCA8PEVPRgorKyQqCisrRU9GCisrICBleGl0ICRFWElUX1NVQ0NF U1MKKytmaQorKworK21hZ2ljPSIlJSVNQUdJQyB2YXJpYWJsZSUlJSIKKyttYWdpY19leGU9IiUl JU1BR0lDIEVYRSB2YXJpYWJsZSUlJSIKKysKKysjIEdsb2JhbCB2YXJpYWJsZXMuCisrIyAkbW9k ZSBpcyB1bnNldAorK25vbm9wdD0KKytleGVjdXRlX2RsZmlsZXM9CisrcHJlc2VydmVfYXJncz0K KytsbzJvPSJzL1xcLmxvXCQvLiR7b2JqZXh0fS8iCisrbzJsbz0icy9cXC4ke29iamV4dH1cJC8u bG8vIgorK2V4dHJhY3RlZF9hcmNoaXZlcz0KKytleHRyYWN0ZWRfc2VyaWFsPTAKKysKKytvcHRf ZHJ5X3J1bj1mYWxzZQorK29wdF9kdXBsaWNhdGVfZGVwcz1mYWxzZQorK29wdF9zaWxlbnQ9ZmFs c2UKKytvcHRfZGVidWc9OgorKworKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9m IHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAorKyMgd2lsbCBiZSBleGVjZWQgYXQgdGhl IGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZworKyMgbGVmdCBv dmVyIGJ5IHNoZWxscy4KKytleGVjX2NtZD0KKysKKysjIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlv biBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRh cmQgZXJyb3IsIGZvbGxvd2VkIGJ5CisrIyBhIGNvbmZpZ3VyYXRpb24gZmFpbHVyZSBoaW50LCBh bmQgZXhpdC4KKytmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gKCkKKyt7CisrICAgIGZ1bmNfZXJy b3IgJHsxKyIkQCJ9CisrICAgIGZ1bmNfZXJyb3IgIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRh dGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisrICAgIGZ1bmNfZmF0YWxfZXJyb3IgIkZhdGFs IGNvbmZpZ3VyYXRpb24gZXJyb3IuIgorK30KKysKKysKKysjIGZ1bmNfY29uZmlnCisrIyBEaXNw bGF5IHRoZSBjb25maWd1cmF0aW9uIGZvciBhbGwgdGhlIHRhZ3MgaW4gdGhpcyBzY3JpcHQuCisr ZnVuY19jb25maWcgKCkKKyt7CisrICAgIHJlX2JlZ2luY2Y9J14jICMjIyBCRUdJTiBMSUJUT09M JworKyAgICByZV9lbmRjZj0nXiMgIyMjIEVORCBMSUJUT09MJworKworKyAgICAjIERlZmF1bHQg Y29uZmlndXJhdGlvbi4KKysgICAgJFNFRCAiMSwvJHJlX2JlZ2luY2YgQ09ORklHL2Q7LyRyZV9l bmRjZiBDT05GSUcvLFwkZCIgPCAiJHByb2dwYXRoIgorKworKyAgICAjIE5vdyBwcmludCB0aGUg Y29uZmlndXJhdGlvbnMgZm9yIHRoZSB0YWdzLgorKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlz dDsgZG8KKysgICAgICAkU0VEIC1uICIvJHJlX2JlZ2luY2YgVEFHIENPTkZJRzogJHRhZ25hbWVc JC8sLyRyZV9lbmRjZiBUQUcgQ09ORklHOiAkdGFnbmFtZVwkL3AiIDwgIiRwcm9ncGF0aCIKKysg ICAgZG9uZQorKworKyAgICBleGl0ICQ/CisrfQorKworKyMgZnVuY19mZWF0dXJlcworKyMgRGlz cGxheSB0aGUgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorK2Z1bmNfZmVhdHVy ZXMgKCkKKyt7CisrICAgICRFQ0hPICJob3N0OiAkaG9zdCIKKysgICAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICAkRUNITyAiZW5hYmxlIHNoYXJlZCBs aWJyYXJpZXMiCisrICAgIGVsc2UKKysgICAgICAkRUNITyAiZGlzYWJsZSBzaGFyZWQgbGlicmFy aWVzIgorKyAgICBmaQorKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVu CisrICAgICAgJEVDSE8gImVuYWJsZSBzdGF0aWMgbGlicmFyaWVzIgorKyAgICBlbHNlCisrICAg ICAgJEVDSE8gImRpc2FibGUgc3RhdGljIGxpYnJhcmllcyIKKysgICAgZmkKKysKKysgICAgZXhp dCAkPworK30KKysKKysjIGZ1bmNfZW5hYmxlX3RhZyB0YWduYW1lCisrIyBWZXJpZnkgdGhhdCBU QUdOQU1FIGlzIHZhbGlkLCBhbmQgZWl0aGVyIGZsYWcgYW4gZXJyb3IgYW5kIGV4aXQsIG9yCisr IyBlbmFibGUgdGhlIFRBR05BTUUgdGFnLiAgV2UgYWxzbyBhZGQgVEFHTkFNRSB0byB0aGUgZ2xv YmFsICR0YWdsaXN0CisrIyB2YXJpYWJsZSBoZXJlLgorK2Z1bmNfZW5hYmxlX3RhZyAoKQorK3sK KysgICMgR2xvYmFsIHZhcmlhYmxlOgorKyAgdGFnbmFtZT0iJDEiCisrCisrICByZV9iZWdpbmNm PSJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorKyAgcmVfZW5k Y2Y9Il4jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZVwkIgorKyAgc2VkX2V4 dHJhY3RjZj0iLyRyZV9iZWdpbmNmLywvJHJlX2VuZGNmL3AiCisrCisrICAjIFZhbGlkYXRlIHRh Z25hbWUuCisrICBjYXNlICR0YWduYW1lIGluCisrICAgICpbIS1fQS1aYS16MC05LC9dKikKKysg ICAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIKKysgICAg ICA7OworKyAgZXNhYworKworKyAgIyBEb24ndCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFn LCBhcyB3ZSBrbm93IGl0J3MKKysgICMgdGhlcmUgYnV0IG5vdCBzcGVjaWFsbHkgbWFya2VkLgor KyAgY2FzZSAkdGFnbmFtZSBpbgorKyAgICBDQykgOzsKKysgICAgKikKKysgICAgICBpZiAkR1JF UCAiJHJlX2JlZ2luY2YiICIkcHJvZ3BhdGgiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwl0YWds aXN0PSIkdGFnbGlzdCAkdGFnbmFtZSIKKysKKysJIyBFdmFsdWF0ZSB0aGUgY29uZmlndXJhdGlv bi4gIEJlIGNhcmVmdWwgdG8gcXVvdGUgdGhlIHBhdGgKKysJIyBhbmQgdGhlIHNlZCBzY3JpcHQs IHRvIGF2b2lkIHNwbGl0dGluZyBvbiB3aGl0ZXNwYWNlLCBidXQKKysJIyBhbHNvIGRvbid0IHVz ZSBub24tcG9ydGFibGUgcXVvdGVzIHdpdGhpbiBiYWNrcXVvdGVzIHdpdGhpbgorKwkjIHF1b3Rl cyB3ZSBoYXZlIHRvIGRvIGl0IGluIDIgc3RlcHM6CisrCWV4dHJhY3RlZGNmPWAkU0VEIC1uIC1l ICIkc2VkX2V4dHJhY3RjZiIgPCAiJHByb2dwYXRoImAKKysJZXZhbCAiJGV4dHJhY3RlZGNmIgor KyAgICAgIGVsc2UKKysJZnVuY19lcnJvciAiaWdub3JpbmcgdW5rbm93biB0YWcgJHRhZ25hbWUi CisrICAgICAgZmkKKysgICAgICA7OworKyAgZXNhYworK30KKysKKysjIFBhcnNlIG9wdGlvbnMg b25jZSwgdGhvcm91Z2hseS4gIFRoaXMgY29tZXMgYXMgc29vbiBhcyBwb3NzaWJsZSBpbgorKyMg dGhlIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBsaWtlIGBsaWJ0b29sIC0tdmVyc2lvbicgaGFwcGVu IHF1aWNrbHkuCisreworKworKyAgIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFs aWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50CisrICBjYXNlICQxIGluCisrICBjbGVhbnxjbGVhfGNs ZXxjbCkKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlm dAorKyAgICA7OworKyAgY29tcGlsZXxjb21waWx8Y29tcGl8Y29tcHxjb218Y298YykKKysgICAg c2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7 CisrICBleGVjdXRlfGV4ZWN1dHxleGVjdXxleGVjfGV4ZXxleHxlKQorKyAgICBzaGlmdDsgc2V0 IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysgIGZpbmlz aHxmaW5pc3xmaW5pfGZpbnxmaXxmKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5p c2ggJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgaW5zdGFsbHxpbnN0YWx8aW5zdGF8aW5z dHxpbnN8aW58aSkKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRA In07IHNoaWZ0CisrICAgIDs7CisrICBsaW5rfGxpbnxsaXxsKQorKyAgICBzaGlmdDsgc2V0IGR1 bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKKysgICAgOzsKKysgIHVuaW5zdGFsbHx1 bmluc3RhbHx1bmluc3RhfHVuaW5zdHx1bmluc3x1bmlufHVuaXx1bnx1KQorKyAgICBzaGlmdDsg c2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAg ZXNhYworKworKyAgIyBQYXJzZSBub24tbW9kZSBzcGVjaWZpYyBhcmd1bWVudHM6CisrICB3aGls ZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCisrICAgIG9wdD0iJDEiCisrICAgIHNoaWZ0CisrCisrICAg IGNhc2UgJG9wdCBpbgorKyAgICAgIC0tY29uZmlnKQkJZnVuY19jb25maWcJCQkJCTs7CisrCisr ICAgICAgLS1kZWJ1ZykJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJ ZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgorKwkJCW9wdF9kZWJ1Zz0nc2V0 IC14JworKwkJCSRvcHRfZGVidWcKKysJCQk7OworKworKyAgICAgIC1kbG9wZW4pCQl0ZXN0ICIk IyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKKysJCQlleGVjdXRl X2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJDEiCisrCQkJc2hpZnQKKysJCQk7OworKworKyAg ICAgIC0tZHJ5LXJ1biB8IC1uKQlvcHRfZHJ5X3J1bj06CQkJCQk7OworKyAgICAgIC0tZmVhdHVy ZXMpICAgICAgIGZ1bmNfZmVhdHVyZXMJCQkJCTs7CisrICAgICAgLS1maW5pc2gpCQltb2RlPSJm aW5pc2giCQkJCQk7OworKworKyAgICAgIC0tbW9kZSkJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5j X21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhaworKwkJCWNhc2UgJDEgaW4KKysJCQkgICMgVmFs aWQgbW9kZSBhcmd1bWVudHM6CisrCQkJICBjbGVhbikJOzsKKysJCQkgIGNvbXBpbGUpCTs7Cisr CQkJICBleGVjdXRlKQk7OworKwkJCSAgZmluaXNoKQk7OworKwkJCSAgaW5zdGFsbCkJOzsKKysJ CQkgIGxpbmspCQk7OworKwkJCSAgcmVsaW5rKQk7OworKwkJCSAgdW5pbnN0YWxsKQk7OworKwor KwkJCSAgIyBDYXRjaCBhbnl0aGluZyBlbHNlIGFzIGFuIGVycm9yCisrCQkJICAqKSBmdW5jX2Vy cm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAkb3B0IgorKwkJCSAgICAgZXhpdF9jbWQ9ZXhpdAor KwkJCSAgICAgYnJlYWsKKysJCQkgICAgIDs7CisrCQkgICAgICAgIGVzYWMKKysKKysJCQltb2Rl PSIkMSIKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcykK KysJCQlvcHRfZHVwbGljYXRlX2RlcHM9OgkJCQk7OworKworKyAgICAgIC0tcXVpZXR8LS1zaWxl bnQpCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJb3B0X3NpbGVudD06 CisrCQkJOzsKKysKKysgICAgICAtLXZlcmJvc2V8IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2Vy dmVfYXJncyAkb3B0IgorKwkJCW9wdF9zaWxlbnQ9ZmFsc2UKKysJCQk7OworKworKyAgICAgIC0t dGFnKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFr CisrCQkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCAkMSIKKysJCQlmdW5jX2Vu YWJsZV90YWcgIiQxIgkjIHRhZ25hbWUgaXMgc2V0IGhlcmUKKysJCQlzaGlmdAorKwkJCTs7Cisr CisrICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIGxvbmcgb3B0aW9uczoKKysgICAgICAtZGxv cGVuPSp8LS1tb2RlPSp8LS10YWc9KikKKysJCQlmdW5jX29wdF9zcGxpdCAiJG9wdCIKKysJCQlz ZXQgZHVtbXkgIiRmdW5jX29wdF9zcGxpdF9vcHQiICIkZnVuY19vcHRfc3BsaXRfYXJnIiAkezEr IiRAIn0KKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgLVw/fC1oKQkJZnVuY191c2FnZQkJ CQkJOzsKKysgICAgICAtLWhlbHApCQlvcHRfaGVscD06CQkJCQk7OworKyAgICAgIC0tdmVyc2lv bikJZnVuY192ZXJzaW9uCQkJCQk7OworKworKyAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1 bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9wdCciCTs7CisrCisrICAgICAgKikJCW5vbm9wdD0iJG9w dCIKKysJCQlicmVhaworKwkJCTs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysKKysgIGNhc2Ug JGhvc3QgaW4KKysgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqIHwgKmNlZ2NjKikKKysg ICAgICAjIGRvbid0IGVsaW1pbmF0ZSBkdXBsaWNhdGlvbnMgaW4gJHBvc3RkZXBzIGFuZCAkcHJl ZGVwcworKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9OgorKyAg ICAgIDs7CisrICAgICopCisrICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRf ZGVwcz0kb3B0X2R1cGxpY2F0ZV9kZXBzCisrICAgICAgOzsKKysgIGVzYWMKKysKKysgICMgSGF2 aW5nIHdhcm5lZCBhYm91dCBhbGwgbWlzLXNwZWNpZmllZCBvcHRpb25zLCBiYWlsIG91dCBpZgor KyAgIyBhbnl0aGluZyB3YXMgd3JvbmcuCisrICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQorK30K KysKKysjIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAorKyMgRW5zdXJlIHRoYXQgd2UgYXJlIHVz aW5nIG00IG1hY3JvcywgYW5kIGxpYnRvb2wgc2NyaXB0IGZyb20gdGhlIHNhbWUKKysjIHJlbGVh c2Ugb2YgbGlidG9vbC4KKytmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2ggKCkKKyt7CisrICBpZiB0 ZXN0ICIkcGFja2FnZV9yZXZpc2lvbiIgIT0gIiRtYWNyb19yZXZpc2lvbiI7IHRoZW4KKysgICAg aWYgdGVzdCAiJFZFUlNJT04iICE9ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKysgICAgICBpZiB0 ZXN0IC16ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9G CisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAk VkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQg Y29tZXMgZnJvbSBhbiBvbGRlciByZWxlYXNlLgorKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNy ZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KKyskcHJv Z25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCisrX0xUX0VPRgorKyAgICAgIGVsc2UKKysg ICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVy cm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVm aW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSAkUEFDS0FHRSAkbWFjcm9fdmVyc2lv bi4KKyskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3Jv cyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCisrJHByb2duYW1lOiBhbmQgcnVuIGF1dG9jb25mIGFn YWluLgorK19MVF9FT0YKKysgICAgICBmaQorKyAgICBlbHNlCisrICAgICAgY2F0ID4mMiA8PF9M VF9FT0YKKyskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNL QUdFICRWRVJTSU9OLCByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbiwKKyskcHJvZ25hbWU6IGJ1 dCB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSByZXZpc2lvbiAkbWFj cm9fcmV2aXNpb24uCisrJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQg d2l0aCBtYWNyb3MgZnJvbSByZXZpc2lvbiAkcGFja2FnZV9yZXZpc2lvbgorKyRwcm9nbmFtZTog b2YgJFBBQ0tBR0UgJFZFUlNJT04gYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KKytfTFRfRU9GCisr ICAgIGZpCisrCisrICAgIGV4aXQgJEVYSVRfTUlTTUFUQ0gKKysgIGZpCisrfQorKworKworKyMj IC0tLS0tLS0tLS0tICMjCisrIyMgICAgTWFpbi4gICAgIyMKKysjIyAtLS0tLS0tLS0tLSAjIwor KworKyRvcHRfaGVscCB8fCB7CisrICAjIFNhbml0eSBjaGVja3MgZmlyc3Q6CisrICBmdW5jX2No ZWNrX3ZlcnNpb25fbWF0Y2gKKysKKysgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9 IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgorKyAgICBmdW5jX2Zh dGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxp YnJhcnkiCisrICBmaQorKworKyAgdGVzdCAteiAiJG1vZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3Ig ImVycm9yOiB5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERS4iCisrCisrCisrICAjIERhcndpbiBzdWNr cworKyAgZXZhbCBzdGRfc2hyZXh0PVwiJHNocmV4dF9jbWRzXCIKKysKKysKKysgICMgT25seSBl eGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0byBoYXZlIC1kbG9wZW4gZmxhZ3MuCisrICBpZiB0ZXN0 IC1uICIkZXhlY3V0ZV9kbGZpbGVzIiAmJiB0ZXN0ICIkbW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgor KyAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCisrICAgICRF Q0hPICIkaGVscCIgMT4mMgorKyAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgIGZpCisrCisrICAj IENoYW5nZSB0aGUgaGVscCBtZXNzYWdlIHRvIGEgbW9kZS1zcGVjaWZpYyBvbmUuCisrICBnZW5l cmljX2hlbHA9IiRoZWxwIgorKyAgaGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9 JG1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKyt9CisrCisrCisrIyBmdW5jX2xhbGliX3Ag ZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxv JyBvYmplY3QgZmlsZS4KKysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBj aGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4K KytmdW5jX2xhbGliX3AgKCkKKyt7CisrICAgIHRlc3QgLWYgIiQxIiAmJgorKyAgICAgICRTRUQg LWUgNHEgIiQxIiAyPi9kZXYvbnVsbCBcCisrICAgICAgICB8ICRHUkVQICJeIyBHZW5lcmF0ZWQg YnkgLiokUEFDS0FHRSIgPiAvZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbGFsaWJfdW5z YWZlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBv ciBgLmxvJyBvYmplY3QgZmlsZS4KKysjIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgc2Ft ZSBjaGVjayBhcyBmdW5jX2xhbGliX3Agd2l0aG91dAorKyMgcmVzb3J0aW5nIHRvIGV4dGVybmFs IHByb2dyYW1zLiAgVG8gdGhpcyBlbmQsIGl0IHJlZGlyZWN0cyBzdGRpbiBhbmQKKysjIGNsb3Nl cyBpdCBhZnRlcndhcmRzLCB3aXRob3V0IHNhdmluZyB0aGUgb3JpZ2luYWwgZmlsZSBkZXNjcmlw dG9yLgorKyMgQXMgYSBzYWZldHkgbWVhc3VyZSwgdXNlIGl0IG9ubHkgd2hlcmUgYSBuZWdhdGl2 ZSByZXN1bHQgd291bGQgYmUKKysjIGZhdGFsIGFueXdheS4gIFdvcmtzIGlmIGBmaWxlJyBkb2Vz IG5vdCBleGlzdC4KKytmdW5jX2xhbGliX3Vuc2FmZV9wICgpCisreworKyAgICBsYWxpYl9wPW5v CisrICAgIGlmIHRlc3QgLWYgIiQxIiAmJiB0ZXN0IC1yICIkMSIgJiYgZXhlYyA1PCYwIDwiJDEi OyB0aGVuCisrCWZvciBsYWxpYl9wX2wgaW4gMSAyIDMgNAorKwlkbworKwkgICAgcmVhZCBsYWxp Yl9wX2xpbmUKKysJICAgIGNhc2UgIiRsYWxpYl9wX2xpbmUiIGluCisrCQlcI1wgR2VuZXJhdGVk XCBieVwgKiRQQUNLQUdFKiApIGxhbGliX3A9eWVzOyBicmVhazs7CisrCSAgICBlc2FjCisrCWRv bmUKKysJZXhlYyAwPCY1IDU8Ji0KKysgICAgZmkKKysgICAgdGVzdCAiJGxhbGliX3AiID0geWVz CisrfQorKworKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklM RSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQKKysjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBh IGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0CisrIyBkZXRlcm1p bmVkIGltcG9zdGVycy4KKytmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCAoKQorK3sKKysgICAgZnVu Y19sYWxpYl9wICIkMSIKKyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgZmls ZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBleGVjdXRhYmxlCisrIyBU aGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5 IGZsdXNoIG91dAorKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCisrZnVuY19sdHdyYXBwZXJfZXhl Y3V0YWJsZV9wICgpCisreworKyAgICBmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeD0KKysgICAg Y2FzZSAkMSBpbgorKyAgICAqLmV4ZSkgOzsKKysgICAgKikgZnVuY19sdHdyYXBwZXJfZXhlY19z dWZmaXg9LmV4ZSA7OworKyAgICBlc2FjCisrICAgICRHUkVQICIkbWFnaWNfZXhlIiAiJDEkZnVu Y19sdHdyYXBwZXJfZXhlY19zdWZmaXgiID4vZGV2L251bGwgMj4mMQorK30KKysKKysjIGZ1bmNf bHR3cmFwcGVyX3NjcmlwdG5hbWUgZmlsZQorKyMgQXNzdW1lcyBmaWxlIGlzIGFuIGx0d3JhcHBl cl9leGVjdXRhYmxlCisrIyB1c2VzICRmaWxlIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUg ZmlsZW5hbWUgZm9yIGEKKysjIHRlbXBvcmFyeSBsdHdyYXBwZXJfc2NyaXB0LgorK2Z1bmNfbHR3 cmFwcGVyX3NjcmlwdG5hbWUgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVf cmVzdWx0PSIiCisrICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJDEiOyB0aGVu CisrCWZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQxIiAiIiAiLiIKKysJZnVuY19zdHJpcG5h bWUgJycgJy5leGUnICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCWZ1bmNfbHR3cmFwcGVyX3Nj cmlwdG5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJp cG5hbWVfcmVzdWx0fV9sdHNod3JhcHBlciIKKysgICAgZmkKKyt9CisrCisrIyBmdW5jX2x0d3Jh cHBlcl9wIGZpbGUKKysjIFRydWUgaWZmIEZJTEUgaXMgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0 IG9yIHdyYXBwZXIgZXhlY3V0YWJsZQorKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMg c2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKKysjIGRldGVybWluZWQgaW1w b3N0ZXJzLgorK2Z1bmNfbHR3cmFwcGVyX3AgKCkKKyt7CisrICAgIGZ1bmNfbHR3cmFwcGVyX3Nj cmlwdF9wICIkMSIgfHwgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkMSIKKyt9CisrCisr CisrIyBmdW5jX2V4ZWN1dGVfY21kcyBjb21tYW5kcyBmYWlsX2NtZAorKyMgRXhlY3V0ZSB0aWxk ZS1kZWxpbWl0ZWQgQ09NTUFORFMuCisrIyBJZiBGQUlMX0NNRCBpcyBnaXZlbiwgZXZhbCB0aGF0 IHVwb24gZmFpbHVyZS4KKysjIEZBSUxfQ01EIG1heSByZWFkLWFjY2VzcyB0aGUgY3VycmVudCBj b21tYW5kIGluIHZhcmlhYmxlIENNRCEKKytmdW5jX2V4ZWN1dGVfY21kcyAoKQorK3sKKysgICAg JG9wdF9kZWJ1ZworKyAgICBzYXZlX2lmcz0kSUZTOyBJRlM9J34nCisrICAgIGZvciBjbWQgaW4g JDE7IGRvCisrICAgICAgSUZTPSRzYXZlX2lmcworKyAgICAgIGV2YWwgY21kPVwiJGNtZFwiCisr ICAgICAgZnVuY19zaG93X2V2YWwgIiRjbWQiICIkezItOn0iCisrICAgIGRvbmUKKysgICAgSUZT PSRzYXZlX2lmcworK30KKysKKysKKysjIGZ1bmNfc291cmNlIGZpbGUKKysjIFNvdXJjZSBGSUxF LCBhZGRpbmcgZGlyZWN0b3J5IGNvbXBvbmVudCBpZiBuZWNlc3NhcnkuCisrIyBOb3RlIHRoYXQg aXQgaXMgbm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCisr IyBGSUxFIGV2ZW4gaWYgYm90aCBGSUxFIGFuZCBGSUxFLmV4ZSBleGlzdDogYXV0b21hdGljLWFw cGVuZC0uZXhlCisrIyBiZWhhdmlvciBoYXBwZW5zIG9ubHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Ig b3BlbigyKSEgIEFsc28sIHNvdXJjaW5nCisrIyBgRklMRS4nIGRvZXMgbm90IHdvcmsgb24gY3ln d2luIG1hbmFnZWQgbW91bnRzLgorK2Z1bmNfc291cmNlICgpCisreworKyAgICAkb3B0X2RlYnVn CisrICAgIGNhc2UgJDEgaW4KKysgICAgKi8qIHwgKlxcKikJLiAiJDEiIDs7CisrICAgICopCQku ICIuLyQxIiA7OworKyAgICBlc2FjCisrfQorKworKworKyMgZnVuY19pbmZlcl90YWcgYXJnCisr IyBJbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiB0byB1c2UgaWYgYW55IGFyZSBhdmFpbGFibGUg YW5kCisrIyBpZiBvbmUgd2Fzbid0IGNob3NlbiB2aWEgdGhlICItLXRhZyIgY29tbWFuZCBsaW5l IG9wdGlvbi4KKysjIE9ubHkgYXR0ZW1wdCB0aGlzIGlmIHRoZSBjb21waWxlciBpbiB0aGUgYmFz ZSBjb21waWxlCisrIyBjb21tYW5kIGRvZXNuJ3QgbWF0Y2ggdGhlIGRlZmF1bHQgY29tcGlsZXIu CisrIyBhcmcgaXMgdXN1YWxseSBvZiB0aGUgZm9ybSAnZ2NjIC4uLicKKytmdW5jX2luZmVyX3Rh ZyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3Rh Z3MiICYmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgorKyAgICAgIENDX3F1b3RlZD0KKysgICAg ICBmb3IgYXJnIGluICRDQzsgZG8KKysgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmci CisrCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisr ICAgICAgZG9uZQorKyAgICAgIGNhc2UgJEAgaW4KKysgICAgICAjIEJsYW5rcyBpbiB0aGUgY29t bWFuZCBtYXkgaGF2ZSBiZWVuIHN0cmlwcGVkIGJ5IHRoZSBjYWxsaW5nIHNoZWxsLAorKyAgICAg ICMgYnV0IG5vdCBmcm9tIHRoZSBDQyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3Vy ZSB3YXMgcnVuLgorKyAgICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiog fCAiYCRFQ0hPICRDQ2AgIiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBg JEVDSE8gJENDX3F1b3RlZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKSA7OworKyAgICAg ICMgQmxhbmtzIGF0IHRoZSBzdGFydCBvZiAkYmFzZV9jb21waWxlIHdpbGwgY2F1c2UgdGhpcyB0 byBmYWlsCisrICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhlbSBhcyB3ZWxsLgorKyAg ICAgICopCisrCWZvciB6IGluICRhdmFpbGFibGVfdGFnczsgZG8KKysJICBpZiAkR1JFUCAiXiMg IyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9u dWxsOyB0aGVuCisrCSAgICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgorKwkgICAgZXZh bCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeick LywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIK KysJICAgIENDX3F1b3RlZD0KKysJICAgIGZvciBhcmcgaW4gJENDOyBkbworKwkgICAgICAjIERv dWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCisr CSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCSAgICAgIENDX3F1b3RlZD0iJEND X3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgICBkb25lCisrCSAgICBj YXNlICIkQCAiIGluCisrCSAgICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2Ag IiogfCAiYCRFQ0hPICRDQ2AgIiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwg IiBgJEVDSE8gJENDX3F1b3RlZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKQorKwkgICAg ICAjIFRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlIGNvbW1hbmQgbWF0Y2hlcworKwkg ICAgICAjIHRoZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uLgorKwkgICAgICAjIEFz c3VtZSB0aGlzIGlzIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbiB3ZSB3YW50LgorKwkgICAgICB0 YWduYW1lPSR6CisrCSAgICAgIGJyZWFrCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgZmkK KysJZG9uZQorKwkjIElmICR0YWduYW1lIHN0aWxsIGlzbid0IHNldCwgdGhlbiBubyB0YWdnZWQg Y29uZmlndXJhdGlvbgorKwkjIHdhcyBmb3VuZCBhbmQgbGV0IHRoZSB1c2VyIGtub3cgdGhhdCB0 aGUgIi0tdGFnIiBjb21tYW5kCisrCSMgbGluZSBvcHRpb24gbXVzdCBiZSB1c2VkLgorKwlpZiB0 ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KKysJICBmdW5jX2VjaG8gInVuYWJsZSB0byBpbmZlciB0 YWdnZWQgY29uZmlndXJhdGlvbiIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJzcGVjaWZ5IGEgdGFn IHdpdGggXGAtLXRhZyciCisrIwllbHNlCisrIwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25h bWUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICBm aQorK30KKysKKysKKysKKysjIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qgb3V0cHV0X25hbWUg cGljX25hbWUgbm9ucGljX25hbWUKKysjIENyZWF0ZSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUgKGFu YWxvZ291cyB0byBhICIubGEiIGZpbGUpLAorKyMgYnV0IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdy ZSBkb2luZyBhIGRyeSBydW4uCisrZnVuY193cml0ZV9saWJ0b29sX29iamVjdCAoKQorK3sKKysg ICAgd3JpdGVfbGlib2JqPSR7MX0KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIg PSB5ZXM7IHRoZW4KKysgICAgICB3cml0ZV9sb2JqPVwnJHsyfVwnCisrICAgIGVsc2UKKysgICAg ICB3cml0ZV9sb2JqPW5vbmUKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9s aWJzIiA9IHllczsgdGhlbgorKyAgICAgIHdyaXRlX29sZG9iaj1cJyR7M31cJworKyAgICBlbHNl CisrICAgICAgd3JpdGVfb2xkb2JqPW5vbmUKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVu IHx8IHsKKysgICAgICBjYXQgPiR7d3JpdGVfbGlib2JqfVQgPDxFT0YKKysjICR3cml0ZV9saWJv YmogLSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05V ICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjCisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0 ZSB0aGlzIGZpbGUhCisrIyBJdCBpcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnku CisrCisrIyBOYW1lIG9mIHRoZSBQSUMgb2JqZWN0LgorK3BpY19vYmplY3Q9JHdyaXRlX2xvYmoK KysKKysjIE5hbWUgb2YgdGhlIG5vbi1QSUMgb2JqZWN0Cisrbm9uX3BpY19vYmplY3Q9JHdyaXRl X29sZG9iagorKworK0VPRgorKyAgICAgICRNViAiJHt3cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVf bGlib2JqfSIKKysgICAgfQorK30KKysKKysjIGZ1bmNfbW9kZV9jb21waWxlIGFyZy4uLgorK2Z1 bmNfbW9kZV9jb21waWxlICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgICMgR2V0IHRoZSBj b21waWxhdGlvbiBjb21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCisrICAgIGJhc2VfY29tcGls ZT0KKysgICAgc3JjZmlsZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZh bHVlIGluICJzcmNmaWxlIgorKyAgICBzdXBwcmVzc19vcHQ9eWVzCisrICAgIHN1cHByZXNzX291 dHB1dD0KKysgICAgYXJnX21vZGU9bm9ybWFsCisrICAgIGxpYm9iaj0KKysgICAgbGF0ZXI9Cisr ICAgIHBpZV9mbGFnPQorKworKyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJn X21vZGUgaW4KKysgICAgICBhcmcgICkKKysJIyBkbyBub3QgImNvbnRpbnVlIi4gIEluc3RlYWQs IGFkZCB0aGlzIHRvIGJhc2VfY29tcGlsZQorKwlsYXN0YXJnPSIkYXJnIgorKwlhcmdfbW9kZT1u b3JtYWwKKysJOzsKKysKKysgICAgICB0YXJnZXQgKQorKwlsaWJvYmo9IiRhcmciCisrCWFyZ19t b2RlPW5vcm1hbAorKwljb250aW51ZQorKwk7OworKworKyAgICAgIG5vcm1hbCApCisrCSMgQWNj ZXB0IGFueSBjb21tYW5kLWxpbmUgb3B0aW9ucy4KKysJY2FzZSAkYXJnIGluCisrCS1vKQorKwkg IHRlc3QgLW4gIiRsaWJvYmoiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBjYW5u b3Qgc3BlY2lmeSBcYC1vJyBtb3JlIHRoYW4gb25jZSIKKysJICBhcmdfbW9kZT10YXJnZXQKKysJ ICBjb250aW51ZQorKwkgIDs7CisrCisrCS1waWUgfCAtZnBpZSB8IC1mUElFKQorKyAgICAgICAg ICBwaWVfZmxhZz0iJHBpZV9mbGFnICRhcmciCisrCSAgY29udGludWUKKysJICA7OworKworKwkt c2hhcmVkIHwgLXN0YXRpYyB8IC1wcmVmZXItcGljIHwgLXByZWZlci1ub24tcGljKQorKwkgIGxh dGVyPSIkbGF0ZXIgJGFyZyIKKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1uby1zdXBwcmVz cykKKysJICBzdXBwcmVzc19vcHQ9bm8KKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1YY29t cGlsZXIpCisrCSAgYXJnX21vZGU9YXJnICAjICB0aGUgbmV4dCBvbmUgZ29lcyBpbnRvIHRoZSAi YmFzZV9jb21waWxlIiBhcmcgbGlzdAorKwkgIGNvbnRpbnVlICAgICAgIyAgVGhlIGN1cnJlbnQg InNyY2ZpbGUiIHdpbGwgZWl0aGVyIGJlIHJldGFpbmVkIG9yCisrCSAgOzsgICAgICAgICAgICAj ICByZXBsYWNlZCBsYXRlci4gIEkgd291bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1Zy4KKysK KysJLVdjLCopCisrCSAgZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgorKwkgIGFyZ3M9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgIGxhc3Rhcmc9CisrCSAgc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JywnCisrCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KKysJICAgIElGUz0iJHNhdmVfaWZz IgorKwkgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJICAgIGxhc3Rhcmc9IiRsYXN0 YXJnICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJICBkb25lCisrCSAgSUZTPSIkc2F2 ZV9pZnMiCisrCSAgZnVuY19zdHJpcG5hbWUgJyAnICcnICIkbGFzdGFyZyIKKysJICBsYXN0YXJn PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysKKysJICAjIEFkZCB0aGUgYXJndW1lbnRzIHRvIGJh c2VfY29tcGlsZS4KKysJICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGxhc3RhcmciCisr CSAgY29udGludWUKKysJICA7OworKworKwkqKQorKwkgICMgQWNjZXB0IHRoZSBjdXJyZW50IGFy Z3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KKysJICAjIFRoZSBwcmV2aW91cyAic3JjZmlsZSIg YmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KKysJICAjCisrCSAgbGFzdGFyZz0iJHNyY2Zp bGUiCisrCSAgc3JjZmlsZT0iJGFyZyIKKysJICA7OworKwllc2FjICAjICBjYXNlICRhcmcKKysJ OzsKKysgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19tb2RlCisrCisrICAgICAgIyBBZXN0aGV0 aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KKysgICAgICBmdW5jX3F1b3RlX2Zv cl9ldmFsICIkbGFzdGFyZyIKKysgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICBkb25lICMgZm9yIGFyZworKworKyAgICBj YXNlICRhcmdfbW9kZSBpbgorKyAgICBhcmcpCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91 IG11c3Qgc3BlY2lmeSBhbiBhcmd1bWVudCBmb3IgLVhjb21waWxlIgorKyAgICAgIDs7CisrICAg IHRhcmdldCkKKysgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3UgbXVzdCBzcGVjaWZ5IGEgdGFy Z2V0IHdpdGggXGAtbyciCisrICAgICAgOzsKKysgICAgKikKKysgICAgICAjIEdldCB0aGUgbmFt ZSBvZiB0aGUgbGlicmFyeSBvYmplY3QuCisrICAgICAgdGVzdCAteiAiJGxpYm9iaiIgJiYgewor KwlmdW5jX2Jhc2VuYW1lICIkc3JjZmlsZSIKKysJbGlib2JqPSIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCisrICAgICAgfQorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBSZWNvZ25pemUg c2V2ZXJhbCBkaWZmZXJlbnQgZmlsZSBzdWZmaXhlcy4KKysgICAgIyBJZiB0aGUgdXNlciBzcGVj aWZpZXMgLW8gZmlsZS5vLCBpdCBpcyByZXBsYWNlZCB3aXRoIGZpbGUubG8KKysgICAgY2FzZSAk bGlib2JqIGluCisrICAgICouW2NDRlNpZm1zb10gfCBcCisrICAgICouYWRhIHwgKi5hZGIgfCAq LmFkcyB8ICouYXNtIHwgXAorKyAgICAqLmMrKyB8ICouY2MgfCAqLmlpIHwgKi5jbGFzcyB8ICou Y3BwIHwgKi5jeHggfCBcCisrICAgICouW2ZGXVswOV0/IHwgKi5mb3IgfCAqLmphdmEgfCAqLm9i aiB8ICouc3gpCisrICAgICAgZnVuY194Zm9ybSAiJGxpYm9iaiIKKysgICAgICBsaWJvYmo9JGZ1 bmNfeGZvcm1fcmVzdWx0CisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRsaWJv YmogaW4KKysgICAgKi5sbykgZnVuY19sbzJvICIkbGlib2JqIjsgb2JqPSRmdW5jX2xvMm9fcmVz dWx0IDs7CisrICAgICopCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGRldGVybWlu ZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0IGZyb20gXGAkbGlib2JqJyIKKysgICAgICA7OworKyAg ICBlc2FjCisrCisrICAgIGZ1bmNfaW5mZXJfdGFnICRiYXNlX2NvbXBpbGUKKysKKysgICAgZm9y IGFyZyBpbiAkbGF0ZXI7IGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLXNoYXJlZCkK KysJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKysJICBmdW5jX2ZhdGFs X2NvbmZpZ3VyYXRpb24gImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKysJYnVpbGRf b2xkX2xpYnM9bm8KKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtc3RhdGljKQorKwlidWls ZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgLXByZWZlci1waWMpCisrCXBpY19tb2RlPXllcworKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1wcmVmZXItbm9uLXBpYykKKysJcGljX21vZGU9bm8KKysJY29udGludWUK KysJOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgZnVuY19xdW90ZV9mb3JfZXZh bCAiJGxpYm9iaiIKKysgICAgdGVzdCAiWCRsaWJvYmoiICE9ICJYJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IiBcCisrICAgICAgJiYgJEVDSE8gIlgkbGlib2JqIiB8ICRHUkVQICdbXX4jXip7 fTs8Pj8iJyInIicJICYoKXxgJFtdJyBcCisrICAgICAgJiYgZnVuY193YXJuaW5nICJsaWJvYmog bmFtZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMu IgorKyAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkb2JqIiAiLyIgIiIKKysgICAgb2Jq bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jl c3VsdCIKKysgICAgbG9iaj0ke3hkaXJ9JG9iamRpci8kb2JqbmFtZQorKworKyAgICB0ZXN0IC16 ICIkYmFzZV9jb21waWxlIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBz cGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIKKysKKysgICAgIyBEZWxldGUgYW55IGxlZnRv dmVyIGxpYnJhcnkgb2JqZWN0cy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHll czsgdGhlbgorKyAgICAgIHJlbW92ZWxpc3Q9IiRvYmogJGxvYmogJGxpYm9iaiAke2xpYm9ian1U IgorKyAgICBlbHNlCisrICAgICAgcmVtb3ZlbGlzdD0iJGxvYmogJGxpYm9iaiAke2xpYm9ian1U IgorKyAgICBmaQorKworKyAgICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxh ZyBzbyB3ZSBtdXN0IGJ1aWxkIGJvdGggb2JqZWN0IHR5cGVzCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAg ICBwaWNfbW9kZT1kZWZhdWx0CisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBpZiB0ZXN0ICIk cGljX21vZGUiID0gbm8gJiYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2Fs bDsgdGhlbgorKyAgICAgICMgbm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMgaXMgbm90 IHN1cHBvcnRlZAorKyAgICAgIHBpY19tb2RlPWRlZmF1bHQKKysgICAgZmkKKysKKysgICAgIyBD YWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRv ZXMKKysgICAgIyBub3Qgc3VwcG9ydCAtbyB3aXRoIC1jCisrICAgIGlmIHRlc3QgIiRjb21waWxl cl9jX28iID0gbm87IHRoZW4KKysgICAgICBvdXRwdXRfb2JqPWAkRUNITyAiWCRzcmNmaWxlIiB8 ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQorKyAgICAg IGxvY2tmaWxlPSIkb3V0cHV0X29iai5sb2NrIgorKyAgICBlbHNlCisrICAgICAgb3V0cHV0X29i aj0KKysgICAgICBuZWVkX2xvY2tzPW5vCisrICAgICAgbG9ja2ZpbGU9CisrICAgIGZpCisrCisr ICAgICMgTG9jayB0aGlzIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQgaXMgbmVlZGVkCisrICAgICMg V2UgdXNlIHRoaXMgc2NyaXB0IGZpbGUgdG8gbWFrZSB0aGUgbGluaywgaXQgYXZvaWRzIGNyZWF0 aW5nIGEgbmV3IGZpbGUKKysgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0geWVzOyB0aGVuCisr ICAgICAgdW50aWwgJG9wdF9kcnlfcnVuIHx8IGxuICIkcHJvZ3BhdGgiICIkbG9ja2ZpbGUiIDI+ L2Rldi9udWxsOyBkbworKwlmdW5jX2VjaG8gIldhaXRpbmcgZm9yICRsb2NrZmlsZSB0byBiZSBy ZW1vdmVkIgorKwlzbGVlcCAyCisrICAgICAgZG9uZQorKyAgICBlbGlmIHRlc3QgIiRuZWVkX2xv Y2tzIiA9IHdhcm47IHRoZW4KKysgICAgICBpZiB0ZXN0IC1mICIkbG9ja2ZpbGUiOyB0aGVuCisr CSRFQ0hPICJcCisrKioqIEVSUk9SLCAkbG9ja2ZpbGUgZXhpc3RzIGFuZCBjb250YWluczoKKytg Y2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysKKytUaGlzIGluZGljYXRlcyB0aGF0IGFub3Ro ZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBm aWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIg Y29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5 b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwg YnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0 aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisrCSRvcHRfZHJ5 X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAgZmkK KysgICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkb3V0cHV0X29iaiIKKysgICAgICAkRUNI TyAiJHNyY2ZpbGUiID4gIiRsb2NrZmlsZSIKKysgICAgZmkKKysKKysgICAgJG9wdF9kcnlfcnVu IHx8ICRSTSAkcmVtb3ZlbGlzdAorKyAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkbG9ja2Zp bGUiCisrICAgIHRyYXAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVY SVRfRkFJTFVSRScgMSAyIDE1CisrCisrICAgIGlmIHRlc3QgLW4gIiRmaXhfc3JjZmlsZV9wYXRo IjsgdGhlbgorKyAgICAgIGV2YWwgc3JjZmlsZT1cIiRmaXhfc3JjZmlsZV9wYXRoXCIKKysgICAg ZmkKKysgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHNyY2ZpbGUiCisrICAgIHFzcmNmaWxlPSRm dW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdAorKworKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2Jq ZWN0IGlmIHdlIGFyZSBidWlsZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KKysgICAgaWYgdGVzdCAi JGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFdpdGhvdXQgdGhpcyBh c3NpZ25tZW50LCBiYXNlX2NvbXBpbGUgZ2V0cyBlbXB0aWVkLgorKyAgICAgIGZic2RfaGlkZW91 c19zaF9idWc9JGJhc2VfY29tcGlsZQorKworKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0g bm87IHRoZW4KKysJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgor KyAgICAgIGVsc2UKKysJIyBEb24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9j b21waWxlICRxc3JjZmlsZSIKKysgICAgICBmaQorKworKyAgICAgIGZ1bmNfbWtkaXJfcCAiJHhk aXIkb2JqZGlyIgorKworKyAgICAgIGlmIHRlc3QgLXogIiRvdXRwdXRfb2JqIjsgdGhlbgorKwkj IFBsYWNlIFBJQyBvYmplY3RzIGluICRvYmpkaXIKKysJY29tbWFuZD0iJGNvbW1hbmQgLW8gJGxv YmoiCisrICAgICAgZmkKKysKKysgICAgICBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgIiRjb21tYW5k IglcCisrICAgICAgICAgICd0ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgJFJNICRyZW1vdmVsaXN0 OyBleGl0ICRFWElUX0ZBSUxVUkUnCisrCisrICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0g d2FybiAmJgorKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3Jj ZmlsZSI7IHRoZW4KKysJJEVDSE8gIlwKKysqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoK KytgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysKKytidXQgaXQgc2hvdWxkIGNvbnRhaW46 CisrJHNyY2ZpbGUKKysKKytUaGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0 cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9v bCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhp cyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0 dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBv ciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJl bW92ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysKKysgICAgICAjIEp1 c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZCwgdGhlbiBnbyBvbiB0byBjb21waWxlIHRoZSBu ZXh0IG9uZQorKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1 dF9vYmoiICE9ICJYJGxvYmoiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICckTVYgIiRvdXRwdXRf b2JqIiAiJGxvYmoiJyBcCisrCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1v dmVsaXN0OyBleGl0ICRlcnJvcicKKysgICAgICBmaQorKworKyAgICAgICMgQWxsb3cgZXJyb3Ig bWVzc2FnZXMgb25seSBmcm9tIHRoZSBmaXJzdCBjb21waWxhdGlvbi4KKysgICAgICBpZiB0ZXN0 ICIkc3VwcHJlc3Nfb3B0IiA9IHllczsgdGhlbgorKwlzdXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9u dWxsIDI+JjEnCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBPbmx5IGJ1aWxkIGEgcG9z aXRpb24tZGVwZW5kZW50IG9iamVjdCBpZiB3ZSBidWlsZCBvbGQgbGlicmFyaWVzLgorKyAgICBp ZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgaWYgdGVzdCAiJHBp Y19tb2RlIiAhPSB5ZXM7IHRoZW4KKysJIyBEb24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5k PSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSRwaWVfZmxhZyIKKysgICAgICBlbHNlCisrCWNvbW1h bmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKKysgICAgICBmaQorKyAgICAg IGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0geWVzOyB0aGVuCisrCWNvbW1hbmQ9IiRjb21tYW5k IC1vICRvYmoiCisrICAgICAgZmkKKysKKysgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1 dCBpZiB3ZSBhbHJlYWR5IGRpZCBhIFBJQyBjb21waWxhdGlvbi4KKysgICAgICBjb21tYW5kPSIk Y29tbWFuZCRzdXBwcmVzc19vdXRwdXQiCisrICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIk Y29tbWFuZCIgXAorKyAgICAgICAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4 aXQgJEVYSVRfRkFJTFVSRScKKysKKysgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJu ICYmCisrCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNmaWxl IjsgdGhlbgorKwkkRUNITyAiXAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgorK2Bj YXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAorKworK2J1dCBpdCBzaG91bGQgY29udGFpbjoKKysk c3JjZmlsZQorKworK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWlu ZyB0byB1c2UgdGhlIHNhbWUKKyt0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNv dWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCisreW91ciBjb21waWxlciBkb2VzIG5vdCBz dXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQorK3JlcGVhdCB0aGlzIGNv bXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIK Kythdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdl dCBhIGJldHRlcgorK2NvbXBpbGVyLiIKKysKKysJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3Zl bGlzdAorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAgICMgSnVzdCBt b3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkCisrICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoi ICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkb2JqIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZh bCAnJE1WICIkb3V0cHV0X29iaiIgIiRvYmoiJyBcCisrCSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9y dW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRlcnJvcicKKysgICAgICBmaQorKyAgICBmaQor KworKyAgICAkb3B0X2RyeV9ydW4gfHwgeworKyAgICAgIGZ1bmNfd3JpdGVfbGlidG9vbF9vYmpl Y3QgIiRsaWJvYmoiICIkb2JqZGlyLyRvYmpuYW1lIiAiJG9iam5hbWUiCisrCisrICAgICAgIyBV bmxvY2sgdGhlIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQgd2FzIGxvY2tlZAorKyAgICAgIGlmIHRl c3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKwlyZW1vdmVsaXN0PSRsb2NrZmlsZQorKyAg ICAgICAgJFJNICIkbG9ja2ZpbGUiCisrICAgICAgZmkKKysgICAgfQorKworKyAgICBleGl0ICRF WElUX1NVQ0NFU1MKKyt9CisrCisrJG9wdF9oZWxwIHx8IHsKKyt0ZXN0ICIkbW9kZSIgPSBjb21w aWxlICYmIGZ1bmNfbW9kZV9jb21waWxlICR7MSsiJEAifQorK30KKysKKytmdW5jX21vZGVfaGVs cCAoKQorK3sKKysgICAgIyBXZSBuZWVkIHRvIGRpc3BsYXkgaGVscCBmb3IgZWFjaCBvZiB0aGUg bW9kZXMuCisrICAgIGNhc2UgJG1vZGUgaW4KKysgICAgICAiIikKKysgICAgICAgICMgR2VuZXJp YyBoZWxwIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2FnZSBjb21tZW50cworKyAgICAgICAgIyBh dCB0aGUgc3RhcnQgb2YgdGhpcyBmaWxlLgorKyAgICAgICAgZnVuY19oZWxwCisrICAgICAgICA7 OworKworKyAgICAgIGNsZWFuKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1l IFtPUFRJT05dLi4uIC0tbW9kZT1jbGVhbiBSTSBbUk0tT1BUSU9OXS4uLiBGSUxFLi4uCisrCisr UmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysKKytSTSBpcyB0aGUgbmFt ZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBl YWNoIEZJTEUKKysodHlwaWNhbGx5IFxgL2Jpbi9ybScpLiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9u cyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCisrdG8gUk0uCisrCisrSWYgRklMRSBpcyBh IGxpYnRvb2wgbGlicmFyeSwgb2JqZWN0IG9yIHByb2dyYW0sIGFsbCB0aGUgZmlsZXMgYXNzb2Np YXRlZAorK3dpdGggaXQgYXJlIGRlbGV0ZWQuIE90aGVyd2lzZSwgb25seSBGSUxFIGl0c2VsZiBp cyBkZWxldGVkIHVzaW5nIFJNLiIKKysgICAgICAgIDs7CisrCisrICAgICAgY29tcGlsZSkKKysg ICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNvbXBp bGUgQ09NUElMRS1DT01NQU5ELi4uIFNPVVJDRUZJTEUKKysKKytDb21waWxlIGEgc291cmNlIGZp bGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3QuCisrCisrVGhpcyBtb2RlIGFjY2VwdHMg dGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9wdGlvbnM6CisrCisrICAtbyBPVVRQVVQtRklMRSAg ICBzZXQgdGhlIG91dHB1dCBmaWxlIG5hbWUgdG8gT1VUUFVULUZJTEUKKysgIC1uby1zdXBwcmVz cyAgICAgIGRvIG5vdCBzdXBwcmVzcyBjb21waWxlciBvdXRwdXQgZm9yIG11bHRpcGxlIHBhc3Nl cworKyAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1aWxkaW5nIFBJQyBvYmplY3RzIG9ubHkK KysgIC1wcmVmZXItbm9uLXBpYyAgIHRyeSB0byBidWlsZGluZyBub24tUElDIG9iamVjdHMgb25s eQorKyAgLXNoYXJlZCAgICAgICAgICAgZG8gbm90IGJ1aWxkIGEgXGAubycgZmlsZSBzdWl0YWJs ZSBmb3Igc3RhdGljIGxpbmtpbmcKKysgIC1zdGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBc YC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZworKworK0NPTVBJTEUtQ09NTUFO RCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVj dCBmaWxlCisrZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklMRS4KKysKKytUaGUgb3V0cHV0IGZpbGUg bmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZy b20KKytTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZm aXggXGAuYycgd2l0aCB0aGUKKytsaWJyYXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisrICAg ICAgICA7OworKworKyAgICAgIGV4ZWN1dGUpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAk cHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBbQVJHU10uLi4KKysK KytBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbS4KKysK KytUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKKysK KysgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0 byB0aGUgbGlicmFyeSBwYXRoCisrCisrVGhpcyBtb2RlIHNldHMgdGhlIGxpYnJhcnkgcGF0aCBl bnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVuJworK2ZsYWdzLgorKwor K0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBleGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVu IHRoZXkgYXJlIHRyYW5zbGF0ZWQKKytpbnRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxs ZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkKKytkaXJlY3Rvcmll cyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KKysKKytUaGVuLCBDT01NQU5EIGlzIGV4 ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKKysgICAgICAgIDs7CisrCisrICAgICAg ZmluaXNoKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4u IC0tbW9kZT1maW5pc2ggW0xJQkRJUl0uLi4KKysKKytDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9u IG9mIGxpYnRvb2wgbGlicmFyaWVzLgorKworK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRo YXQgY29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisrCisrVGhlIGNvbW1hbmRzIHRoYXQgdGhp cyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCisr dGhlIFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3Vs ZCBiZSBleGVjdXRlZC4iCisrICAgICAgICA7OworKworKyAgICAgIGluc3RhbGwpCisrICAgICAg ICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwg SU5TVEFMTC1DT01NQU5ELi4uCisrCisrSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMu CisrCisrSU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBm aXJzdCBjb21wb25lbnQgc2hvdWxkIGJlCisrZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3An IHByb2dyYW0uCisrCisrVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIElOU1RBTEwtQ09NTUFO RCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisrCisrICAtaW5zdC1wcmVmaXggUFJFRklYLURJUiAg VXNlIFBSRUZJWC1ESVIgYXMgYSBzdGFnaW5nIGFyZWEgZm9yIGluc3RhbGxhdGlvbgorKworK1Ro ZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVudHMgdG8g dGhhdCBjb21tYW5kIChvbmx5CisrQlNELWNvbXBhdGlibGUgaW5zdGFsbCBvcHRpb25zIGFyZSBy ZWNvZ25pemVkKS4iCisrICAgICAgICA7OworKworKyAgICAgIGxpbmspCisrICAgICAgICAkRUNI TyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01N QU5ELi4uCisrCisrTGluayBvYmplY3QgZmlsZXMgb3IgbGlicmFyaWVzIHRvZ2V0aGVyIHRvIGZv cm0gYW5vdGhlciBsaWJyYXJ5LCBvciB0bworK2NyZWF0ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0u CisrCisrTElOSy1DT01NQU5EIGlzIGEgY29tbWFuZCB1c2luZyB0aGUgQyBjb21waWxlciB0aGF0 IHlvdSB3b3VsZCB1c2UgdG8gY3JlYXRlCisrYSBwcm9ncmFtIGZyb20gc2V2ZXJhbCBvYmplY3Qg ZmlsZXMuCisrCisrVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIExJTkstQ09NTUFORCBhcmUg dHJlYXRlZCBzcGVjaWFsbHk6CisrCisrICAtYWxsLXN0YXRpYyAgICAgICBkbyBub3QgZG8gYW55 IGR5bmFtaWMgbGlua2luZyBhdCBhbGwKKysgIC1hdm9pZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQg YSB2ZXJzaW9uIHN1ZmZpeCBpZiBwb3NzaWJsZQorKyAgLWRsb3BlbiBGSUxFICAgICAgXGAtZGxw cmVvcGVuJyBGSUxFIGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZCBhdCBydW50aW1lCisrICAtZGxw cmVvcGVuIEZJTEUgICBsaW5rIGluIEZJTEUgYW5kIGFkZCBpdHMgc3ltYm9scyB0byBsdF9wcmVs b2FkZWRfc3ltYm9scworKyAgLWV4cG9ydC1keW5hbWljICAgYWxsb3cgc3ltYm9scyBmcm9tIE9V VFBVVC1GSUxFIHRvIGJlIHJlc29sdmVkIHdpdGggZGxzeW0oMykKKysgIC1leHBvcnQtc3ltYm9s cyBTWU1GSUxFCisrICAgICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5 bWJvbHMgbGlzdGVkIGluIFNZTUZJTEUKKysgIC1leHBvcnQtc3ltYm9scy1yZWdleCBSRUdFWAor KyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIG1hdGNo aW5nIFJFR0VYCisrICAtTExJQkRJUiAgICAgICAgICBzZWFyY2ggTElCRElSIGZvciByZXF1aXJl ZCBpbnN0YWxsZWQgbGlicmFyaWVzCisrICAtbE5BTUUgICAgICAgICAgICBPVVRQVVQtRklMRSBy ZXF1aXJlcyB0aGUgaW5zdGFsbGVkIGxpYnJhcnkgbGliTkFNRQorKyAgLW1vZHVsZSAgICAgICAg ICAgYnVpbGQgYSBsaWJyYXJ5IHRoYXQgY2FuIGRsb3BlbmVkCisrICAtbm8tZmFzdC1pbnN0YWxs ICBkaXNhYmxlIHRoZSBmYXN0LWluc3RhbGwgbW9kZQorKyAgLW5vLWluc3RhbGwgICAgICAgbGlu ayBhIG5vdC1pbnN0YWxsYWJsZSBleGVjdXRhYmxlCisrICAtbm8tdW5kZWZpbmVkICAgICBkZWNs YXJlIHRoYXQgYSBsaWJyYXJ5IGRvZXMgbm90IHJlZmVyIHRvIGV4dGVybmFsIHN5bWJvbHMKKysg IC1vIE9VVFBVVC1GSUxFICAgIGNyZWF0ZSBPVVRQVVQtRklMRSBmcm9tIHRoZSBzcGVjaWZpZWQg b2JqZWN0cworKyAgLW9iamVjdGxpc3QgRklMRSAgVXNlIGEgbGlzdCBvZiBvYmplY3QgZmlsZXMg Zm91bmQgaW4gRklMRSB0byBzcGVjaWZ5IG9iamVjdHMKKysgIC1wcmVjaW91cy1maWxlcy1yZWdl eCBSRUdFWAorKyAgICAgICAgICAgICAgICAgICAgZG9uJ3QgcmVtb3ZlIG91dHB1dCBmaWxlcyBt YXRjaGluZyBSRUdFWAorKyAgLXJlbGVhc2UgUkVMRUFTRSAgc3BlY2lmeSBwYWNrYWdlIHJlbGVh c2UgaW5mb3JtYXRpb24KKysgIC1ycGF0aCBMSUJESVIgICAgIHRoZSBjcmVhdGVkIGxpYnJhcnkg d2lsbCBldmVudHVhbGx5IGJlIGluc3RhbGxlZCBpbiBMSUJESVIKKysgIC1SWyBdTElCRElSICAg ICAgIGFkZCBMSUJESVIgdG8gdGhlIHJ1bnRpbWUgcGF0aCBvZiBwcm9ncmFtcyBhbmQgbGlicmFy aWVzCisrICAtc2hhcmVkICAgICAgICAgICBvbmx5IGRvIGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0 b29sIGxpYnJhcmllcworKyAgLXNocmV4dCBTVUZGSVggICAgb3ZlcnJpZGUgdGhlIHN0YW5kYXJk IHNoYXJlZCBsaWJyYXJ5IGZpbGUgZXh0ZW5zaW9uCisrICAtc3RhdGljICAgICAgICAgICBkbyBu b3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBvZiB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmll cworKyAgLXN0YXRpYy1saWJ0b29sLWxpYnMKKysgICAgICAgICAgICAgICAgICAgIGRvIG5vdCBk byBhbnkgZHluYW1pYyBsaW5raW5nIG9mIGxpYnRvb2wgbGlicmFyaWVzCisrICAtdmVyc2lvbi1p bmZvIENVUlJFTlRbOlJFVklTSU9OWzpBR0VdXQorKyAgICAgICAgICAgICAgICAgICAgc3BlY2lm eSBsaWJyYXJ5IHZlcnNpb24gaW5mbyBbZWFjaCB2YXJpYWJsZSBkZWZhdWx0cyB0byAwXQorKyAg LXdlYWsgTElCTkFNRSAgICAgZGVjbGFyZSB0aGF0IHRoZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJ Qk5BTUUgaW50ZXJmYWNlCisrCisrQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5p bmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KKysKKytFdmVyeSBvdGhlciBhcmd1bWVudCBpcyB0 cmVhdGVkIGFzIGEgZmlsZW5hbWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQorK3RyZWF0 ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFu ZGFyZCBvciBsaWJyYXJ5Cisrb2JqZWN0IGZpbGVzLgorKworK0lmIHRoZSBPVVRQVVQtRklMRSBl bmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorK29ubHkg bGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1y cGF0aCcgaXMKKytyZXF1aXJlZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5jZSBs aWJyYXJ5LgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhl biBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAorK3VzaW5nIFxgYXInIGFuZCBcYHJhbmxp YicsIG9yIG9uIFdpbmRvd3MgdXNpbmcgXGBsaWInLgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMg aW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxl CisraXMgY3JlYXRlZCwgb3RoZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVk LiIKKysgICAgICAgIDs7CisrCisrICAgICAgdW5pbnN0YWxsKQorKyAgICAgICAgJEVDSE8gXAor KyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT11bmluc3RhbGwgUk0gW1JNLU9Q VElPTl0uLi4gRklMRS4uLgorKworK1JlbW92ZSBsaWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRp b24gZGlyZWN0b3J5LgorKworK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0 byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBpY2FsbHkgXGAv YmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBw YXNzZWQKKyt0byBSTS4KKysKKytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhl IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVsZXRlZC4KKytPdGhlcndpc2UsIG9ubHkg RklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4iCisrICAgICAgICA7OworKworKyAgICAg ICopCisrICAgICAgICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAk bW9kZSciCisrICAgICAgICA7OworKyAgICBlc2FjCisrCisrICAgICRFQ0hPCisrICAgICRFQ0hP ICJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhl ciBtb2Rlcy4iCisrCisrICAgIGV4aXQgJD8KKyt9CisrCisrICAjIE5vdyB0aGF0IHdlJ3ZlIGNv bGxlY3RlZCBhIHBvc3NpYmxlIC0tbW9kZSBhcmcsIHNob3cgaGVscCBpZiBuZWNlc3NhcnkKKysg ICRvcHRfaGVscCAmJiBmdW5jX21vZGVfaGVscAorKworKworKyMgZnVuY19tb2RlX2V4ZWN1dGUg YXJnLi4uCisrZnVuY19tb2RlX2V4ZWN1dGUgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAg IyBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIGNvbW1hbmQgbmFtZS4KKysgICAgY21kPSIkbm9u b3B0IgorKyAgICB0ZXN0IC16ICIkY21kIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5 b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIKKysKKysgICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFn cyBpbW1lZGlhdGVseS4KKysgICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxlczsgZG8KKysg ICAgICB0ZXN0IC1mICIkZmlsZSIgXAorKwl8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlz IG5vdCBhIGZpbGUiCisrCisrICAgICAgZGlyPQorKyAgICAgIGNhc2UgJGZpbGUgaW4KKysgICAg ICAqLmxhKQorKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBh cmNoaXZlLgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0 YWxfaGVscCAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCisrCisrCSMg UmVhZCB0aGUgbGlidG9vbCBsaWJyYXJ5LgorKwlkbG5hbWU9CisrCWxpYnJhcnlfbmFtZXM9Cisr CWZ1bmNfc291cmNlICIkZmlsZSIKKysKKysJIyBTa2lwIHRoaXMgbGlicmFyeSBpZiBpdCBjYW5u b3QgYmUgZGxvcGVuZWQuCisrCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCisrCSAgIyBXYXJu IGlmIGl0IHdhcyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVz IiAmJiBcCisrCSAgICBmdW5jX3dhcm5pbmcgIlxgJGZpbGUnIHdhcyBub3QgbGlua2VkIHdpdGgg XGAtZXhwb3J0LWR5bmFtaWMnIgorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCWZ1bmNfZGlybmFt ZSAiJGZpbGUiICIiICIuIgorKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwlpZiB0 ZXN0IC1mICIkZGlyLyRvYmpkaXIvJGRsbmFtZSI7IHRoZW4KKysJICBkaXI9IiRkaXIvJG9iamRp ciIKKysJZWxzZQorKwkgIGlmIHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgorKwkgICAg ZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxg JGRpci8kb2JqZGlyJyIKKysJICBmaQorKwlmaQorKwk7OworKworKyAgICAgICoubG8pCisrCSMg SnVzdCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSAubG8gZmlsZS4KKysJZnVuY19k aXJuYW1lICIkZmlsZSIgIiIgIi4iCisrCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCTs7 CisrCisrICAgICAgKikKKysJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9y IG5vbi1saWJ0b29sIGxpYnJhcmllcyBhbmQgb2JqZWN0cyIKKysJY29udGludWUKKysJOzsKKysg ICAgICBlc2FjCisrCisrICAgICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgorKyAgICAg IGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBk aXI9IiRhYnNkaXIiCisrCisrICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJw YXRoX3Zhci4KKysgICAgICBpZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsg dGhlbgorKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyXCIiCisrICAgICAgZWxzZQorKwll dmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKKysgICAgICBm aQorKyAgICBkb25lCisrCisrICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlw dHMganVzdCB0byBzZXQgc2hsaWJwYXRoX3ZhcgorKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcg dGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgorKwor KyAgICAjIENoZWNrIGlmIGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3JpcHQu CisrICAgIGFyZ3M9CisrICAgIGZvciBmaWxlCisrICAgIGRvCisrICAgICAgY2FzZSAkZmlsZSBp bgorKyAgICAgIC0qKSA7OworKyAgICAgICopCisrCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlz IGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KKysJaWYgZnVuY19sdHdyYXBwZXJfc2NyaXB0 X3AgIiRmaWxlIjsgdGhlbgorKwkgIGZ1bmNfc291cmNlICIkZmlsZSIKKysJICAjIFRyYW5zZm9y bSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgorKwll bGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19s dHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisrCSAgZnVuY19zb3VyY2UgIiRmdW5jX2x0d3Jh cHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBu YW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgorKwlmaQorKwk7OworKyAgICAgIGVz YWMKKysgICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNoYXJh Y3RlcnMpLgorKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmaWxlIgorKyAgICAgIGFyZ3M9 IiRhcmdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysgICAgZG9uZQorKworKyAgICBp ZiB0ZXN0ICJYJG9wdF9kcnlfcnVuIiA9IFhmYWxzZTsgdGhlbgorKyAgICAgIGlmIHRlc3QgLW4g IiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KKysJ ZXZhbCAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrCisrICAgICAgIyBSZXN0 b3JlIHNhdmVkIGVudmlyb25tZW50IHZhcmlhYmxlcworKyAgICAgIGZvciBsdF92YXIgaW4gTEFO RyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUworKyAgICAg IGRvCisrCWV2YWwgImlmIHRlc3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVu CisrICAgICAgICAgICAgICAgICRsdF92YXI9XCRzYXZlXyRsdF92YXI7IGV4cG9ydCAkbHRfdmFy CisrCSAgICAgIGVsc2UKKysJCSRsdF91bnNldCAkbHRfdmFyCisrCSAgICAgIGZpIgorKyAgICAg IGRvbmUKKysKKysgICAgICAjIE5vdyBwcmVwYXJlIHRvIGFjdHVhbGx5IGV4ZWMgdGhlIGNvbW1h bmQuCisrICAgICAgZXhlY19jbWQ9IlwkY21kJGFyZ3MiCisrICAgIGVsc2UKKysgICAgICAjIERp c3BsYXkgd2hhdCB3b3VsZCBiZSBkb25lLgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhf dmFyIjsgdGhlbgorKwlldmFsICJcJEVDSE8gXCJcJHNobGlicGF0aF92YXI9XCQkc2hsaWJwYXRo X3ZhclwiIgorKwkkRUNITyAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrICAg ICAgJEVDSE8gIiRjbWQkYXJncyIKKysgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgZmkK Kyt9CisrCisrdGVzdCAiJG1vZGUiID0gZXhlY3V0ZSAmJiBmdW5jX21vZGVfZXhlY3V0ZSAkezEr IiRAIn0KKysKKysKKysjIGZ1bmNfbW9kZV9maW5pc2ggYXJnLi4uCisrZnVuY19tb2RlX2Zpbmlz aCAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBsaWJkaXJzPSIkbm9ub3B0IgorKyAgICBh ZG1pbmNtZHM9CisrCisrICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIg JiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCisrICAgICAgZm9yIGRpcgorKyAgICAgIGRvCisr CWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCisrICAgICAgZG9uZQorKworKyAgICAgIGZvciBsaWJk aXIgaW4gJGxpYmRpcnM7IGRvCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7IHRoZW4KKysJ ICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgorKwkgIGZ1bmNfZXhl Y3V0ZV9jbWRzICIkZmluaXNoX2NtZHMiICdhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysnIiRjbWQi JyInCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KKysJICAjIERvIHRo ZSBzaW5nbGUgZmluaXNoX2V2YWwuCisrCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKKysJ ICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZHMiIHx8IGFkbWluY21kcz0iJGFkbWluY21kcwor KyAgICAgICAkY21kcyIKKysJZmkKKysgICAgICBkb25lCisrICAgIGZpCisrCisrICAgICMgRXhp dCBoZXJlIGlmIHRoZXkgd2FudGVkIHNpbGVudCBtb2RlLgorKyAgICAkb3B0X3NpbGVudCAmJiBl eGl0ICRFWElUX1NVQ0NFU1MKKysKKysgICAgJEVDSE8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2Vk CisrICAgICRFQ0hPICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCisrICAgIGZv ciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrICAgICAgJEVDSE8gIiAgICRsaWJkaXIiCisrICAg IGRvbmUKKysgICAgJEVDSE8KKysgICAgJEVDSE8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50 IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgorKyAgICAkRUNITyAiaW4gYSBn aXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQi CisrICAgICRFQ0hPICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBv ciB1c2UgdGhlIFxgLUxMSUJESVInIgorKyAgICAkRUNITyAiZmxhZyBkdXJpbmcgbGlua2luZyBh bmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgorKyAgICBpZiB0ZXN0IC1uICIk c2hsaWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRo ZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKysgICAgICAkRUNITyAi ICAgICBkdXJpbmcgZXhlY3V0aW9uIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIkcnVucGF0 aF92YXIiOyB0aGVuCisrICAgICAgJEVDSE8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVu cGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAgICAgICRFQ0hPICIgICAgIGR1cmlu ZyBsaW5raW5nIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYyI7IHRoZW4KKysgICAgICBsaWJkaXI9TElCRElSCisrICAgICAgZXZhbCBmbGFnPVwi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorKworKyAgICAgICRFQ0hPICIgICAtIHVzZSB0 aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCisrICAgIGZpCisrICAgIGlmIHRlc3QgLW4gIiRhZG1p bmNtZHMiOyB0aGVuCisrICAgICAgJEVDSE8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlz dHJhdG9yIHJ1biB0aGVzZSBjb21tYW5kczokYWRtaW5jbWRzIgorKyAgICBmaQorKyAgICBpZiB0 ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91 ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25mJyIK KysgICAgZmkKKysgICAgJEVDSE8KKysKKysgICAgJEVDSE8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5 c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgorKyAgICBjYXNl ICRob3N0IGluCisrICAgICAgc29sYXJpczIuWzY3ODldfHNvbGFyaXMyLjFbMC05XSkKKysgICAg ICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBh bmQgbGQuc28oOCkgbWFudWFsIgorKwkkRUNITyAicGFnZXMuIgorKwk7OworKyAgICAgICopCisr ICAgICAgICAkRUNITyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxk LnNvKDgpIG1hbnVhbCBwYWdlcy4iCisrICAgICAgICA7OworKyAgICBlc2FjCisrICAgICRFQ0hP ICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAorKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyt9Cisr CisrdGVzdCAiJG1vZGUiID0gZmluaXNoICYmIGZ1bmNfbW9kZV9maW5pc2ggJHsxKyIkQCJ9Cisr CisrCisrIyBmdW5jX21vZGVfaW5zdGFsbCBhcmcuLi4KKytmdW5jX21vZGVfaW5zdGFsbCAoKQor K3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICAjIFRoZXJlIG1heSBiZSBhbiBvcHRpb25hbCBzaCgx KSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCisrICAgICMgaW5zdGFsbF9wcm9nIChlc3Bl Y2lhbGx5IG9uIFdpbmRvd3MgTlQpLgorKyAgICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwi IHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAorKyAgICAgICAjIEFsbG93IHRoZSB1c2Ug b2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KKysgICAgICAgJEVDSE8gIlgkbm9ub3B0 IiB8ICRHUkVQIHNodG9vbCA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIyBBZXN0aGV0aWNhbGx5 IHF1b3RlIGl0LgorKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRub25vcHQiCisrICAgICAg aW5zdGFsbF9wcm9nPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQgIgorKyAgICAgIGFyZz0k MQorKyAgICAgIHNoaWZ0CisrICAgIGVsc2UKKysgICAgICBpbnN0YWxsX3Byb2c9CisrICAgICAg YXJnPSRub25vcHQKKysgICAgZmkKKysKKysgICAgIyBUaGUgcmVhbCBmaXJzdCBhcmd1bWVudCBz aG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBwcm9ncmFtLgorKyAgICAjIEFl c3RoZXRpY2FsbHkgcXVvdGUgaXQuCisrICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisr ICAgIGluc3RhbGxfcHJvZz0iJGluc3RhbGxfcHJvZyRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKKysKKysgICAgIyBXZSBuZWVkIHRvIGFjY2VwdCBhdCBsZWFzdCBhbGwgdGhlIEJTRCBpbnN0 YWxsIGZsYWdzLgorKyAgICBkZXN0PQorKyAgICBmaWxlcz0KKysgICAgb3B0cz0KKysgICAgcHJl dj0KKysgICAgaW5zdGFsbF90eXBlPQorKyAgICBpc2Rpcj1ubworKyAgICBzdHJpcG1lPQorKyAg ICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgaWYgdGVzdCAtbiAiJGRlc3QiOyB0aGVuCisrCWZp bGVzPSIkZmlsZXMgJGRlc3QiCisrCWRlc3Q9JGFyZworKwljb250aW51ZQorKyAgICAgIGZpCisr CisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLWQpIGlzZGlyPXllcyA7OworKyAgICAgIC1m KQorKwljYXNlICIgJGluc3RhbGxfcHJvZyAiIGluCisrCSpbXFxcIC9dY3BcICopIDs7CisrCSop IHByZXY9JGFyZyA7OworKwllc2FjCisrCTs7CisrICAgICAgLWcgfCAtbSB8IC1vKQorKwlwcmV2 PSRhcmcKKysJOzsKKysgICAgICAtcykKKysJc3RyaXBtZT0iIC1zIgorKwljb250aW51ZQorKwk7 OworKyAgICAgIC0qKQorKwk7OworKyAgICAgICopCisrCSMgSWYgdGhlIHByZXZpb3VzIG9wdGlv biBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBpdC4KKysJaWYgdGVzdCAtbiAiJHByZXYi OyB0aGVuCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRlc3Q9JGFyZworKwkgIGNvbnRpbnVlCisr CWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0 aGUgYXJndW1lbnQuCisrICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysgICAgICBp bnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Igor KyAgICBkb25lCisrCisrICAgIHRlc3QgLXogIiRpbnN0YWxsX3Byb2ciICYmIFwKKysgICAgICBm dW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIgorKwor KyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhlIFxg JHByZXYnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIKKysKKysgICAgaWYgdGVzdCAteiAi JGZpbGVzIjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorKwlmdW5jX2Zh dGFsX2hlbHAgIm5vIGZpbGUgb3IgZGVzdGluYXRpb24gc3BlY2lmaWVkIgorKyAgICAgIGVsc2UK KysJZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24iCisrICAg ICAgZmkKKysgICAgZmkKKysKKysgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0 aGUgZGVzdGluYXRpb24uCisrICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiJGRlc3QiCisrICAg IGRlc3Q9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKworKyAgICAjIENoZWNrIHRvIHNlZSB0aGF0 IHRoZSBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeS4KKysgICAgdGVzdCAtZCAiJGRlc3QiICYm IGlzZGlyPXllcworKyAgICBpZiB0ZXN0ICIkaXNkaXIiID0geWVzOyB0aGVuCisrICAgICAgZGVz dGRpcj0iJGRlc3QiCisrICAgICAgZGVzdG5hbWU9CisrICAgIGVsc2UKKysgICAgICBmdW5jX2Rp cm5hbWVfYW5kX2Jhc2VuYW1lICIkZGVzdCIgIiIgIi4iCisrICAgICAgZGVzdGRpcj0iJGZ1bmNf ZGlybmFtZV9yZXN1bHQiCisrICAgICAgZGVzdG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIK KysKKysgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUg aXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCisrICAgICAgc2V0IGR1bW15ICRmaWxlczsgc2hp ZnQKKysgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAorKwlmdW5jX2ZhdGFsX2hlbHAgIlxgJGRl c3QnIGlzIG5vdCBhIGRpcmVjdG9yeSIKKysgICAgZmkKKysgICAgY2FzZSAkZGVzdGRpciBpbgor KyAgICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrICAgICopCisrICAgICAgZm9yIGZp bGUgaW4gJGZpbGVzOyBkbworKwljYXNlICRmaWxlIGluCisrCSoubG8pIDs7CisrCSopCisrCSAg ZnVuY19mYXRhbF9oZWxwICJcYCRkZXN0ZGlyJyBtdXN0IGJlIGFuIGFic29sdXRlIGRpcmVjdG9y eSBuYW1lIgorKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgOzsKKysgICAgZXNh YworKworKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8g c2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMu CisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAgICBzdGF0aWNsaWJz PQorKyAgICBmdXR1cmVfbGliZGlycz0KKysgICAgY3VycmVudF9saWJkaXJzPQorKyAgICBmb3Ig ZmlsZSBpbiAkZmlsZXM7IGRvCisrCisrICAgICAgIyBEbyBlYWNoIGluc3RhbGxhdGlvbi4KKysg ICAgICBjYXNlICRmaWxlIGluCisrICAgICAgKi4kbGliZXh0KQorKwkjIERvIHRoZSBzdGF0aWMg bGlicmFyaWVzIGxhdGVyLgorKwlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKysJOzsK KysKKysgICAgICAqLmxhKQorKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEg bGlidG9vbCBhcmNoaXZlLgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIkZmlsZSIgXAorKwkgIHx8 IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZl IgorKworKwlsaWJyYXJ5X25hbWVzPQorKwlvbGRfbGlicmFyeT0KKysJcmVsaW5rX2NvbW1hbmQ9 CisrCWZ1bmNfc291cmNlICIkZmlsZSIKKysKKysJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50 X2xpYmRpcnMgaWYgaXQgaXMgdGhlIGRlc3RpbmF0aW9uLgorKwlpZiB0ZXN0ICJYJGRlc3RkaXIi ID0gIlgkbGliZGlyIjsgdGhlbgorKwkgIGNhc2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgorKwkg ICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgY3VycmVudF9saWJkaXJzPSIkY3VycmVudF9saWJk aXJzICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwllbHNlCisrCSAgIyBOb3RlIHRoZSBsaWJkaXIg YXMgYSBmdXR1cmUgbGliZGlyLgorKwkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCisrCSAg KiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmdXR1cmVfbGliZGlycz0iJGZ1dHVyZV9saWJkaXJz ICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKworKwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAi LyIgIiIKKysJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJZGlyPSIkZGlyJG9iamRpciIK KysKKysJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJtaW5l IHRoZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAg aW5zdF9wcmVmaXhfZGlyPWAkRUNITyAiWCRkZXN0ZGlyIiB8ICRYc2VkIC1lICJzJSRsaWJkaXJc JCUlImAKKysKKysJICAjIERvbid0IGFsbG93IHRoZSB1c2VyIHRvIHBsYWNlIHVzIG91dHNpZGUg b2Ygb3VyIGV4cGVjdGVkCisrCSAgIyBsb2NhdGlvbiBiL2MgdGhpcyBwcmV2ZW50cyBmaW5kaW5n IGRlcGVuZGVudCBsaWJyYXJpZXMgdGhhdAorKwkgICMgYXJlIGluc3RhbGxlZCB0byB0aGUgc2Ft ZSBwcmVmaXguCisrCSAgIyBBdCBwcmVzZW50LCB0aGlzIGNoZWNrIGRvZXNuJ3QgYWZmZWN0IHdp bmRvd3MgLmRsbCdzIHRoYXQKKysJICAjIGFyZSBpbnN0YWxsZWQgaW50byAkbGliZGlyLy4uL2Jp biAoY3VycmVudGx5LCB0aGF0IHdvcmtzIGZpbmUpCisrCSAgIyBidXQgaXQncyBzb21ldGhpbmcg dG8ga2VlcCBhbiBleWUgb24uCisrCSAgdGVzdCAiJGluc3RfcHJlZml4X2RpciIgPSAiJGRlc3Rk aXIiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiBjYW5ub3QgaW5zdGFsbCBc YCRmaWxlJyB0byBhIGRpcmVjdG9yeSBub3QgZW5kaW5nIGluICRsaWJkaXIiCisrCisrCSAgaWYg dGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KKysJICAgICMgU3RpY2sgdGhlIGluc3Rf cHJlZml4X2RpciBkYXRhIGludG8gdGhlIGxpbmsgY29tbWFuZC4KKysJICAgIHJlbGlua19jb21t YW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAaW5zdF9wcmVmaXhf ZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZpeF9kaXIlImAKKysJICBlbHNlCisrCSAg ICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMl QGluc3RfcHJlZml4X2RpckAlJSJgCisrCSAgZmkKKysKKysJICBmdW5jX3dhcm5pbmcgInJlbGlu a2luZyBcYCRmaWxlJyIKKysJICBmdW5jX3Nob3dfZXZhbCAiJHJlbGlua19jb21tYW5kIiBcCisr CSAgICAnZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IHJlbGluayBcYCRmaWxlJ1wnJyB3aXRoIHRo ZSBhYm92ZSBjb21tYW5kIGJlZm9yZSBpbnN0YWxsaW5nIGl0IicKKysJZmkKKysKKysJIyBTZWUg dGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGlicmFyeS4KKysJc2V0IGR1bW15ICRsaWJyYXJ5X25h bWVzOyBzaGlmdAorKwlpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKysJICByZWFsbmFtZT0iJDEiCisr CSAgc2hpZnQKKysKKysJICBzcmNuYW1lPSIkcmVhbG5hbWUiCisrCSAgdGVzdCAtbiAiJHJlbGlu a19jb21tYW5kIiAmJiBzcmNuYW1lPSIkcmVhbG5hbWUiVAorKworKwkgICMgSW5zdGFsbCB0aGUg c2hhcmVkIGxpYnJhcnkgYW5kIGJ1aWxkIHRoZSBzeW1saW5rcy4KKysJICBmdW5jX3Nob3dfZXZh bCAiJGluc3RhbGxfcHJvZyAkZGlyLyRzcmNuYW1lICRkZXN0ZGlyLyRyZWFsbmFtZSIgXAorKwkg ICAgICAnZXhpdCAkPycKKysJICB0c3RyaXBtZT0iJHN0cmlwbWUiCisrCSAgY2FzZSAkaG9zdF9v cyBpbgorKwkgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysJICAgIGNhc2Ug JHJlYWxuYW1lIGluCisrCSAgICAqLmRsbC5hKQorKwkgICAgICB0c3RyaXBtZT0iIgorKwkgICAg ICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJICBlc2FjCisrCSAgaWYgdGVzdCAtbiAiJHRz dHJpcG1lIiAmJiB0ZXN0IC1uICIkc3RyaXBsaWIiOyB0aGVuCisrCSAgICBmdW5jX3Nob3dfZXZh bCAiJHN0cmlwbGliICRkZXN0ZGlyLyRyZWFsbmFtZSIgJ2V4aXQgJD8nCisrCSAgZmkKKysKKysJ ICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlu a3MsIGFuZCBjcmVhdGUgbmV3IG9uZXMuCisrCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVj YXVzZSB0aGUgYGxuJyBiaW5hcnkgbWlnaHQgZGVwZW5kIG9uCisrCSAgICAjIHRoZSBzeW1saW5r IHdlIHJlcGxhY2UhICBTb2xhcmlzIC9iaW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKKysJ ICAgICMgc28gd2UgYWxzbyBuZWVkIHRvIHRyeSBybSAmJiBsbiAtcy4KKysJICAgIGZvciBsaW5r bmFtZQorKwkgICAgZG8KKysJICAgICAgdGVzdCAiJGxpbmtuYW1lIiAhPSAiJHJlYWxuYW1lIiBc CisrCQkmJiBmdW5jX3Nob3dfZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxu YW1lICRsaW5rbmFtZSB8fCB7ICRSTSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5r bmFtZTsgfTsgfSkiCisrCSAgICBkb25lCisrCSAgZmkKKysKKysJICAjIERvIGVhY2ggY29tbWFu ZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCisrCSAgbGliPSIkZGVzdGRpci8kcmVhbG5h bWUiCisrCSAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycK KysJZmkKKysKKysJIyBJbnN0YWxsIHRoZSBwc2V1ZG8tbGlicmFyeSBmb3IgaW5mb3JtYXRpb24g cHVycG9zZXMuCisrCWZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKwluYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCisrCWluc3RuYW1lPSIkZGlyLyRuYW1lImkKKysJZnVuY19zaG93X2V2YWwgIiRp bnN0YWxsX3Byb2cgJGluc3RuYW1lICRkZXN0ZGlyLyRuYW1lIiAnZXhpdCAkPycKKysKKysJIyBN YXliZSBpbnN0YWxsIHRoZSBzdGF0aWMgbGlicmFyeSwgdG9vLgorKwl0ZXN0IC1uICIkb2xkX2xp YnJhcnkiICYmIHN0YXRpY2xpYnM9IiRzdGF0aWNsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgorKwk7 OworKworKyAgICAgICoubG8pCisrCSMgSW5zdGFsbCAoaS5lLiBjb3B5KSBhIGxpYnRvb2wgb2Jq ZWN0LgorKworKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNu J3QgYWxyZWFkeSBzcGVjaWZpZWQuCisrCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJ ICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgorKwllbHNlCisrCSAgZnVuY19iYXNlbmFt ZSAiJGZpbGUiCisrCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0 ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorKwlmaQorKworKwkjIERlZHVjZSB0aGUgbmFtZSBv ZiB0aGUgZGVzdGluYXRpb24gb2xkLXN0eWxlIG9iamVjdCBmaWxlLgorKwljYXNlICRkZXN0Zmls ZSBpbgorKwkqLmxvKQorKwkgIGZ1bmNfbG8ybyAiJGRlc3RmaWxlIgorKwkgIHN0YXRpY2Rlc3Q9 JGZ1bmNfbG8yb19yZXN1bHQKKysJICA7OworKwkqLiRvYmpleHQpCisrCSAgc3RhdGljZGVzdD0i JGRlc3RmaWxlIgorKwkgIGRlc3RmaWxlPQorKwkgIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9o ZWxwICJjYW5ub3QgY29weSBhIGxpYnRvb2wgb2JqZWN0IHRvIFxgJGRlc3RmaWxlJyIKKysJICA7 OworKwllc2FjCisrCisrCSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVk LgorKwl0ZXN0IC1uICIkZGVzdGZpbGUiICYmIFwKKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3Rh bGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiICdleGl0ICQ/JworKworKwkjIEluc3RhbGwgdGhlIG9s ZCBvYmplY3QgaWYgZW5hYmxlZC4KKysJaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsg dGhlbgorKwkgICMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUu CisrCSAgZnVuY19sbzJvICIkZmlsZSIKKysJICBzdGF0aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQK KysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rl c3QiICdleGl0ICQ/JworKwlmaQorKwlleGl0ICRFWElUX1NVQ0NFU1MKKysJOzsKKysKKysgICAg ICAqKQorKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3Qg YWxyZWFkeSBzcGVjaWZpZWQuCisrCWlmIHRlc3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBk ZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgorKwllbHNlCisrCSAgZnVuY19iYXNlbmFtZSAi JGZpbGUiCisrCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0Zmls ZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorKwlmaQorKworKwkjIElmIHRoZSBmaWxlIGlzIG1pc3Np bmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKKysJIyBiZWNhdXNl IGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkgd2FudCB0bwor KwkjIGluc3RhbGwKKysJc3RyaXBwZWRfZXh0PSIiCisrCWNhc2UgJGZpbGUgaW4KKysJICAqLmV4 ZSkKKysJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCisrCSAgICAgIGZ1bmNfc3RyaXBu YW1lICcnICcuZXhlJyAiJGZpbGUiCisrCSAgICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dAorKwkgICAgICBzdHJpcHBlZF9leHQ9Ii5leGUiCisrCSAgICBmaQorKwkgICAgOzsKKysJZXNh YworKworKwkjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHBy b2dyYW0uCisrCWNhc2UgJGhvc3QgaW4KKysJKmN5Z3dpbiogfCAqbWluZ3cqKQorKwkgICAgaWYg ZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KKysJICAgICAgZnVuY19s dHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisrCSAgICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWVfcmVzdWx0CisrCSAgICBlbHNlCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1l ICcnICcuZXhlJyAiJGZpbGUiCisrCSAgICAgIHdyYXBwZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dAorKwkgICAgZmkKKysJICAgIDs7CisrCSopCisrCSAgICB3cmFwcGVyPSRmaWxlCisrCSAgICA7 OworKwllc2FjCisrCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4K KysJICBub3RpbnN0X2RlcGxpYnM9CisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCisrCSAgZnVuY19z b3VyY2UgIiR3cmFwcGVyIgorKworKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3Vs ZCBoYXZlIGJlZW4gc2V0LgorKwkgIHRlc3QgLXogIiRnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJz aW9uIiAmJiBcCisrCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBl ciBzY3JpcHQgXGAkd3JhcHBlciciCisrCisrCSAgZmluYWxpemU9eWVzCisrCSAgZm9yIGxpYiBp biAkbm90aW5zdF9kZXBsaWJzOyBkbworKwkgICAgIyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxp YnJhcnkgaXMgaW5zdGFsbGVkLgorKwkgICAgbGliZGlyPQorKwkgICAgaWYgdGVzdCAtZiAiJGxp YiI7IHRoZW4KKysJICAgICAgZnVuY19zb3VyY2UgIiRsaWIiCisrCSAgICBmaQorKwkgICAgbGli ZmlsZT0iJGxpYmRpci8iYCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAncyVeLiovJSVnJ2AgIyMj IHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0CisrCSAgICBpZiB0ZXN0IC1uICIk bGliZGlyIiAmJiB0ZXN0ICEgLWYgIiRsaWJmaWxlIjsgdGhlbgorKwkgICAgICBmdW5jX3dhcm5p bmcgIlxgJGxpYicgaGFzIG5vdCBiZWVuIGluc3RhbGxlZCBpbiBcYCRsaWJkaXInIgorKwkgICAg ICBmaW5hbGl6ZT1ubworKwkgICAgZmkKKysJICBkb25lCisrCisrCSAgcmVsaW5rX2NvbW1hbmQ9 CisrCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgorKworKwkgIG91dHB1dG5hbWU9CisrCSAgaWYg dGVzdCAiJGZhc3RfaW5zdGFsbCIgPSBubyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0 aGVuCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAgICBpZiB0ZXN0ICIkZmluYWxpemUi ID0geWVzOyB0aGVuCisrCSAgICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRpcmAKKysJCWZ1bmNf YmFzZW5hbWUgIiRmaWxlJHN0cmlwcGVkX2V4dCIKKysJCWZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jl c3VsdCIKKysJICAgICAgICBvdXRwdXRuYW1lPSIkdG1wZGlyLyRmaWxlIgorKwkgICAgICAgICMg UmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KKysJICAgICAgICByZWxpbmtf Y29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAl JyIkb3V0cHV0bmFtZSInJWcnYAorKworKwkgICAgICAgICRvcHRfc2lsZW50IHx8IHsKKysJICAg ICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJHJlbGlua19jb21tYW5kIgorKwkJICBldmFs ICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrCSAgICAgICAgfQor KwkgICAgICAgIGlmIGV2YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorKwkgICAgICAgICAg ZWxzZQorKwkJICBmdW5jX2Vycm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnIHdpdGggdGhlIGFi b3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcgaXQiCisrCQkgICRvcHRfZHJ5X3J1biB8fCAk e1JNfXIgIiR0bXBkaXIiCisrCQkgIGNvbnRpbnVlCisrCSAgICAgICAgZmkKKysJICAgICAgICBm aWxlPSIkb3V0cHV0bmFtZSIKKysJICAgICAgZWxzZQorKwkgICAgICAgIGZ1bmNfd2FybmluZyAi Y2Fubm90IHJlbGluayBcYCRmaWxlJyIKKysJICAgICAgZmkKKysJICAgIH0KKysJICBlbHNlCisr CSAgICAjIEluc3RhbGwgdGhlIGJpbmFyeSB0aGF0IHdlIGNvbXBpbGVkIGVhcmxpZXIuCisrCSAg ICBmaWxlPWAkRUNITyAiWCRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAicyVcKFteL10q XCkkJSRvYmpkaXIvXDElImAKKysJICBmaQorKwlmaQorKworKwkjIHJlbW92ZSAuZXhlIHNpbmNl IGN5Z3dpbiAvdXNyL2Jpbi9pbnN0YWxsIHdpbGwgYXBwZW5kIGFub3RoZXIKKysJIyBvbmUgYW55 d2F5CisrCWNhc2UgJGluc3RhbGxfcHJvZywkaG9zdCBpbgorKwkqL3Vzci9iaW4vaW5zdGFsbCos KmN5Z3dpbiopCisrCSAgY2FzZSAkZmlsZTokZGVzdGZpbGUgaW4KKysJICAqLmV4ZToqLmV4ZSkK KysJICAgICMgdGhpcyBpcyBvaworKwkgICAgOzsKKysJICAqLmV4ZToqKQorKwkgICAgZGVzdGZp bGU9JGRlc3RmaWxlLmV4ZQorKwkgICAgOzsKKysJICAqOiouZXhlKQorKwkgICAgZnVuY19zdHJp cG5hbWUgJycgJy5leGUnICIkZGVzdGZpbGUiCisrCSAgICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5h bWVfcmVzdWx0CisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCWZ1bmNfc2hv d19ldmFsICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiAnZXhpdCAk PycKKysJJG9wdF9kcnlfcnVuIHx8IGlmIHRlc3QgLW4gIiRvdXRwdXRuYW1lIjsgdGhlbgorKwkg ICR7Uk19ciAiJHRtcGRpciIKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysK KysgICAgZm9yIGZpbGUgaW4gJHN0YXRpY2xpYnM7IGRvCisrICAgICAgZnVuY19iYXNlbmFtZSAi JGZpbGUiCisrICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKworKyAgICAgICMg U2V0IHVwIHRoZSByYW5saWIgcGFyYW1ldGVycy4KKysgICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRu YW1lIgorKworKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nIFwkZmlsZSBcJG9s ZGxpYiIgJ2V4aXQgJD8nCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3Qg LW4gIiRvbGRfc3RyaXBsaWIiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICIkb2xkX3N0cmlwbGli ICRvbGRsaWIiICdleGl0ICQ/JworKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1h bmQgaW4gdGhlIHBvc3RpbnN0YWxsIGNvbW1hbmRzLgorKyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRz ICIkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JworKyAgICBkb25lCisrCisrICAgIHRl c3QgLW4gIiRmdXR1cmVfbGliZGlycyIgJiYgXAorKyAgICAgIGZ1bmNfd2FybmluZyAicmVtZW1i ZXIgdG8gcnVuIFxgJHByb2duYW1lIC0tZmluaXNoJGZ1dHVyZV9saWJkaXJzJyIKKysKKysgICAg aWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGlycyI7IHRoZW4KKysgICAgICAjIE1heWJlIGp1c3Qg ZG8gYSBkcnkgcnVuLgorKyAgICAgICRvcHRfZHJ5X3J1biAmJiBjdXJyZW50X2xpYmRpcnM9IiAt biRjdXJyZW50X2xpYmRpcnMiCisrICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHBy ZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJzJworKyAgICBlbHNlCisrICAgICAg ZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgIGZpCisrfQorKworK3Rlc3QgIiRtb2RlIiA9IGluc3Rh bGwgJiYgZnVuY19tb2RlX2luc3RhbGwgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX2dlbmVyYXRl X2Rsc3ltcyBvdXRwdXRuYW1lIG9yaWdpbmF0b3IgcGljX3AKKysjIEV4dHJhY3Qgc3ltYm9scyBm cm9tIGRscHJlZmlsZXMgYW5kIGNyZWF0ZSAke291dHB1dG5hbWV9Uy5vIHdpdGgKKysjIGEgZGxw cmVvcGVuIHN5bWJvbCB0YWJsZS4KKytmdW5jX2dlbmVyYXRlX2Rsc3ltcyAoKQorK3sKKysgICAg JG9wdF9kZWJ1ZworKyAgICBteV9vdXRwdXRuYW1lPSIkMSIKKysgICAgbXlfb3JpZ2luYXRvcj0i JDIiCisrICAgIG15X3BpY19wPSIkezMtbm99IgorKyAgICBteV9wcmVmaXg9YCRFQ0hPICIkbXlf b3JpZ2luYXRvciIgfCBzZWQgJ3MlW15hLXpBLVowLTldJV8lZydgCisrICAgIG15X2Rsc3ltcz0K KysKKysgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2Vs ZiIgIT0gbm87IHRoZW4KKysgICAgICBpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9i YWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCW15X2Rsc3ltcz0iJHtteV9vdXRwdXRuYW1lfVMuYyIK KysgICAgICBlbHNlCisrCWZ1bmNfZXJyb3IgIm5vdCBjb25maWd1cmVkIHRvIGV4dHJhY3QgZ2xv YmFsIHN5bWJvbHMgZnJvbSBkbHByZW9wZW5lZCBmaWxlcyIKKysgICAgICBmaQorKyAgICBmaQor KworKyAgICBpZiB0ZXN0IC1uICIkbXlfZGxzeW1zIjsgdGhlbgorKyAgICAgIGNhc2UgJG15X2Rs c3ltcyBpbgorKyAgICAgICIiKSA7OworKyAgICAgICouYykKKysJIyBEaXNjb3ZlciB0aGUgbmxp c3Qgb2YgZWFjaCBvZiB0aGUgZGxmaWxlcy4KKysJbmxpc3Q9IiRvdXRwdXRfb2JqZGlyLyR7bXlf b3V0cHV0bmFtZX0ubm0iCisrCisrCWZ1bmNfc2hvd19ldmFsICIkUk0gJG5saXN0ICR7bmxpc3R9 UyAke25saXN0fVQiCisrCisrCSMgUGFyc2UgdGhlIG5hbWUgbGlzdCBpbnRvIGEgc291cmNlIGZp bGUuCisrCWZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIK KysKKysJJG9wdF9kcnlfcnVuIHx8ICRFQ0hPID4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMi ICJcCisrLyogJG15X2Rsc3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRteV9v dXRwdXRuYW1lJyBkbHN5bSBlbXVsYXRpb24uICovCisrLyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFN IChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTiAqLworKworKyNpZmRlZiBfX2NwbHVz cGx1cworK2V4dGVybiBcIkNcIiB7CisrI2VuZGlmCisrCisrLyogRXh0ZXJuYWwgc3ltYm9sIGRl Y2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wKKysiCisrCisrCWlmIHRlc3QgIiRkbHNl bGYiID0geWVzOyB0aGVuCisrCSAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0 IGZvciBcYCRvdXRwdXQnIgorKworKwkgICRvcHRfZHJ5X3J1biB8fCBlY2hvICc6IEBQUk9HUkFN QCAnID4gIiRubGlzdCIKKysKKysJICAjIEFkZCBvdXIgb3duIHByb2dyYW0gb2JqZWN0cyB0byB0 aGUgc3ltYm9sIGxpc3QuCisrCSAgcHJvZ2ZpbGVzPWAkRUNITyAiWCRvYmpzJG9sZF9kZXBsaWJz IiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisrCSAgZm9yIHByb2dmaWxl IGluICRwcm9nZmlsZXM7IGRvCisrCSAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFs IEMgc3ltYm9scyBmcm9tIFxgJHByb2dmaWxlJyIKKysJICAgICRvcHRfZHJ5X3J1biB8fCBldmFs ICIkTk0gJHByb2dmaWxlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKysJICBk b25lCisrCisrCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAgICRv cHRfZHJ5X3J1biB8fCB7CisrCSAgICAgIGV2YWwgJyRFR1JFUCAtdiAiICgkZXhjbHVkZV9leHBz eW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkgICAgICBldmFsICckTVYgIiRubGlzdCJU ICIkbmxpc3QiJworKwkgICAgfQorKwkgIGZpCisrCisrCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgZXZh bCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4gIiRubGlzdCJU JworKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworKwkgICAgfQorKwkgIGZp CisrCisrCSAgIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKysJICBpZiB0 ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgICBleHBvcnRfc3ltYm9scz0iJG91 dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJ ICAgICAgJFJNICRleHBvcnRfc3ltYm9scworKwkgICAgICBldmFsICIke1NFRH0gLW4gLWUgJy9e OiBAUFJPR1JBTUAgJC9kJyAtZSAncy9eLiogXCguKlwpJC9cMS9wJyAiJzwgIiRubGlzdCIgPiAi JGV4cG9ydF9zeW1ib2xzIicKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAqY3lnd2lu KiB8ICptaW5ndyogfCAqY2VnY2MqICkKKysgICAgICAgICAgICAgICAgZXZhbCAiZWNobyBFWFBP UlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKysgICAgICAgICAgICAg ICAgZXZhbCAnY2F0ICIkZXhwb3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0 bmFtZS5kZWYiJworKwkgICAgICAgIDs7CisrCSAgICAgIGVzYWMKKysJICAgIH0KKysJICBlbHNl CisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAgICBldmFsICIke1NFRH0gLWUgJ3MvXChb XS5bKl4kXVwpL1xcXFxcMS9nJyAtZSAncy9eLyAvJyAtZSAncy8kLyQvJyInIDwgIiRleHBvcnRf c3ltYm9scyIgPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIicKKysJICAgICAgZXZh bCAnJEdSRVAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ ICIkbmxpc3QiVCcKKysJICAgICAgZXZhbCAnJE1WICIkbmxpc3QiVCAiJG5saXN0IicKKysJICAg ICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAgICpjeWd3aW4gfCAqbWluZ3cqIHwgKmNlZ2NjKiAp CisrCSAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZS5kZWYiJworKwkgICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0 X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAgICAgICAgOzsKKysJICAgICAgZXNhYwor KwkgICAgfQorKwkgIGZpCisrCWZpCisrCisrCWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7 IGRvCisrCSAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBc YCRkbHByZWZpbGUnIgorKwkgIGZ1bmNfYmFzZW5hbWUgIiRkbHByZWZpbGUiCisrCSAgbmFtZT0i JGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICBldmFs ICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworKwkgICAgZXZhbCAiJE5NICRkbHByZWZp bGUgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgorKwkgIH0K KysJZG9uZQorKworKwkkb3B0X2RyeV9ydW4gfHwgeworKwkgICMgTWFrZSBzdXJlIHdlIGhhdmUg YXQgbGVhc3QgYW4gZW1wdHkgZmlsZS4KKysJICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5s aXN0IgorKworKwkgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAk RUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAiJG5saXN0IiA+ICIkbmxpc3QiVAorKwkg ICAgJE1WICIkbmxpc3QiVCAiJG5saXN0IgorKwkgIGZpCisrCisrCSAgIyBUcnkgc29ydGluZyBh bmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKysJICBpZiAkR1JFUCAtdiAiXjogIiA8ICIkbmxp c3QiIHwKKysJICAgICAgaWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCisrCQlzb3J0IC1rIDMKKysJICAgICAgZWxzZQorKwkJc29ydCArMgorKwkgICAgICBmaSB8 CisrCSAgICAgIHVuaXEgPiAiJG5saXN0IlM7IHRoZW4KKysJICAgIDoKKysJICBlbHNlCisrCSAg ICAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCisrCSAgZmkKKysKKysJICBp ZiB0ZXN0IC1mICIkbmxpc3QiUzsgdGhlbgorKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9f Y2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyInCisrCSAg ZWxzZQorKwkgICAgJEVDSE8gJy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxz eW1zIgorKwkgIGZpCisrCisrCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMi ICJcCisrCisrLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMu ICAqLworK3R5cGVkZWYgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICph ZGRyZXNzOworK30gbHRfZGxzeW1saXN0OworKyIKKysJICBjYXNlICRob3N0IGluCisrCSAgKmN5 Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisrCSAgICAkRUNITyA+PiAiJG91dHB1dF9vYmpk aXIvJG15X2Rsc3ltcyIgIlwKKysvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNv bid0IGJlIGNvbnN0LCBiZWNhdXNlCisrICAgcnVudGltZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9y bWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KKysgICBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8i CisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAqb3NmNSopCisrCSAgICBlY2hvID4+ICIk b3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNv cGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEgKi8iCisrCSAgICBsdF9kbHN5 bV9jb25zdD0gOzsKKysJICAqKQorKwkgICAgbHRfZGxzeW1fY29uc3Q9Y29uc3QgOzsKKysJICBl c2FjCisrCisrCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrZXh0 ZXJuICRsdF9kbHN5bV9jb25zdCBsdF9kbHN5bWxpc3QKKytsdF8ke215X3ByZWZpeH1fTFRYX3By ZWxvYWRlZF9zeW1ib2xzW107CisrJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorK2x0XyR7 bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Cisre1wKKysgIHsgXCIkbXlfb3Jp Z2luYXRvclwiLCAodm9pZCAqKSAwIH0sIgorKworKwkgIGNhc2UgJG5lZWRfbGliX3ByZWZpeCBp bgorKwkgIG5vKQorKwkgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3Mi IDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCisrCSAgICA7OworKwkg ICopCisrCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJl Zml4IiA8ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorKwkgICAgOzsK KysJICBlc2FjCisrCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisr ICB7MCwgKHZvaWQgKikgMH0KKyt9OworKworKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxl bSBpbiBGcmVlQlNEIGxpbmtlciAqLworKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKKytzdGF0 aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgeworKyAgcmV0dXJuIGx0XyR7bXlf cHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHM7CisrfQorKyNlbmRpZgorKworKyNpZmRlZiBf X2NwbHVzcGx1cworK30KKysjZW5kaWZcCisrIgorKwl9ICMgISRvcHRfZHJ5X3J1bgorKworKwlw aWNfZmxhZ19mb3Jfc3ltdGFibGU9CisrCWNhc2UgIiRjb21waWxlX2NvbW1hbmQgIiBpbgorKwkq IiAtc3RhdGljICIqKSA7OworKwkqKQorKwkgIGNhc2UgJGhvc3QgaW4KKysJICAjIGNvbXBpbGlu ZyB0aGUgc3ltYm9sIHRhYmxlIGZpbGUgd2l0aCBwaWNfZmxhZyB3b3JrcyBhcm91bmQKKysJICAj IGEgRnJlZUJTRCBidWcgdGhhdCBjYXVzZXMgcHJvZ3JhbXMgdG8gY3Jhc2ggd2hlbiAtbG0gaXMK KysJICAjIGxpbmtlZCBiZWZvcmUgYW55IG90aGVyIFBJQyBvYmplY3QuICBCdXQgd2UgbXVzdCBu b3QgdXNlCisrCSAgIyBwaWNfZmxhZyB3aGVuIGxpbmtpbmcgd2l0aCAtc3RhdGljLiAgVGhlIHBy b2JsZW0gZXhpc3RzIGluCisrCSAgIyBGcmVlQlNEIDIuMi42IGFuZCBpcyBmaXhlZCBpbiBGcmVl QlNEIDMuMS4KKysJICAqLSotZnJlZWJzZDIqfCotKi1mcmVlYnNkMy4wKnwqLSotZnJlZWJzZGVs ZjMuMCopCisrCSAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWcgLURGUkVFQlNE X1dPUktBUk9VTkQiIDs7CisrCSAgKi0qLWhwdXgqKQorKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRh YmxlPSIgJHBpY19mbGFnIiAgOzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiWCRteV9waWNfcCIg IT0gWG5vOyB0aGVuCisrCSAgICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIK KysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrCXN5bXRhYl9j ZmxhZ3M9CisrCWZvciBhcmcgaW4gJExUQ0ZMQUdTOyBkbworKwkgIGNhc2UgJGFyZyBpbgorKwkg IC1waWUgfCAtZnBpZSB8IC1mUElFKSA7OworKwkgICopIHN5bXRhYl9jZmxhZ3M9IiRzeW10YWJf Y2ZsYWdzICRhcmciIDs7CisrCSAgZXNhYworKwlkb25lCisrCisrCSMgTm93IGNvbXBpbGUgdGhl IGR5bmFtaWMgc3ltYm9sIGZpbGUuCisrCWZ1bmNfc2hvd19ldmFsICcoY2QgJG91dHB1dF9vYmpk aXIgJiYgJExUQ0Mkc3ltdGFiX2NmbGFncyAtYyRub19idWlsdGluX2ZsYWckcGljX2ZsYWdfZm9y X3N5bXRhYmxlICIkbXlfZGxzeW1zIiknICdleGl0ICQ/JworKworKwkjIENsZWFuIHVwIHRoZSBn ZW5lcmF0ZWQgZmlsZXMuCisrCWZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyRt eV9kbHN5bXMiICIkbmxpc3QiICIke25saXN0fVMiICIke25saXN0fVQiJworKworKwkjIFRyYW5z Zm9ybSB0aGUgc3ltYm9sIGZpbGUgaW50byB0aGUgY29ycmVjdCBuYW1lLgorKwlzeW1maWxlb2Jq PSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5hbWV9Uy4kb2JqZXh0IgorKwljYXNlICRob3N0 IGluCisrCSpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorKwkgIGlmIHRlc3QgLWYgIiRv dXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiI7IHRoZW4KKysJICAgIGNvbXBpbGVfY29t bWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUk b3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKKysJICAgIGZp bmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMl QFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUi YAorKwkgIGVsc2UKKysJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21t YW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorKwkgICAgZmluYWxp emVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lN RklMRUAlJHN5bWZpbGVvYmolImAKKysJICBmaQorKwkgIDs7CisrCSopCisrCSAgY29tcGlsZV9j b21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVA JSRzeW1maWxlb2JqJSJgCisrCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVf Y29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKysJICA7Owor Kwllc2FjCisrCTs7CisrICAgICAgKikKKysJZnVuY19mYXRhbF9lcnJvciAidW5rbm93biBzdWZm aXggZm9yIFxgJG15X2Rsc3ltcyciCisrCTs7CisrICAgICAgZXNhYworKyAgICBlbHNlCisrICAg ICAgIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8K KysgICAgICAjIGx0X3ByZWxvYWRlZF9zeW1ib2xzLiAgVGhlIGxpbmtlciB3aWxsIGZhaWwgaWYg Z2xvYmFsX3N5bWJvbF9waXBlCisrICAgICAgIyByZWFsbHkgd2FzIHJlcXVpcmVkLgorKworKyAg ICAgICMgTnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCisrICAgICAgY29tcGlsZV9jb21tYW5kPWAk RUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlImAKKysg ICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2Vk IC1lICJzJSBAU1lNRklMRUAlJSJgCisrICAgIGZpCisrfQorKworKyMgZnVuY193aW4zMl9saWJp ZCBhcmcKKysjIHJldHVybiB0aGUgbGlicmFyeSB0eXBlIG9mIGZpbGUgJ2FyZycKKysjCisrIyBO ZWVkIGEgbG90IG9mIGdvbyB0byBoYW5kbGUgKmJvdGgqIERMTHMgYW5kIGltcG9ydCBsaWJzCisr IyBIYXMgdG8gYmUgYSBzaGVsbCBmdW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJndW1l bnQKKysjIHRoYXQgaXMgc3VwcGxpZWQgd2hlbiAkZmlsZV9tYWdpY19jb21tYW5kIGlzIGNhbGxl ZC4KKytmdW5jX3dpbjMyX2xpYmlkICgpCisreworKyAgJG9wdF9kZWJ1ZworKyAgd2luMzJfbGli aWRfdHlwZT0idW5rbm93biIKKysgIHdpbjMyX2ZpbGVyZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251 bGxgCisrICBjYXNlICR3aW4zMl9maWxlcmVzIGluCisrICAqYXJcIGFyY2hpdmVcIGltcG9ydFwg bGlicmFyeSopICMgZGVmaW5pdGVseSBpbXBvcnQKKysgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2 IGFyY2hpdmUgaW1wb3J0IgorKyAgICA7OworKyAgKmFyXCBhcmNoaXZlKikgIyBjb3VsZCBiZSBh biBpbXBvcnQsIG9yIHN0YXRpYworKyAgICBpZiBldmFsICRPQkpEVU1QIC1mICQxIHwgJFNFRCAt ZSAnMTBxJyAyPi9kZXYvbnVsbCB8CisrICAgICAgICRFR1JFUCAnZmlsZSBmb3JtYXQgcGUtaTM4 NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAgIHdpbjMy X25tcmVzPWBldmFsICROTSAtZiBwb3NpeCAtQSAkMSB8CisrCSRTRUQgLW4gLWUgJworKwkgICAg MSwxMDB7CisrCQkvIEkgL3sKKysJCSAgICBzLC4qLGltcG9ydCwKKysJCSAgICBwCisrCQkgICAg cQorKwkJfQorKwkgICAgfSdgCisrICAgICAgY2FzZSAkd2luMzJfbm1yZXMgaW4KKysgICAgICBp bXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0Ijs7CisrICAgICAg KikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0YXRpYyI7OworKyAgICAg IGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgICpETEwqKQorKyAgICB3aW4zMl9saWJpZF90eXBl PSJ4ODYgRExMIgorKyAgICA7OworKyAgKmV4ZWN1dGFibGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRz IGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCisrICAgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KKysg ICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQorKyAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4 NiBETEwiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgJEVDSE8g IiR3aW4zMl9saWJpZF90eXBlIgorK30KKysKKysKKysKKysjIGZ1bmNfZXh0cmFjdF9hbl9hcmNo aXZlIGRpciBvbGRsaWIKKytmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAoKQorK3sKKysgICAgJG9w dF9kZWJ1ZworKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAorKyAgICBmX2V4X2FuX2Fy X29sZGxpYj0iJDEiCisrICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAm JiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiICdleGl0ICQ/JworKyAgICBpZiAoJEFS IHQgIiRmX2V4X2FuX2FyX29sZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYx KTsgdGhlbgorKyAgICAgOgorKyAgICBlbHNlCisrICAgICAgZnVuY19mYXRhbF9lcnJvciAib2Jq ZWN0IG5hbWUgY29uZmxpY3RzIGluIGFyY2hpdmU6ICRmX2V4X2FuX2FyX2Rpci8kZl9leF9hbl9h cl9vbGRsaWIiCisrICAgIGZpCisrfQorKworKworKyMgZnVuY19leHRyYWN0X2FyY2hpdmVzIGdl bnRvcCBvbGRsaWIgLi4uCisrZnVuY19leHRyYWN0X2FyY2hpdmVzICgpCisreworKyAgICAkb3B0 X2RlYnVnCisrICAgIG15X2dlbnRvcD0iJDEiOyBzaGlmdAorKyAgICBteV9vbGRsaWJzPSR7MSsi JEAifQorKyAgICBteV9vbGRvYmpzPSIiCisrICAgIG15X3hsaWI9IiIKKysgICAgbXlfeGFicz0i IgorKyAgICBteV94ZGlyPSIiCisrCisrICAgIGZvciBteV94bGliIGluICRteV9vbGRsaWJzOyBk bworKyAgICAgICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4KKysgICAgICBjYXNlICRteV94bGliIGlu CisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7CisrCSop IG15X3hhYnM9YHB3ZGAiLyRteV94bGliIiA7OworKyAgICAgIGVzYWMKKysgICAgICBmdW5jX2Jh c2VuYW1lICIkbXlfeGxpYiIKKysgICAgICBteV94bGliPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQi CisrICAgICAgbXlfeGxpYl91PSRteV94bGliCisrICAgICAgd2hpbGUgOjsgZG8KKysgICAgICAg IGNhc2UgIiAkZXh0cmFjdGVkX2FyY2hpdmVzICIgaW4KKysJKiIgJG15X3hsaWJfdSAiKikKKysJ ICBmdW5jX2FyaXRoICRleHRyYWN0ZWRfc2VyaWFsICsgMQorKwkgIGV4dHJhY3RlZF9zZXJpYWw9 JGZ1bmNfYXJpdGhfcmVzdWx0CisrCSAgbXlfeGxpYl91PWx0JGV4dHJhY3RlZF9zZXJpYWwtJG15 X3hsaWIgOzsKKysJKikgYnJlYWsgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysgICAgICBleHRy YWN0ZWRfYXJjaGl2ZXM9IiRleHRyYWN0ZWRfYXJjaGl2ZXMgJG15X3hsaWJfdSIKKysgICAgICBt eV94ZGlyPSIkbXlfZ2VudG9wLyRteV94bGliX3UiCisrCisrICAgICAgZnVuY19ta2Rpcl9wICIk bXlfeGRpciIKKysKKysgICAgICBjYXNlICRob3N0IGluCisrICAgICAgKi1kYXJ3aW4qKQorKwlm dW5jX3ZlcmJvc2UgIkV4dHJhY3RpbmcgJG15X3hhYnMiCisrCSMgRG8gbm90IGJvdGhlciBkb2lu ZyBhbnl0aGluZyBpZiBqdXN0IGEgZHJ5IHJ1bgorKwkkb3B0X2RyeV9ydW4gfHwgeworKwkgIGRh cndpbl9vcmlnX2Rpcj1gcHdkYAorKwkgIGNkICRteV94ZGlyIHx8IGV4aXQgJD8KKysJICBkYXJ3 aW5fYXJjaGl2ZT0kbXlfeGFicworKwkgIGRhcndpbl9jdXJkaXI9YHB3ZGAKKysJICBkYXJ3aW5f YmFzZV9hcmNoaXZlPWBiYXNlbmFtZSAiJGRhcndpbl9hcmNoaXZlImAKKysJICBkYXJ3aW5fYXJj aGVzPWAkTElQTyAtaW5mbyAiJGRhcndpbl9hcmNoaXZlIiAyPi9kZXYvbnVsbCB8ICRHUkVQIEFy Y2hpdGVjdHVyZXMgMj4vZGV2L251bGwgfHwgdHJ1ZWAKKysJICBpZiB0ZXN0IC1uICIkZGFyd2lu X2FyY2hlcyI7IHRoZW4KKysJICAgIGRhcndpbl9hcmNoZXM9YCRFQ0hPICIkZGFyd2luX2FyY2hl cyIgfCAkU0VEIC1lICdzLy4qYXJlOi8vJ2AKKysJICAgIGRhcndpbl9hcmNoPQorKwkgICAgZnVu Y192ZXJib3NlICIkZGFyd2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJl cyAkZGFyd2luX2FyY2hlcyIKKysJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNo ZXMgOyBkbworKwkgICAgICBmdW5jX21rZGlyX3AgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJj aGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCisrCSAgICAgICRMSVBPIC10aGluICRkYXJ3aW5fYXJjaCAt b3V0cHV0ICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7 ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iICIke2Rhcndpbl9hcmNoaXZlfSIKKysJICAgICAgY2QgInVu ZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCisrCSAgICAgIGZ1 bmNfZXh0cmFjdF9hbl9hcmNoaXZlICJgcHdkYCIgIiR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisr CSAgICAgIGNkICIkZGFyd2luX2N1cmRpciIKKysJICAgICAgJFJNICJ1bmZhdC0kJC8ke2Rhcndp bl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisr CSAgICBkb25lICMgJGRhcndpbl9hcmNoZXMKKysgICAgICAgICAgICAjIyBPa2F5IG5vdyB3ZSd2 ZSBhIGJ1bmNoIG9mIHRoaW4gb2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKKysJICAg IGRhcndpbl9maWxlbGlzdD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50 IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICRTRUQgLWUgIiRiYXNlbmFtZSIgfCBzb3J0IC11YAor KwkgICAgZGFyd2luX2ZpbGU9CisrCSAgICBkYXJ3aW5fZmlsZXM9CisrCSAgICBmb3IgZGFyd2lu X2ZpbGUgaW4gJGRhcndpbl9maWxlbGlzdDsgZG8KKysJICAgICAgZGFyd2luX2ZpbGVzPWBmaW5k IHVuZmF0LSQkIC1uYW1lICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCAkTkwyU1BgCisrCSAgICAgICRM SVBPIC1jcmVhdGUgLW91dHB1dCAiJGRhcndpbl9maWxlIiAkZGFyd2luX2ZpbGVzCisrCSAgICBk b25lICMgJGRhcndpbl9maWxlbGlzdAorKwkgICAgJFJNIC1yZiB1bmZhdC0kJAorKwkgICAgY2Qg IiRkYXJ3aW5fb3JpZ19kaXIiCisrCSAgZWxzZQorKwkgICAgY2QgJGRhcndpbl9vcmlnX2Rpcgor KwkgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15X3hhYnMiCisrCSAg ZmkgIyAkZGFyd2luX2FyY2hlcworKwl9ICMgISRvcHRfZHJ5X3J1bgorKwk7OworKyAgICAgICop CisrICAgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIK KysJOzsKKysgICAgICBlc2FjCisrICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5k ICRteV94ZGlyIC1uYW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8 ICROTDJTUGAKKysgICAgZG9uZQorKworKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0 PSIkbXlfb2xkb2JqcyIKKyt9CisrCisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSBb YXJnPW5vXQorKyMKKysjIEVtaXQgdGhlIGZpcnN0IHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIg c2NyaXB0IG9uIHN0ZG91dC4KKysjIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2Ny aXB0aW9uIGFzc29jaWF0ZWQgd2l0aAorKyMgZnVuY19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCisr ZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgKCkKKyt7CisrCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQx X2FyZzE9bm8KKysJaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorKwkgIGZ1bmNfZW1pdF93cmFwcGVy X3BhcnQxX2FyZzE9JDEKKysJZmkKKysKKysJJEVDSE8gIlwKKysjISAkU0hFTEwKKysKKysjICRv dXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUK KysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJ T04KKysjCisrIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRl ZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKKysjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24g YXJlIGluc3RhbGxlZC4KKysjCisrIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBi ZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysjIElmIGl0IGlzLCBpdCB3aWxs IG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxw cyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFj dGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4K KytYc2VkPScke1NFRH0gLWUgMXMvXlgvLycKKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVf c3Vic3QnCisrCisrIyBCZSBCb3VybmUgY29tcGF0aWJsZQorK2lmIHRlc3QgLW4gXCJcJHtaU0hf VkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAg ZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3 b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0 byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICdcJHsxK1wi XCRAXCJ9Jz0nXCJcJEBcIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2Fz ZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNh YworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FT RT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBUaGUgSFAtVVgga3NoIGFu ZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlm IENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0 IENEUEFUSAorKworK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKysKKysjIFRo aXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCisr aWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCisr ICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKKysgIGdlbmVy YXRlZF9ieV9saWJ0b29sX3ZlcnNpb249JyRtYWNyb192ZXJzaW9uJworKyAgbm90aW5zdF9kZXBs aWJzPSckbm90aW5zdF9kZXBsaWJzJworK2Vsc2UKKysgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBp biBleGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4KKysgIGlm IHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysg ICAgRUNITz1cIiRxZWNob1wiCisrICAgIGZpbGU9XCJcJDBcIgorKyAgICAjIE1ha2Ugc3VyZSBl Y2hvIHdvcmtzLgorKyAgICBpZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCisr ICAgICAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICAg ICAgc2hpZnQKKysgICAgZWxpZiB0ZXN0IFwiWFxgeyBcJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVs bFxgXCIgPSAnWFx0JzsgdGhlbgorKyAgICAgICMgWWlwcGVlLCBcJEVDSE8gd29ya3MhCisrICAg ICAgOgorKyAgICBlbHNlCisrICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxs LCBhbmQgdGhlbiBtYXliZSBcJEVDSE8gd2lsbCB3b3JrLgorKyAgICAgIGV4ZWMgJFNIRUxMIFwi XCQwXCIgLS1uby1yZWV4ZWMgXCR7MStcIlwkQFwifQorKyAgICBmaQorKyAgZmlcCisrIgorKwkk RUNITyAiXAorKworKyAgIyBGaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZl cyBpbi4KKysgIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1te L10qJCUlJ1xgCisrICB0ZXN0IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rp cj0uCisrCisrICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJl YWwgdGhpc2Rpci4KKysgIGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8u Ki0+IC8vcCdcYAorKyAgd2hpbGUgdGVzdCAtbiBcIlwkZmlsZVwiOyBkbworKyAgICBkZXN0ZGly PVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJS9bXi9dKlwkJSUnXGAKKysKKysg ICAgIyBJZiB0aGVyZSB3YXMgYSBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGNoYW5nZSB0aGlz ZGlyLgorKyAgICBpZiB0ZXN0IFwieFwkZGVzdGRpclwiICE9IFwieFwkZmlsZVwiOyB0aGVuCisr ICAgICAgY2FzZSBcIlwkZGVzdGRpclwiIGluCisrICAgICAgW1xcXFwvXSogfCBbQS1aYS16XTpb XFxcXC9dKikgdGhpc2Rpcj1cIlwkZGVzdGRpclwiIDs7CisrICAgICAgKikgdGhpc2Rpcj1cIlwk dGhpc2Rpci9cJGRlc3RkaXJcIiA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysKKysgICAgZmls ZT1cYFwkRUNITyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyVeLiovJSUnXGAKKysgICAgZmls ZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdc YAorKyAgZG9uZQorKyIKKyt9CisrIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxCisrCisr IyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiBbYXJnPW5vXQorKyMKKysjIEVtaXQgdGhlIHNlY29u ZCBwYXJ0IG9mIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdCBvbiBzdGRvdXQuCisrIyBGb3IgbW9y ZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlvbiBhc3NvY2lhdGVkIHdpdGgKKysjIGZ1 bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgorK2Z1bmNfZW1pdF93cmFwcGVyX3BhcnQyICgpCisr eworKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPW5vCisrCWlmIHRlc3QgLW4gIiQxIiA7 IHRoZW4KKysJICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPSQxCisrCWZpCisrCisrCSRF Q0hPICJcCisrCisrICAjIFVzdWFsbHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVu IGVtYmVkZGVkIGludG8KKysgICMgdGhlIGN3cmFwcGVyLgorKyAgV1JBUFBFUl9TQ1JJUFRfQkVM T05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzEKKysgIGlmIHRlc3Qg XCJcJFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSXCIgPSBcInllc1wiOyB0aGVuCisr ICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKKysgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0g XCIuXCI7IHRoZW4KKysgICAgICB0aGlzZGlyPVxgcHdkXGAKKysgICAgZmkKKysgICAgIyByZW1v dmUgLmxpYnMgZnJvbSB0aGlzZGlyCisrICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgorKyAgICAq W1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hPIFwiWFwkdGhpc2RpclwiIHwgXCRYc2Vk IC1lICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsKKysgICAgJG9iamRpciApICAgdGhpc2Rp cj0uIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisrICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRl IGRpcmVjdG9yeSBuYW1lLgorKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAor KyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKysiCisrCisr CWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgJEVDSE8gIlwKKysgIHBy b2dyYW09bHQtJyRvdXRwdXRuYW1lJyRleGVleHQKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9i amRpclwiCisrCisrICBpZiB0ZXN0ICEgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgfHwKKysg ICAgIHsgZmlsZT1cYGxzIC0xZHQgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCJcJHByb2dkaXIv Li4vXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfCAke1NFRH0gMXFcYDsgXFwKKysgICAgICAgdGVz dCBcIlhcJGZpbGVcIiAhPSBcIlhcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH07IHRoZW4KKysKKysg ICAgZmlsZT1cIlwkXCQtXCRwcm9ncmFtXCIKKysKKysgICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9n ZGlyXCI7IHRoZW4KKysgICAgICAkTUtESVIgXCJcJHByb2dkaXJcIgorKyAgICBlbHNlCisrICAg ICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICAgIGZpIgorKworKwkgICRFQ0hPICJcCisr CisrICAgICMgcmVsaW5rIGV4ZWN1dGFibGUgaWYgbmVjZXNzYXJ5CisrICAgIGlmIHRlc3QgLW4g XCJcJHJlbGlua19jb21tYW5kXCI7IHRoZW4KKysgICAgICBpZiByZWxpbmtfY29tbWFuZF9vdXRw dXQ9XGBldmFsIFwkcmVsaW5rX2NvbW1hbmQgMj4mMVxgOyB0aGVuIDoKKysgICAgICBlbHNlCisr CSRFQ0hPIFwiXCRyZWxpbmtfY29tbWFuZF9vdXRwdXRcIiA+JjIKKysJJFJNIFwiXCRwcm9nZGly L1wkZmlsZVwiCisrCWV4aXQgMQorKyAgICAgIGZpCisrICAgIGZpCisrCisrICAgICRNViBcIlwk cHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8fAor KyAgICB7ICRSTSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsKKysgICAgICAkTVYgXCJcJHByb2dk aXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7IH0KKysgICAgJFJNIFwiXCRwcm9n ZGlyL1wkZmlsZVwiCisrICBmaSIKKysJZWxzZQorKwkgICRFQ0hPICJcCisrICBwcm9ncmFtPSck b3V0cHV0bmFtZScKKysgIHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrIgorKwlmaQor KworKwkkRUNITyAiXAorKworKyAgaWYgdGVzdCAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsg dGhlbiIKKysKKysJIyBFeHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2ZSBvbmUuCisr CWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4g IiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KKysJICAkRUNI TyAiXAorKyAgICAjIEFkZCBvdXIgb3duIGxpYnJhcnkgcGF0aCB0byAkc2hsaWJwYXRoX3Zhcgor KyAgICAkc2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJwYXRoX3ZhclwiCisrCisr ICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWluYXRlZCAkc2hs aWJwYXRoX3ZhcgorKyAgICAjIFRoZSBzZWNvbmQgY29sb24gaXMgYSB3b3JrYXJvdW5kIGZvciBh IGJ1ZyBpbiBCZU9TIFI0IHNlZAorKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNITyBcIlhcJCRz aGxpYnBhdGhfdmFyXCIgfCBcJFhzZWQgLWUgJ3MvOjoqXCQvLydcYAorKworKyAgICBleHBvcnQg JHNobGlicGF0aF92YXIKKysiCisrCWZpCisrCisrCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRo IGlmIHdlIG5lZWQgdG8uCisrCWlmIHRlc3QgLW4gIiRkbGxzZWFyY2hwYXRoIjsgdGhlbgorKwkg ICRFQ0hPICJcCisrICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0 aGUgZXhlY3V0YWJsZSBQQVRICisrICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6XCRQQVRICisrIgor KwlmaQorKworKwkkRUNITyAiXAorKyAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFn aWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCisrICAgICAgIyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFt IHdpdGggb3VyIGFyZ3VtZW50cy4KKysiCisrCWNhc2UgJGhvc3QgaW4KKysJIyBCYWNrc2xhc2hl cyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3aW5kb3dzCisrCSotKi1taW5ndyB8ICot Ki1vczIqIHwgKi1jZWdjYyopCisrCSAgJEVDSE8gIlwKKysgICAgICBleGVjIFwiXCRwcm9nZGly XFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKysiCisrCSAgOzsKKysKKysJKikKKysJICAk RUNITyAiXAorKyAgICAgIGV4ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwi fQorKyIKKysJICA7OworKwllc2FjCisrCSRFQ0hPICJcCisrICAgICAgXCRFQ0hPIFwiXCQwOiBj YW5ub3QgZXhlYyBcJHByb2dyYW0gXCQqXCIgMT4mMgorKyAgICAgIGV4aXQgMQorKyAgICBmaQor KyAgZWxzZQorKyAgICAjIFRoZSBwcm9ncmFtIGRvZXNuJ3QgZXhpc3QuCisrICAgIFwkRUNITyBc IlwkMDogZXJyb3I6IFxcXGBcJHByb2dkaXIvXCRwcm9ncmFtJyBkb2VzIG5vdCBleGlzdFwiIDE+ JjIKKysgICAgXCRFQ0hPIFwiVGhpcyBzY3JpcHQgaXMganVzdCBhIHdyYXBwZXIgZm9yIFwkcHJv Z3JhbS5cIiAxPiYyCisrICAgICRFQ0hPIFwiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9u IGZvciBtb3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKKysgICAgZXhpdCAxCisrICBmaQorK2ZpXAor KyIKKyt9CisrIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyCisrCisrCisrIyBmdW5jX2Vt aXRfd3JhcHBlciBbYXJnPW5vXQorKyMKKysjIEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0 IG9uIHN0ZG91dC4KKysjIERvbid0IGRpcmVjdGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5 IHdhbnQgdG8KKysjIGluY29ycG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3ln d2luL21pbmd3CisrIyB3cmFwcGVyIGV4ZWN1dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZy b20gd2l0aGluCisrIyBmdW5jX21vZGVfbGluayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1i ZXIgb2YgdmFyaWFibGVzCisrIyBzZXQgdGhlcmVpbi4KKysjCisrIyBBUkcgaXMgdGhlIHZhbHVl IHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JKRElSCisrIyB2YXJpYWJsZSB3 aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKKysjIHdpbGwgYXNz dW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBpdCBpcyBzdG9yZWQgaXMKKysjIHRoZSAk b2JqZGlyIGRpcmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKKysjIGJl aGF2aW9yLgorK2Z1bmNfZW1pdF93cmFwcGVyICgpCisreworKwlmdW5jX2VtaXRfd3JhcHBlcl9h cmcxPW5vCisrCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKysJICBmdW5jX2VtaXRfd3JhcHBlcl9h cmcxPSQxCisrCWZpCisrCisrCSMgc3BsaXQgdGhpcyB1cCBzbyB0aGF0IGZ1bmNfZW1pdF9jd3Jh cHBlcmV4ZV9zcmMKKysJIyBjYW4gY2FsbCBlYWNoIHBhcnQgaW5kZXBlbmRlbnRseS4KKysJZnVu Y19lbWl0X3dyYXBwZXJfcGFydDEgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCisrCWZ1bmNf ZW1pdF93cmFwcGVyX3BhcnQyICIke2Z1bmNfZW1pdF93cmFwcGVyX2FyZzF9IgorK30KKysKKysK KysjIGZ1bmNfdG9faG9zdF9wYXRoIGFyZworKyMKKysjIENvbnZlcnQgcGF0aHMgdG8gaG9zdCBm b3JtYXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMuCisrIyBJbnRlbmRlZCBmb3IgdXNlIHdp dGggIm5hdGl2ZSIgbWluZ3cgKHdoZXJlIGxpYnRvb2wgaXRzZWxmCisrIyBpcyBydW5uaW5nIHVu ZGVyIHRoZSBtc3lzIHNoZWxsKSwgb3IgaW4gdGhlIGZvbGxvd2luZyBjcm9zcy0KKysjIGJ1aWxk IGVudmlyb25tZW50czoKKysjICAgICRidWlsZCAgICAgICAgICAkaG9zdAorKyMgICAgbWluZ3cg KG1zeXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCisrIyAgICBjeWd3aW4gICAgICAgICAgbWlu Z3cKKysjICAgICpuaXggKyB3aW5lICAgICBtaW5ndworKyMgd2hlcmUgd2luZSBpcyBlcXVpcHBl ZCB3aXRoIHRoZSBgd2luZXBhdGgnIGV4ZWN1dGFibGUuCisrIyBJbiB0aGUgbmF0aXZlIG1pbmd3 IGNhc2UsIHRoZSAobXN5cykgc2hlbGwgYXV0b21hdGljYWxseQorKyMgY29udmVydHMgcGF0aHMg Zm9yIGFueSBub24tbXN5cyBhcHBsaWNhdGlvbnMgaXQgbGF1bmNoZXMsCisrIyBidXQgdGhhdCBm YWNpbGl0eSBpc24ndCBhdmFpbGFibGUgZnJvbSBpbnNpZGUgdGhlIGN3cmFwcGVyLgorKyMgU2lt aWxhciBhY2NvbW1vZGF0aW9ucyBhcmUgbmVjZXNzYXJ5IGZvciAkaG9zdCBtaW5ndyBhbmQKKysj ICRidWlsZCBjeWd3aW4uICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZG9lcyBubyBoYXJtIGZvciBv dGhlcgorKyMgJGhvc3QvJGJ1aWxkIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGFib3ZlLgorKyMK KysjIEFSRyBpcyB0aGUgcGF0aCAob24gJGJ1aWxkKSB0aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQg dG8KKysjIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24gZm9yICRob3N0LiBUaGUgcmVzdWx0IGlz IHN0b3JlZAorKyMgaW4gJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4KKytmdW5jX3RvX2hvc3Rf cGF0aCAoKQorK3sKKysgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisrICBpZiB0ZXN0 IC1uICIkMSIgOyB0aGVuCisrICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqbWluZ3cqICkKKysg ICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8Zztz fFxcfFxcXFx8ZycKKysgICAgICAgIGNhc2UgJGJ1aWxkIGluCisrICAgICAgICAgICptaW5ndyog KSAjIGFjdHVhbGx5LCBtc3lzCisrICAgICAgICAgICAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBz cGFjZXMgdG8gcmVzdWx0CisrICAgICAgICAgICAgbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNl cz0icy9bIF0qXCQvLyIKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWAoIGNt ZCAvL2MgZWNobyAiJDEiIHxcCisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlw X3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAorKyAgICAgICAgICAg IGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEi IHxcCisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJg CisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgKmN5Z3dpbiogKQorKyAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRoX3RtcDE9YGN5Z3BhdGggLXcgIiQxImAKKysgICAgICAgICAgICBmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAor KyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAg ICAgICAgICAgIDs7CisrICAgICAgICAgICogKQorKyAgICAgICAgICAgICMgVW5mb3J0dW5hdGVs eSwgd2luZXBhdGggZG9lcyBub3QgZXhpdCB3aXRoIGEgbm9uLXplcm8KKysgICAgICAgICAgICAj IGVycm9yIGNvZGUsIHNvIHdlIGFyZSBmb3JjZWQgdG8gY2hlY2sgdGhlIGNvbnRlbnRzIG9mCisr ICAgICAgICAgICAgIyBzdGRvdXQuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgY29tbWFuZCBp cyBub3QKKysgICAgICAgICAgICAjIGZvdW5kLCB0aGUgc2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBj b2RlIG9mIDEyNyBhbmQgcHJpbnQKKysgICAgICAgICAgICAjICphbiBlcnJvciBtZXNzYWdlKiB0 byBzdGRvdXQuIFNvIHdlIG11c3QgY2hlY2sgZm9yIGJvdGgKKysgICAgICAgICAgICAjIGVycm9y IGNvZGUgb2YgemVybyBBTkQgbm9uLWVtcHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMKKysgICAg ICAgICAgICAjIHRoZSBvZGQgY29uc3RydWN0aW9uOgorKyAgICAgICAgICAgIGZ1bmNfdG9faG9z dF9wYXRoX3RtcDE9YHdpbmVwYXRoIC13ICIkMSIgMj4vZGV2L251bGxgCisrICAgICAgICAgICAg aWYgdGVzdCAiJD8iIC1lcSAwICYmIHRlc3QgLW4gIiR7ZnVuY190b19ob3N0X3BhdGhfdG1wMX0i OyB0aGVuCisrICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRm dW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAorKyAgICAgICAgICAgICAgICAkU0VEIC1lICIkbHRf c2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAg ICAgIyBBbGxvdyB3YXJuaW5nIGJlbG93LgorKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3Bh dGhfcmVzdWx0PSIiCisrICAgICAgICAgICAgZmkKKysgICAgICAgICAgICA7OworKyAgICAgICAg ZXNhYworKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0 aGVuCisrICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBwYXRo IGNvcnJlc3BvbmRpbmcgdG8iCisrICAgICAgICAgIGZ1bmNfZXJyb3IgIiAgJyQxJyIKKysgICAg ICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVz IG1heSBub3Qgd29yay4iCisrICAgICAgICAgICMgRmFsbGJhY2s6CisrICAgICAgICAgIGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisrICAgICAgICBmaQorKyAgICAgICAgOzsKKysgICAg ZXNhYworKyAgZmkKKyt9CisrIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRoCisrCisrIyBmdW5jX3Rv X2hvc3RfcGF0aGxpc3QgYXJnCisrIworKyMgQ29udmVydCBwYXRobGlzdHMgdG8gaG9zdCBmb3Jt YXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMuCisrIyBTZWUgZnVuY190b19ob3N0X3BhdGgo KSwgYWJvdmUuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgdGhlCisrIyBmb2xsb3dpbmcgJGJ1aWxk LyRob3N0IGNvbWJpbmF0aW9ucyAoYnV0IGRvZXMgbm8gaGFybSBmb3IKKysjIGNvbWJpbmF0aW9u cyBub3QgbGlzdGVkIGhlcmUpOgorKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0CisrIyAgICBt aW5ndyAobXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2ZV0KKysjICAgIGN5Z3dpbiAgICAgICAg ICBtaW5ndworKyMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3CisrIworKyMgUGF0aCBzZXBhcmF0 b3JzIGFyZSBhbHNvIGNvbnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8KKysjICRob3N0IGZv cm1hdC4gSWYgQVJHIGJlZ2lucyBvciBlbmRzIHdpdGggYSBwYXRoIHNlcGFyYXRvcgorKyMgY2hh cmFjdGVyLCBpdCBpcyBwcmVzZXJ2ZWQgKGJ1dCBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KQor KyMgb24gb3V0cHV0LgorKyMKKysjIEFSRyBpcyBhIHBhdGhsaXN0IChvbiAkYnVpbGQpIHRoYXQg c2hvdWxkIGJlIGNvbnZlcnRlZCB0bworKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBvbiAk aG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKKysjIGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf cmVzdWx0LgorK2Z1bmNfdG9faG9zdF9wYXRobGlzdCAoKQorK3sKKysgIGZ1bmNfdG9faG9zdF9w YXRobGlzdF9yZXN1bHQ9IiQxIgorKyAgaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgorKyAgICBjYXNl ICRob3N0IGluCisrICAgICAgKm1pbmd3KiApCisrICAgICAgICBsdF9zZWRfbmFpdmVfYmFja3Ns YXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCisrICAgICAgICAjIFJl bW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXJzIGZyb20K KysgICAgICAgICMgQVJHLiBtc3lzIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlLCBjeWdw YXRoIHR1cm5zIHRoZW0KKysgICAgICAgICMgaW50byAnLjsnIGFuZCAnOy4nLCBhbmQgd2luZXBh dGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCisrICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxp c3RfdG1wMj0iJDEiCisrICAgICAgICAjIE9uY2Ugc2V0IGZvciB0aGlzIGNhbGwsIHRoaXMgdmFy aWFibGUgc2hvdWxkIG5vdCBiZQorKyAgICAgICAgIyByZWFzc2lnbmVkLiBJdCBpcyB1c2VkIGlu IHRoYSBmYWxsYmFjayBjYXNlLgorKyAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDE9 YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKysgICAgICAgICAgJFNFRCAt ZSAnc3xeOip8fCcgLWUgJ3N8OiokfHwnYAorKyAgICAgICAgY2FzZSAkYnVpbGQgaW4KKysgICAg ICAgICAgKm1pbmd3KiApICMgQWN0dWFsbHksIG1zeXMuCisrICAgICAgICAgICAgIyBBd2t3YXJk OiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0LgorKyAgICAgICAgICAgIGx0X3NlZF9zdHJp cF90cmFpbGluZ19zcGFjZXM9InMvWyBdKlwkLy8iCisrICAgICAgICAgICAgZnVuY190b19ob3N0 X3BhdGhsaXN0X3RtcDI9YCggY21kIC8vYyBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Rt cDEiIHxcCisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3Nw YWNlcyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAorKyAgICAgICAgICAgIGZ1bmNfdG9faG9z dF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwK KysgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKysg ICAgICAgICAgICA7OworKyAgICAgICAgICAqY3lnd2luKiApCisrICAgICAgICAgICAgZnVuY190 b19ob3N0X3BhdGhsaXN0X3RtcDI9YGN5Z3BhdGggLXcgLXAgIiRmdW5jX3RvX2hvc3RfcGF0aGxp c3RfdG1wMSJgCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNo byAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAorKyAgICAgICAgICAgICAgJFNFRCAt ZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAgICAg ICAgICogKQorKyAgICAgICAgICAgICMgdW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lc24ndCBj b252ZXJ0IHBhdGhsaXN0cworKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1 bHQ9IiIKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTPSRJRlMKKysg ICAgICAgICAgICBJRlM9OgorKyAgICAgICAgICAgIGZvciBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf ZiBpbiAkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEgOyBkbworKyAgICAgICAgICAgICAgSUZT PSRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTCisrICAgICAgICAgICAgICBpZiB0ZXN0IC1u ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2YiIDsgdGhlbgorKyAgICAgICAgICAgICAgICBmdW5j X3RvX2hvc3RfcGF0aCAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIgorKyAgICAgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRoZW4KKysgICAgICAg ICAgICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0 aGVuCisrICAgICAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIk ZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorKyAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAg ICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hv c3RfcGF0aGxpc3RfcmVzdWx0OyRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisrICAgICAgICAg ICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgICBJRlM9OgorKyAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICBJRlM9JGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNh YworKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiIDsg dGhlbgorKyAgICAgICAgICBmdW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBob3N0 IHBhdGgocykgY29ycmVzcG9uZGluZyB0byIKKysgICAgICAgICAgZnVuY19lcnJvciAiICAnJDEn IgorKyAgICAgICAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhl Y3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKKysgICAgICAgICAgIyBGYWxsYmFjay4gVGhpcyBtYXkg YnJlYWsgaWYgJDEgY29udGFpbnMgRE9TLXN0eWxlIGRyaXZlCisrICAgICAgICAgICMgc3BlY2lm aWNhdGlvbnMuIFRoZSBmaXggaXMgbm90IHRvIGNvbXBsaWNhdGUgdGhlIGV4cHJlc3Npb24KKysg ICAgICAgICAgIyBiZWxvdywgYnV0IGZvciB0aGUgdXNlciB0byBwcm92aWRlIGEgd29ya2luZyB3 aW5lIGluc3RhbGxhdGlvbgorKyAgICAgICAgICAjIHdpdGggd2luZXBhdGggc28gdGhhdCBwYXRo IHRyYW5zbGF0aW9uIGluIHRoZSBjcm9zcy10by1taW5ndworKyAgICAgICAgICAjIGNhc2Ugd29y a3MgcHJvcGVybHkuCisrICAgICAgICAgIGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zPSJz fDp8O3xnIgorKyAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIk ZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCisrICAgICAgICAgICAgJFNFRCAtZSAiJGx0 X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zImAKKysgICAgICAgIGZpCisrICAgICAgICAjIE5v dywgYWRkIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvcnMgYmFjaworKyAg ICAgICAgY2FzZSAiJDEiIGluCisrICAgICAgICAgIDoqICkgZnVuY190b19ob3N0X3BhdGhsaXN0 X3Jlc3VsdD0iOyRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IgorKyAgICAgICAgICAgIDs7 CisrICAgICAgICBlc2FjCisrICAgICAgICBjYXNlICIkMSIgaW4KKysgICAgICAgICAgKjogKSBm dW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3Vs dDsiCisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrICAgIGVz YWMKKysgIGZpCisrfQorKyMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aGxpc3QKKysKKysjIGZ1bmNf ZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKysjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdyYXBw ZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKKysjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRo aW4gZnVuY19tb2RlX2xpbmsgYmVjYXVzZQorKyMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2 YXJpYWJsZSBzZXQgdGhlcmVpbi4KKytmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCisrewor KwljYXQgPDxFT0YKKysKKysvKiAkY3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBl eGVjdXRhYmxlIGZvciAkb2JqZGlyLyRvdXRwdXRuYW1lCisrICAgR2VuZXJhdGVkIGJ5ICRQUk9H UkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKworKyAgIFRoZSAkb3V0cHV0 IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGlidG9v bAorKyAgIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysKKysg ICBUaGlzIHdyYXBwZXIgZXhlY3V0YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRo ZSBidWlsZCBkaXJlY3RvcnkuCisrICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29y cmVjdGx5LgorKworKyAgIEN1cnJlbnRseSwgaXQgc2ltcGx5IGV4ZWNzIHRoZSB3cmFwcGVyICpz Y3JpcHQqICIkU0hFTEwgJG91dHB1dCIsCisrICAgYnV0IGNvdWxkIGV2ZW50dWFsbHkgYWJzb3Ji IGFsbCBvZiB0aGUgc2NyaXB0cyBmdW5jdGlvbmFsaXR5IGFuZAorKyAgIGV4ZWMgJG9iamRpci8k b3V0cHV0bmFtZSBkaXJlY3RseS4KKysqLworK0VPRgorKwkgICAgY2F0IDw8IkVPRiIKKysjaW5j bHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2lmZGVmIF9NU0NfVkVSCisr IyBpbmNsdWRlIDxkaXJlY3QuaD4KKysjIGluY2x1ZGUgPHByb2Nlc3MuaD4KKysjIGluY2x1ZGUg PGlvLmg+CisrIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQorKyNlbHNlCisrIyBpbmNsdWRlIDx1 bmlzdGQuaD4KKysjIGluY2x1ZGUgPHN0ZGludC5oPgorKyMgaWZkZWYgX19DWUdXSU5fXworKyMg IGluY2x1ZGUgPGlvLmg+CisrIyAgZGVmaW5lIEhBVkVfU0VURU5WCisrIyAgaWZkZWYgX19TVFJJ Q1RfQU5TSV9fCisrY2hhciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKKytpbnQg cHV0ZW52IChjaGFyICopOworK2ludCBzZXRlbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq LCBpbnQpOworKyMgIGVuZGlmCisrIyBlbmRpZgorKyNlbmRpZgorKyNpbmNsdWRlIDxtYWxsb2Mu aD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRl IDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4KKysj aW5jbHVkZSA8ZmNudGwuaD4KKysjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysKKysjaWYgZGVmaW5l ZChQQVRIX01BWCkKKysjIGRlZmluZSBMVF9QQVRITUFYIFBBVEhfTUFYCisrI2VsaWYgZGVmaW5l ZChNQVhQQVRITEVOKQorKyMgZGVmaW5lIExUX1BBVEhNQVggTUFYUEFUSExFTgorKyNlbHNlCisr IyBkZWZpbmUgTFRfUEFUSE1BWCAxMDI0CisrI2VuZGlmCisrCisrI2lmbmRlZiBTX0lYT1RICisr IyBkZWZpbmUgU19JWE9USCAwCisrI2VuZGlmCisrI2lmbmRlZiBTX0lYR1JQCisrIyBkZWZpbmUg U19JWEdSUCAwCisrI2VuZGlmCisrCisrI2lmZGVmIF9NU0NfVkVSCisrIyBkZWZpbmUgU19JWFVT UiBfU19JRVhFQworKyMgZGVmaW5lIHN0YXQgX3N0YXQKKysjIGlmbmRlZiBfSU5UUFRSX1RfREVG SU5FRAorKyMgIGRlZmluZSBpbnRwdHJfdCBpbnQKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lm bmRlZiBESVJfU0VQQVJBVE9SCisrIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKKysjIGRlZmlu ZSBQQVRIX1NFUEFSQVRPUiAnOicKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1dJTjMyKSB8 fCBkZWZpbmVkIChfX01TRE9TX18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAorKyAgZGVm aW5lZCAoX19PUzJfXykKKysjIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQorKyMg ZGVmaW5lIEZPUEVOX1dCICJ3YiIKKysjIGlmbmRlZiBESVJfU0VQQVJBVE9SXzIKKysjICBkZWZp bmUgRElSX1NFUEFSQVRPUl8yICdcXCcKKysjIGVuZGlmCisrIyBpZm5kZWYgUEFUSF9TRVBBUkFU T1JfMgorKyMgIGRlZmluZSBQQVRIX1NFUEFSQVRPUl8yICc7JworKyMgZW5kaWYKKysjZW5kaWYK KysKKysjaWZuZGVmIERJUl9TRVBBUkFUT1JfMgorKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1Io Y2gpICgoY2gpID09IERJUl9TRVBBUkFUT1IpCisrI2Vsc2UgLyogRElSX1NFUEFSQVRPUl8yICov CisrIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgXAorKwkoKChjaCkgPT0gRElSX1NFUEFS QVRPUikgfHwgKChjaCkgPT0gRElSX1NFUEFSQVRPUl8yKSkKKysjZW5kaWYgLyogRElSX1NFUEFS QVRPUl8yICovCisrCisrI2lmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCisrIyBkZWZpbmUgSVNfUEFU SF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQQVJBVE9SKQorKyNlbHNlIC8qIFBBVEhf U0VQQVJBVE9SXzIgKi8KKysjIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0g UEFUSF9TRVBBUkFUT1JfMikKKysjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworKworKyNp ZmRlZiBfX0NZR1dJTl9fCisrIyBkZWZpbmUgRk9QRU5fV0IgIndiIgorKyNlbmRpZgorKworKyNp Zm5kZWYgRk9QRU5fV0IKKysjIGRlZmluZSBGT1BFTl9XQiAidyIKKysjZW5kaWYKKysjaWZuZGVm IF9PX0JJTkFSWQorKyMgZGVmaW5lIF9PX0JJTkFSWSAwCisrI2VuZGlmCisrCisrI2RlZmluZSBY TUFMTE9DKHR5cGUsIG51bSkgICAgICAoKHR5cGUgKikgeG1hbGxvYyAoKG51bSkgKiBzaXplb2Yo dHlwZSkpKQorKyNkZWZpbmUgWEZSRUUoc3RhbGUpIGRvIHsgXAorKyAgaWYgKHN0YWxlKSB7IGZy ZWUgKCh2b2lkICopIHN0YWxlKTsgc3RhbGUgPSAwOyB9IFwKKyt9IHdoaWxlICgwKQorKworKyN1 bmRlZiBMVFdSQVBQRVJfREVCVUdQUklOVEYKKysjaWYgZGVmaW5lZCBERUJVR1dSQVBQRVIKKysj IGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJncykgbHR3cmFwcGVyX2RlYnVncHJpbnRm IGFyZ3MKKytzdGF0aWMgdm9pZAorK2x0d3JhcHBlcl9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAq Zm10LCAuLi4pCisreworKyAgICB2YV9saXN0IGFyZ3M7CisrICAgIHZhX3N0YXJ0IChhcmdzLCBm bXQpOworKyAgICAodm9pZCkgdmZwcmludGYgKHN0ZGVyciwgZm10LCBhcmdzKTsKKysgICAgdmFf ZW5kIChhcmdzKTsKKyt9CisrI2Vsc2UKKysjIGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYo YXJncykKKysjZW5kaWYKKysKKytjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOworKwor K3ZvaWQgKnhtYWxsb2MgKHNpemVfdCBudW0pOworK2NoYXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIg KnN0cmluZyk7CisrY29uc3QgY2hhciAqYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsKKytj aGFyICpmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpOworK2NoYXIgKmNoYXNl X3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYyk7CisraW50IG1ha2VfZXhlY3V0YWJsZSAo Y29uc3QgY2hhciAqcGF0aCk7CisraW50IGNoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBh dGgpOworK2NoYXIgKnN0cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOworK3Zv aWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7Cisrdm9pZCBsdF9zZXRlbnYg KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKKytjaGFyICpsdF9leHRlbmRf c3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQp OworK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJnKTsKKyt2b2lk IGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChjb25zdCBjaGFyICphcmcpOworK3ZvaWQgbHRf b3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoY29uc3QgY2hhciAqYXJnKTsKKytpbnQgbHRfc3BsaXRf bmFtZV92YWx1ZSAoY29uc3QgY2hhciAqYXJnLCBjaGFyKiogbmFtZSwgY2hhcioqIHZhbHVlKTsK Kyt2b2lkIGx0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq dmFsdWUpOworK3ZvaWQgbHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25z dCBjaGFyICp2YWx1ZSk7CisrCisrc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQx ID0KKytFT0YKKysKKysJICAgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIHllcyB8CisrCSAgICAg ICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCisrCSAgICAgICAgICAgICAtZSAncy9e LyAgIi8nIC1lICdzLyQvXFxuIi8nCisrCSAgICBlY2hvICI7IgorKwkgICAgY2F0IDw8RU9GCisr Cisrc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQyID0KKytFT0YKKysJICAgIGZ1 bmNfZW1pdF93cmFwcGVyX3BhcnQyIHllcyB8CisrCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJd XCkvXFxcMS9nJyBcCisrCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8n CisrCSAgICBlY2hvICI7IgorKworKwkgICAgY2F0IDw8RU9GCisrY29uc3QgY2hhciAqIE1BR0lD X0VYRSA9ICIkbWFnaWNfZXhlIjsKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFSTkFNRSA9ICIk c2hsaWJwYXRoX3ZhciI7CisrRU9GCisrCisrCSAgICBpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoIiA9IHllcyAmJiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAt biAiJHRlbXBfcnBhdGgiOyB0aGVuCisrICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxp c3QgIiR0ZW1wX3JwYXRoIgorKwkgICAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogTElCX1BB VEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7CisrRU9GCisrCSAg ICBlbHNlCisrCSAgICAgIGNhdCA8PCJFT0YiCisrY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBTFVF ICAgPSAiIjsKKytFT0YKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNo cGF0aCI7IHRoZW4KKysgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdCAiJGRsbHNl YXJjaHBhdGg6IgorKwkgICAgICBjYXQgPDxFT0YKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFS TkFNRSA9ICJQQVRIIjsKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIkZnVuY190 b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8 PCJFT0YiCisrY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZBUk5BTUUgPSAiIjsKKytjb25zdCBjaGFy ICogRVhFX1BBVEhfVkFMVUUgICA9ICIiOworK0VPRgorKwkgICAgZmkKKysKKysJICAgIGlmIHRl c3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0 IGNoYXIgKiBUQVJHRVRfUFJPR1JBTV9OQU1FID0gImx0LSRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1 bGx5LCBubyAuZXhlICovCisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8PEVPRgorK2Nv bnN0IGNoYXIgKiBUQVJHRVRfUFJPR1JBTV9OQU1FID0gIiRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1 bGx5LCBubyAuZXhlICovCisrRU9GCisrCSAgICBmaQorKworKworKwkgICAgY2F0IDw8IkVPRiIK KysKKysjZGVmaW5lIExUV1JBUFBFUl9PUFRJT05fUFJFRklYICAgICAgICAgIi0tbHQtIgorKyNk ZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICA1CisrCisrc3RhdGljIGNvbnN0 IHNpemVfdCBvcHRfcHJlZml4X2xlbiAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhf TEVOR1RIOworK3N0YXRpYyBjb25zdCBjaGFyICpsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCA9IExU V1JBUFBFUl9PUFRJT05fUFJFRklYOworKworK3N0YXRpYyBjb25zdCBjaGFyICpkdW1wc2NyaXB0 X29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJkdW1wLXNjcmlwdCI7CisrCisr c3RhdGljIGNvbnN0IHNpemVfdCBlbnZfc2V0X29wdF9sZW4gICAgID0gTFRXUkFQUEVSX09QVElP Tl9QUkVGSVhfTEVOR1RIICsgNzsKKytzdGF0aWMgY29uc3QgY2hhciAqZW52X3NldF9vcHQgICAg ICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LXNldCI7CisrICAvKiBhcmd1bWVu dCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCB2YWx1ZSBvZiBmb28gaXMgc2V0IHRvIGJhciAq LworKworK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X3ByZXBlbmRfb3B0X2xlbiA9IExUV1JBUFBF Ul9PUFRJT05fUFJFRklYX0xFTkdUSCArIDExOworK3N0YXRpYyBjb25zdCBjaGFyICplbnZfcHJl cGVuZF9vcHQgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtcHJlcGVuZCI7Cisr ICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9v IGlzIGJhciR7Zm9vfSAqLworKworK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X2FwcGVuZF9vcHRf bGVuICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDEwOworK3N0YXRpYyBjb25z dCBjaGFyICplbnZfYXBwZW5kX29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJl bnYtYXBwZW5kIjsKKysgIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5l dyB2YWx1ZSBvZiBmb28gaXMgJHtmb299YmFyICovCisrCisraW50CisrbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKKyt7CisrICBjaGFyICoqbmV3YXJnejsKKysgIGludCAgbmV3YXJnYzsK KysgIGNoYXIgKnRtcF9wYXRoc3BlYzsKKysgIGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9wYXRoOwor KyAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX25hbWU7CisrICBjaGFyICp0YXJnZXRfbmFtZTsKKysg IGNoYXIgKmx0X2FyZ3ZfemVybzsKKysgIGludHB0cl90IHJ2YWwgPSAxMjc7CisrCisrICBpbnQg aTsKKysKKysgIHByb2dyYW1fbmFtZSA9IChjaGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJn dlswXSkpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBhcmd2WzBdICAgICAg OiAlc1xuIiwgYXJndlswXSkpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBw cm9ncmFtX25hbWUgOiAlc1xuIiwgcHJvZ3JhbV9uYW1lKSk7CisrCisrICAvKiB2ZXJ5IHNpbXBs ZSBhcmcgcGFyc2luZzsgZG9uJ3Qgd2FudCB0byByZWx5IG9uIGdldG9wdCAqLworKyAgZm9yIChp ID0gMTsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0s IGR1bXBzY3JpcHRfb3B0KSA9PSAwKQorKwl7CisrRU9GCisrCSAgICBjYXNlICIkaG9zdCIgaW4K KysJICAgICAgKm1pbmd3KiB8ICpjeWd3aW4qICkKKysJCSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4 IiBsaW5lIGVuZGluZ3MKKysJCWVjaG8gIiAgICAgICAgICBzZXRtb2RlKDEsX09fQklOQVJZKTsi CisrCQk7OworKwkgICAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKwkgIHByaW50ZiAo IiVzIiwgc2NyaXB0X3RleHRfcGFydDEpOworKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRf cGFydDIpOworKwkgIHJldHVybiAwOworKwl9CisrICAgIH0KKysKKysgIG5ld2FyZ3ogPSBYTUFM TE9DIChjaGFyICosIGFyZ2MgKyAxKTsKKysgIHRtcF9wYXRoc3BlYyA9IGZpbmRfZXhlY3V0YWJs ZSAoYXJndlswXSk7CisrICBpZiAodG1wX3BhdGhzcGVjID09IE5VTEwpCisrICAgIGx0X2ZhdGFs ICgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRG ICgoIihtYWluKSBmb3VuZCBleGUgKGJlZm9yZSBzeW1saW5rIGNoYXNlKSBhdCA6ICVzXG4iLAor KwkJCSAgdG1wX3BhdGhzcGVjKSk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNl X3N5bWxpbmtzICh0bXBfcGF0aHNwZWMpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIiht YWluKSBmb3VuZCBleGUgKGFmdGVyIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCisrCQkJICBh Y3R1YWxfY3dyYXBwZXJfcGF0aCkpOworKyAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CisrCisrICBh Y3R1YWxfY3dyYXBwZXJfbmFtZSA9IHhzdHJkdXAoIGJhc2VfbmFtZSAoYWN0dWFsX2N3cmFwcGVy X3BhdGgpKTsKKysgIHN0cmVuZHphcCAoYWN0dWFsX2N3cmFwcGVyX3BhdGgsIGFjdHVhbF9jd3Jh cHBlcl9uYW1lKTsKKysKKysgIC8qIHdyYXBwZXIgbmFtZSB0cmFuc2Zvcm1zICovCisrICBzdHJl bmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4ZSIpOworKyAgdG1wX3BhdGhzcGVjID0g bHRfZXh0ZW5kX3N0ciAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIiwgMSk7CisrICBYRlJF RSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKyAgYWN0dWFsX2N3cmFwcGVyX25hbWUgPSB0bXBf cGF0aHNwZWM7CisrICB0bXBfcGF0aHNwZWMgPSAwOworKworKyAgLyogdGFyZ2V0X25hbWUgdHJh bnNmb3JtcyAtLSB1c2UgYWN0dWFsIHRhcmdldCBwcm9ncmFtIG5hbWU7IG1pZ2h0IGhhdmUgbHQt IHByZWZpeCAqLworKyAgdGFyZ2V0X25hbWUgPSB4c3RyZHVwIChiYXNlX25hbWUgKFRBUkdFVF9Q Uk9HUkFNX05BTUUpKTsKKysgIHN0cmVuZHphcCAodGFyZ2V0X25hbWUsICIuZXhlIik7CisrICB0 bXBfcGF0aHNwZWMgPSBsdF9leHRlbmRfc3RyICh0YXJnZXRfbmFtZSwgIi5leGUiLCAxKTsKKysg IFhGUkVFICh0YXJnZXRfbmFtZSk7CisrICB0YXJnZXRfbmFtZSA9IHRtcF9wYXRoc3BlYzsKKysg IHRtcF9wYXRoc3BlYyA9IDA7CisrCisrICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4p IGxpYnRvb2wgdGFyZ2V0IG5hbWU6ICVzXG4iLAorKwkJCSAgdGFyZ2V0X25hbWUpKTsKKytFT0YK KysKKysJICAgIGNhdCA8PEVPRgorKyAgbmV3YXJnelswXSA9CisrICAgIFhNQUxMT0MgKGNoYXIs IChzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSArCisrCQkgICAgc3RybGVuICgiJG9iamRp ciIpICsgMSArIHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVyX25hbWUpICsgMSkpOworKyAgc3RyY3B5 IChuZXdhcmd6WzBdLCBhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CisrICBzdHJjYXQgKG5ld2FyZ3pb MF0sICIkb2JqZGlyIik7CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIvIik7CisrRU9GCisrCisr CSAgICBjYXQgPDwiRU9GIgorKyAgLyogc3RvcCBoZXJlLCBhbmQgY29weSBzbyB3ZSBkb24ndCBo YXZlIHRvIGRvIHRoaXMgdHdpY2UgKi8KKysgIHRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKG5ld2Fy Z3pbMF0pOworKworKyAgLyogZG8gTk9UIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSwgc28gdXNl IGFjdHVhbF9jd3JhcHBlcl9uYW1lICovCisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9j d3JhcHBlcl9uYW1lKTsKKysKKysgIC8qIERPIHdhbnQgdGhlIGx0LSBwcmVmaXggaGVyZSBpZiBp dCBleGlzdHMsIHNvIHVzZSB0YXJnZXRfbmFtZSAqLworKyAgbHRfYXJndl96ZXJvID0gbHRfZXh0 ZW5kX3N0ciAodG1wX3BhdGhzcGVjLCB0YXJnZXRfbmFtZSwgMSk7CisrICBYRlJFRSAodG1wX3Bh dGhzcGVjKTsKKysgIHRtcF9wYXRoc3BlYyA9IE5VTEw7CisrRU9GCisrCisrCSAgICBjYXNlICRo b3N0X29zIGluCisrCSAgICAgIG1pbmd3KikKKysJICAgIGNhdCA8PCJFT0YiCisrICB7CisrICAg IGNoYXIqIHA7CisrICAgIHdoaWxlICgocCA9IHN0cmNociAobmV3YXJnelswXSwgJ1xcJykpICE9 IE5VTEwpCisrICAgICAgeworKwkqcCA9ICcvJzsKKysgICAgICB9CisrICAgIHdoaWxlICgocCA9 IHN0cmNociAobHRfYXJndl96ZXJvLCAnXFwnKSkgIT0gTlVMTCkKKysgICAgICB7CisrCSpwID0g Jy8nOworKyAgICAgIH0KKysgIH0KKytFT0YKKysJICAgIDs7CisrCSAgICBlc2FjCisrCisrCSAg ICBjYXQgPDwiRU9GIgorKyAgWEZSRUUgKHRhcmdldF9uYW1lKTsKKysgIFhGUkVFIChhY3R1YWxf Y3dyYXBwZXJfcGF0aCk7CisrICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKworKyAg bHRfc2V0ZW52ICgiQklOX1NIIiwgInhwZzQiKTsgLyogZm9yIFRydTY0ICovCisrICBsdF9zZXRl bnYgKCJEVUFMQ0FTRSIsICIxIik7ICAvKiBmb3IgTVNLIHNoICovCisrICBsdF91cGRhdGVfbGli X3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKKysgIGx0X3VwZGF0ZV9l eGVfcGF0aCAoRVhFX1BBVEhfVkFSTkFNRSwgRVhFX1BBVEhfVkFMVUUpOworKworKyAgbmV3YXJn Yz0wOworKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAgICAgIGlmIChz dHJuY21wIChhcmd2W2ldLCBlbnZfc2V0X29wdCwgZW52X3NldF9vcHRfbGVuKSA9PSAwKQorKyAg ICAgICAgeworKyAgICAgICAgICBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICc9JykK KysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSAr IGVudl9zZXRfb3B0X2xlbiArIDE7CisrICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZf c2V0IChwKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52 X3NldF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKKysgICAgICAgICAgICB7Cisr ICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChhcmd2WysraV0pOyAvKiBkb24n dCBjb3B5ICovCisrICAgICAgICAgICAgfQorKyAgICAgICAgICBlbHNlCisrICAgICAgICAgICAg bHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X3NldF9vcHQpOwor KyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgICBpZiAoc3RybmNtcCAoYXJn dltpXSwgZW52X3ByZXBlbmRfb3B0LCBlbnZfcHJlcGVuZF9vcHRfbGVuKSA9PSAwKQorKyAgICAg ICAgeworKyAgICAgICAgICBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnPScp CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0g KyBlbnZfcHJlcGVuZF9vcHRfbGVuICsgMTsKKysgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNz X2Vudl9wcmVwZW5kIChwKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgIGVsc2UgaWYgKGFy Z3ZbaV1bZW52X3ByZXBlbmRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisrICAg ICAgICAgICAgeworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGFy Z3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KKysgICAgICAgICAgICB9CisrICAgICAgICAgIGVs c2UKKysgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQi LCBlbnZfcHJlcGVuZF9vcHQpOworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysg ICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X2FwcGVuZF9vcHQsIGVudl9hcHBlbmRfb3B0 X2xlbikgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X2FwcGVu ZF9vcHRfbGVuXSA9PSAnPScpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfYXBwZW5kX29wdF9sZW4gKyAxOworKyAgICAgICAgICAg ICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAocCk7CisrICAgICAgICAgICAgfQorKyAgICAg ICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9hcHBlbmRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsg MSA8IGFyZ2MpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3Nf ZW52X2FwcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLworKyAgICAgICAgICAgIH0K KysgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1 aXJlZCBhcmd1bWVudCIsIGVudl9hcHBlbmRfb3B0KTsKKysgICAgICAgICAgY29udGludWU7Cisr ICAgICAgICB9CisrICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25f cHJlZml4LCBvcHRfcHJlZml4X2xlbikgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAgICAgLyog aG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BS RUZJWAorKyAgICAgICAgICAgICBuYW1lc3BhY2UsIGJ1dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBv bmVzIHdlIGtub3cgYWJvdXQgYW5kCisrICAgICAgICAgICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3 aXRoLCBhYm92ZSAoaW5sdWRpbmcgZHVtcC1zY3JpcHQpLCB0aGVuCisrICAgICAgICAgICAgIHJl cG9ydCBhbiBlcnJvci4gT3RoZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUK KysgICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dlZCB0byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRX UkFQUEVSX09QVElPTl9QUkVGSVgKKysgICAgICAgICAgICAgbmFtZXNwYWNlLiBUaGUgZmlyc3Qg dGltZSBhbnkgdXNlciBjb21wbGFpbnMgYWJvdXQgdGhpcywgd2UnbGwKKysgICAgICAgICAgICAg bmVlZCB0byBtYWtlIExUV1JBUFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0 aW9uCisrICAgICAgICAgICAgIG9yIGEgY29uZmlndXJlLmFjLXNldHRhYmxlIHZhbHVlLgorKyAg ICAgICAgICAgKi8KKysgICAgICAgICAgbHRfZmF0YWwgKCJVbnJlY29nbml6ZWQgb3B0aW9uIGlu ICVzIG5hbWVzcGFjZTogJyVzJyIsCisrICAgICAgICAgICAgICAgICAgICBsdHdyYXBwZXJfb3B0 aW9uX3ByZWZpeCwgYXJndltpXSk7CisrICAgICAgICB9CisrICAgICAgLyogb3RoZXJ3aXNlIC4u LiAqLworKyAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IHhzdHJkdXAgKGFyZ3ZbaV0pOworKyAg ICB9CisrICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxMOworKworKyAgTFRXUkFQUEVSX0RFQlVH UFJJTlRGICAgICAoKCIobWFpbikgbHRfYXJndl96ZXJvIDogJXNcbiIsIChsdF9hcmd2X3plcm8g PyBsdF9hcmd2X3plcm8gOiAiPE5VTEw+IikpKTsKKysgIGZvciAoaSA9IDA7IGkgPCBuZXdhcmdj OyBpKyspCisrICAgIHsKKysgICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIG5l d2FyZ3pbJWRdICAgOiAlc1xuIiwgaSwgKG5ld2FyZ3pbaV0gPyBuZXdhcmd6W2ldIDogIjxOVUxM PiIpKSk7CisrICAgIH0KKysKKytFT0YKKysKKysJICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAg ICAgbWluZ3cqKQorKwkJY2F0IDw8IkVPRiIKKysgIC8qIGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkg d29yayBvbiBtaW5ndyBhcyBleHBlY3RlZCBvbiB1bml4ICovCisrICBydmFsID0gX3NwYXdudiAo X1BfV0FJVCwgbHRfYXJndl96ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0ICopIG5ld2FyZ3opOwor KyAgaWYgKHJ2YWwgPT0gLTEpCisrICAgIHsKKysgICAgICAvKiBmYWlsZWQgdG8gc3RhcnQgcHJv Y2VzcyAqLworKyAgICAgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZmFpbGVkIHRv IGxhdW5jaCB0YXJnZXQgXCIlc1wiOiBlcnJubyA9ICVkXG4iLCBsdF9hcmd2X3plcm8sIGVycm5v KSk7CisrICAgICAgcmV0dXJuIDEyNzsKKysgICAgfQorKyAgcmV0dXJuIHJ2YWw7CisrRU9GCisr CQk7OworKwkgICAgICAqKQorKwkJY2F0IDw8IkVPRiIKKysgIGV4ZWN2IChsdF9hcmd2X3plcm8s IG5ld2FyZ3opOworKyAgcmV0dXJuIHJ2YWw7IC8qID0xMjcsIGJ1dCBhdm9pZHMgdW51c2VkIHZh cmlhYmxlIHdhcm5pbmcgKi8KKytFT0YKKysJCTs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQg PDwiRU9GIgorK30KKysKKyt2b2lkICoKKyt4bWFsbG9jIChzaXplX3QgbnVtKQorK3sKKysgIHZv aWQgKnAgPSAodm9pZCAqKSBtYWxsb2MgKG51bSk7CisrICBpZiAoIXApCisrICAgIGx0X2ZhdGFs ICgiTWVtb3J5IGV4aGF1c3RlZCIpOworKworKyAgcmV0dXJuIHA7CisrfQorKworK2NoYXIgKgor K3hzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZykKKyt7CisrICByZXR1cm4gc3RyaW5nID8gc3Ry Y3B5ICgoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKHN0cmluZykgKyAxKSwKKysJCQkgIHN0cmlu ZykgOiBOVUxMOworK30KKysKKytjb25zdCBjaGFyICoKKytiYXNlX25hbWUgKGNvbnN0IGNoYXIg Km5hbWUpCisreworKyAgY29uc3QgY2hhciAqYmFzZTsKKysKKysjaWYgZGVmaW5lZCAoSEFWRV9E T1NfQkFTRURfRklMRV9TWVNURU0pCisrICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBN U0RPUyBwYXRobmFtZXMuICovCisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIG5hbWVb MF0pICYmIG5hbWVbMV0gPT0gJzonKQorKyAgICBuYW1lICs9IDI7CisrI2VuZGlmCisrCisrICBm b3IgKGJhc2UgPSBuYW1lOyAqbmFtZTsgbmFtZSsrKQorKyAgICBpZiAoSVNfRElSX1NFUEFSQVRP UiAoKm5hbWUpKQorKyAgICAgIGJhc2UgPSBuYW1lICsgMTsKKysgIHJldHVybiBiYXNlOworK30K KysKKytpbnQKKytjaGVja19leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQorK3sKKysgIHN0 cnVjdCBzdGF0IHN0OworKworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihjaGVja19leGVj dXRhYmxlKSAgOiAlc1xuIiwKKysJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIp IDogIk5VTEwhIikpOworKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisrICAgIHJldHVybiAw OworKworKyAgaWYgKChzdGF0IChwYXRoLCAmc3QpID49IDApCisrICAgICAgJiYgKHN0LnN0X21v ZGUgJiAoU19JWFVTUiB8IFNfSVhHUlAgfCBTX0lYT1RIKSkpCisrICAgIHJldHVybiAxOworKyAg ZWxzZQorKyAgICByZXR1cm4gMDsKKyt9CisrCisraW50CisrbWFrZV9leGVjdXRhYmxlIChjb25z dCBjaGFyICpwYXRoKQorK3sKKysgIGludCBydmFsID0gMDsKKysgIHN0cnVjdCBzdGF0IHN0Owor KworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWtlX2V4ZWN1dGFibGUpICAgOiAlc1xu IiwKKysJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOwor KyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKHN0 YXQgKHBhdGgsICZzdCkgPj0gMCkKKysgICAgeworKyAgICAgIHJ2YWwgPSBjaG1vZCAocGF0aCwg c3Quc3RfbW9kZSB8IFNfSVhPVEggfCBTX0lYR1JQIHwgU19JWFVTUik7CisrICAgIH0KKysgIHJl dHVybiBydmFsOworK30KKysKKysvKiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUg d3JhcHBlci4gIFJldHVybnMKKysgICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYg Zm91bmQsIE5VTEwgb3RoZXJ3aXNlCisrICAgRG9lcyBub3QgY2hhc2Ugc3ltbGlua3MsIGV2ZW4g b24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCB0aGVtLgorKyovCisrY2hhciAqCisrZmluZF9leGVj dXRhYmxlIChjb25zdCBjaGFyICp3cmFwcGVyKQorK3sKKysgIGludCBoYXNfc2xhc2ggPSAwOwor KyAgY29uc3QgY2hhciAqcDsKKysgIGNvbnN0IGNoYXIgKnBfbmV4dDsKKysgIC8qIHN0YXRpYyBi dWZmZXIgZm9yIGdldGN3ZCAqLworKyAgY2hhciB0bXBbTFRfUEFUSE1BWCArIDFdOworKyAgaW50 IHRtcF9sZW47CisrICBjaGFyICpjb25jYXRfbmFtZTsKKysKKysgIExUV1JBUFBFUl9ERUJVR1BS SU5URiAoKCIoZmluZF9leGVjdXRhYmxlKSAgIDogJXNcbiIsCisrCQkJICB3cmFwcGVyID8gKCp3 cmFwcGVyID8gd3JhcHBlciA6ICJFTVBUWSEiKSA6ICJOVUxMISIpKTsKKysKKysgIGlmICgod3Jh cHBlciA9PSBOVUxMKSB8fCAoKndyYXBwZXIgPT0gJ1wwJykpCisrICAgIHJldHVybiBOVUxMOwor KworKyAgLyogQWJzb2x1dGUgcGF0aD8gKi8KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURf RklMRV9TWVNURU0pCisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpIHdyYXBwZXJbMF0p ICYmIHdyYXBwZXJbMV0gPT0gJzonKQorKyAgICB7CisrICAgICAgY29uY2F0X25hbWUgPSB4c3Ry ZHVwICh3cmFwcGVyKTsKKysgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUp KQorKwlyZXR1cm4gY29uY2F0X25hbWU7CisrICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKysg ICAgfQorKyAgZWxzZQorKyAgICB7CisrI2VuZGlmCisrICAgICAgaWYgKElTX0RJUl9TRVBBUkFU T1IgKHdyYXBwZXJbMF0pKQorKwl7CisrCSAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVy KTsKKysJICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKwkgICAgcmV0dXJu IGNvbmNhdF9uYW1lOworKwkgIFhGUkVFIChjb25jYXRfbmFtZSk7CisrCX0KKysjaWYgZGVmaW5l ZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisrICAgIH0KKysjZW5kaWYKKysKKysgIGZv ciAocCA9IHdyYXBwZXI7ICpwOyBwKyspCisrICAgIGlmICgqcCA9PSAnLycpCisrICAgICAgewor KwloYXNfc2xhc2ggPSAxOworKwlicmVhazsKKysgICAgICB9CisrICBpZiAoIWhhc19zbGFzaCkK KysgICAgeworKyAgICAgIC8qIG5vIHNsYXNoZXM7IHNlYXJjaCBQQVRIICovCisrICAgICAgY29u c3QgY2hhciAqcGF0aCA9IGdldGVudiAoIlBBVEgiKTsKKysgICAgICBpZiAocGF0aCAhPSBOVUxM KQorKwl7CisrCSAgZm9yIChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCisrCSAgICB7CisrCSAg ICAgIGNvbnN0IGNoYXIgKnE7CisrCSAgICAgIHNpemVfdCBwX2xlbjsKKysJICAgICAgZm9yIChx ID0gcDsgKnE7IHErKykKKysJCWlmIChJU19QQVRIX1NFUEFSQVRPUiAoKnEpKQorKwkJICBicmVh azsKKysJICAgICAgcF9sZW4gPSBxIC0gcDsKKysJICAgICAgcF9uZXh0ID0gKCpxID09ICdcMCcg PyBxIDogcSArIDEpOworKwkgICAgICBpZiAocF9sZW4gPT0gMCkKKysJCXsKKysJCSAgLyogZW1w dHkgcGF0aDogY3VycmVudCBkaXJlY3RvcnkgKi8KKysJCSAgaWYgKGdldGN3ZCAodG1wLCBMVF9Q QVRITUFYKSA9PSBOVUxMKQorKwkJICAgIGx0X2ZhdGFsICgiZ2V0Y3dkIGZhaWxlZCIpOworKwkJ ICB0bXBfbGVuID0gc3RybGVuICh0bXApOworKwkJICBjb25jYXRfbmFtZSA9CisrCQkgICAgWE1B TExPQyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisrCQkgIG1l bWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisrCQkgIGNvbmNhdF9uYW1lW3RtcF9s ZW5dID0gJy8nOworKwkJICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBw ZXIpOworKwkJfQorKwkgICAgICBlbHNlCisrCQl7CisrCQkgIGNvbmNhdF9uYW1lID0KKysJCSAg ICBYTUFMTE9DIChjaGFyLCBwX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CisrCQkg IG1lbWNweSAoY29uY2F0X25hbWUsIHAsIHBfbGVuKTsKKysJCSAgY29uY2F0X25hbWVbcF9sZW5d ID0gJy8nOworKwkJICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgcF9sZW4gKyAxLCB3cmFwcGVyKTsK KysJCX0KKysJICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUgKGNvbmNhdF9uYW1lKSkKKysJCXJl dHVybiBjb25jYXRfbmFtZTsKKysJICAgICAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKKysJICAgIH0K KysJfQorKyAgICAgIC8qIG5vdCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUgY3VyZGlyICovCisrICAg IH0KKysgIC8qIFJlbGF0aXZlIHBhdGggfCBub3QgZm91bmQgaW4gcGF0aDogcHJlcGVuZCBjd2Qg Ki8KKysgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVMTCkKKysgICAgbHRfZmF0 YWwgKCJnZXRjd2QgZmFpbGVkIik7CisrICB0bXBfbGVuID0gc3RybGVuICh0bXApOworKyAgY29u Y2F0X25hbWUgPSBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikg KyAxKTsKKysgIG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7CisrICBjb25jYXRf bmFtZVt0bXBfbGVuXSA9ICcvJzsKKysgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsg MSwgd3JhcHBlcik7CisrCisrICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQor KyAgICByZXR1cm4gY29uY2F0X25hbWU7CisrICBYRlJFRSAoY29uY2F0X25hbWUpOworKyAgcmV0 dXJuIE5VTEw7CisrfQorKworK2NoYXIgKgorK2NoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpw YXRoc3BlYykKKyt7CisrI2lmbmRlZiBTX0lTTE5LCisrICByZXR1cm4geHN0cmR1cCAocGF0aHNw ZWMpOworKyNlbHNlCisrICBjaGFyIGJ1ZltMVF9QQVRITUFYXTsKKysgIHN0cnVjdCBzdGF0IHM7 CisrICBjaGFyICp0bXBfcGF0aHNwZWMgPSB4c3RyZHVwIChwYXRoc3BlYyk7CisrICBjaGFyICpw OworKyAgaW50IGhhc19zeW1saW5rcyA9IDA7CisrICB3aGlsZSAoc3RybGVuICh0bXBfcGF0aHNw ZWMpICYmICFoYXNfc3ltbGlua3MpCisrICAgIHsKKysgICAgICBMVFdSQVBQRVJfREVCVUdQUklO VEYgKCgiY2hlY2tpbmcgcGF0aCBjb21wb25lbnQgZm9yIHN5bWxpbmtzOiAlc1xuIiwKKysJCQkg ICAgICB0bXBfcGF0aHNwZWMpKTsKKysgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMp ID09IDApCisrCXsKKysJICBpZiAoU19JU0xOSyAocy5zdF9tb2RlKSAhPSAwKQorKwkgICAgewor KwkgICAgICBoYXNfc3ltbGlua3MgPSAxOworKwkgICAgICBicmVhazsKKysJICAgIH0KKysKKysJ ICAvKiBzZWFyY2ggYmFja3dhcmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KKysJICBwID0g dG1wX3BhdGhzcGVjICsgc3RybGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKKysJICB3aGlsZSAoKHAg PiB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKKysJICAgIHAtLTsK KysJICBpZiAoKHAgPT0gdG1wX3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkp CisrCSAgICB7CisrCSAgICAgIC8qIG5vIG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLworKwkg ICAgICBicmVhazsKKysJICAgIH0KKysJICAqcCA9ICdcMCc7CisrCX0KKysgICAgICBlbHNlCisr CXsKKysJICBjaGFyICplcnJzdHIgPSBzdHJlcnJvciAoZXJybm8pOworKwkgIGx0X2ZhdGFsICgi RXJyb3IgYWNjZXNzaW5nIGZpbGUgJXMgKCVzKSIsIHRtcF9wYXRoc3BlYywgZXJyc3RyKTsKKysJ fQorKyAgICB9CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysKKysgIGlmICghaGFzX3N5bWxp bmtzKQorKyAgICB7CisrICAgICAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKKysgICAgfQor KworKyAgdG1wX3BhdGhzcGVjID0gcmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOworKyAgaWYgKHRt cF9wYXRoc3BlYyA9PSAwKQorKyAgICB7CisrICAgICAgbHRfZmF0YWwgKCJDb3VsZCBub3QgZm9s bG93IHN5bWxpbmtzIGZvciAlcyIsIHBhdGhzcGVjKTsKKysgICAgfQorKyAgcmV0dXJuIHhzdHJk dXAgKHRtcF9wYXRoc3BlYyk7CisrI2VuZGlmCisrfQorKworK2NoYXIgKgorK3N0cmVuZHphcCAo Y2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpCisreworKyAgc2l6ZV90IGxlbiwgcGF0bGVuOwor KworKyAgYXNzZXJ0IChzdHIgIT0gTlVMTCk7CisrICBhc3NlcnQgKHBhdCAhPSBOVUxMKTsKKysK KysgIGxlbiA9IHN0cmxlbiAoc3RyKTsKKysgIHBhdGxlbiA9IHN0cmxlbiAocGF0KTsKKysKKysg IGlmIChwYXRsZW4gPD0gbGVuKQorKyAgICB7CisrICAgICAgc3RyICs9IGxlbiAtIHBhdGxlbjsK KysgICAgICBpZiAoc3RyY21wIChzdHIsIHBhdCkgPT0gMCkKKysJKnN0ciA9ICdcMCc7CisrICAg IH0KKysgIHJldHVybiBzdHI7CisrfQorKworK3N0YXRpYyB2b2lkCisrbHRfZXJyb3JfY29yZSAo aW50IGV4aXRfc3RhdHVzLCBjb25zdCBjaGFyICptb2RlLAorKwkgICAgICAgY29uc3QgY2hhciAq bWVzc2FnZSwgdmFfbGlzdCBhcCkKKyt7CisrICBmcHJpbnRmIChzdGRlcnIsICIlczogJXM6ICIs IHByb2dyYW1fbmFtZSwgbW9kZSk7CisrICB2ZnByaW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7 CisrICBmcHJpbnRmIChzdGRlcnIsICIuXG4iKTsKKysKKysgIGlmIChleGl0X3N0YXR1cyA+PSAw KQorKyAgICBleGl0IChleGl0X3N0YXR1cyk7CisrfQorKworK3ZvaWQKKytsdF9mYXRhbCAoY29u c3QgY2hhciAqbWVzc2FnZSwgLi4uKQorK3sKKysgIHZhX2xpc3QgYXA7CisrICB2YV9zdGFydCAo YXAsIG1lc3NhZ2UpOworKyAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBt ZXNzYWdlLCBhcCk7CisrICB2YV9lbmQgKGFwKTsKKyt9CisrCisrdm9pZAorK2x0X3NldGVudiAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgTFRXUkFQUEVSX0RF QlVHUFJJTlRGICgoIihsdF9zZXRlbnYpIHNldHRpbmcgJyVzJyB0byAnJXMnXG4iLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKKysgIHsKKysj aWZkZWYgSEFWRV9TRVRFTlYKKysgICAgLyogYWx3YXlzIG1ha2UgYSBjb3B5LCBmb3IgY29uc2lz dGVuY3kgd2l0aCAhSEFWRV9TRVRFTlYgKi8KKysgICAgY2hhciAqc3RyID0geHN0cmR1cCAodmFs dWUpOworKyAgICBzZXRlbnYgKG5hbWUsIHN0ciwgMSk7CisrI2Vsc2UKKysgICAgaW50IGxlbiA9 IHN0cmxlbiAobmFtZSkgKyAxICsgc3RybGVuICh2YWx1ZSkgKyAxOworKyAgICBjaGFyICpzdHIg PSBYTUFMTE9DIChjaGFyLCBsZW4pOworKyAgICBzcHJpbnRmIChzdHIsICIlcz0lcyIsIG5hbWUs IHZhbHVlKTsKKysgICAgaWYgKHB1dGVudiAoc3RyKSAhPSBFWElUX1NVQ0NFU1MpCisrICAgICAg eworKyAgICAgICAgWEZSRUUgKHN0cik7CisrICAgICAgfQorKyNlbmRpZgorKyAgfQorK30KKysK KytjaGFyICoKKytsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25zdCBj aGFyICphZGQsIGludCB0b19lbmQpCisreworKyAgY2hhciAqbmV3X3ZhbHVlOworKyAgaWYgKG9y aWdfdmFsdWUgJiYgKm9yaWdfdmFsdWUpCisrICAgIHsKKysgICAgICBpbnQgb3JpZ192YWx1ZV9s ZW4gPSBzdHJsZW4gKG9yaWdfdmFsdWUpOworKyAgICAgIGludCBhZGRfbGVuID0gc3RybGVuIChh ZGQpOworKyAgICAgIG5ld192YWx1ZSA9IFhNQUxMT0MgKGNoYXIsIGFkZF9sZW4gKyBvcmlnX3Zh bHVlX2xlbiArIDEpOworKyAgICAgIGlmICh0b19lbmQpCisrICAgICAgICB7CisrICAgICAgICAg IHN0cmNweSAobmV3X3ZhbHVlLCBvcmlnX3ZhbHVlKTsKKysgICAgICAgICAgc3RyY3B5IChuZXdf dmFsdWUgKyBvcmlnX3ZhbHVlX2xlbiwgYWRkKTsKKysgICAgICAgIH0KKysgICAgICBlbHNlCisr ICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlLCBhZGQpOworKyAgICAgICAg ICBzdHJjcHkgKG5ld192YWx1ZSArIGFkZF9sZW4sIG9yaWdfdmFsdWUpOworKyAgICAgICAgfQor KyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBuZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQp OworKyAgICB9CisrICByZXR1cm4gbmV3X3ZhbHVlOworK30KKysKKytpbnQKKytsdF9zcGxpdF9u YW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpCisr eworKyAgY29uc3QgY2hhciAqcDsKKysgIGludCBsZW47CisrICBpZiAoIWFyZyB8fCAhKmFyZykK KysgICAgcmV0dXJuIDE7CisrCisrICBwID0gc3RyY2hyIChhcmcsIChpbnQpJz0nKTsKKysKKysg IGlmICghcCkKKysgICAgcmV0dXJuIDE7CisrCisrICAqdmFsdWUgPSB4c3RyZHVwICgrK3ApOwor KworKyAgbGVuID0gc3RybGVuIChhcmcpIC0gc3RybGVuICgqdmFsdWUpOworKyAgKm5hbWUgPSBY TUFMTE9DIChjaGFyLCBsZW4pOworKyAgc3RybmNweSAoKm5hbWUsIGFyZywgbGVuLTEpOworKyAg KCpuYW1lKVtsZW4gLSAxXSA9ICdcMCc7CisrCisrICByZXR1cm4gMDsKKyt9CisrCisrdm9pZAor K2x0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFyZykKKyt7CisrICBjaGFyICpu YW1lID0gTlVMTDsKKysgIGNoYXIgKnZhbHVlID0gTlVMTDsKKysKKysgIGlmIChsdF9zcGxpdF9u YW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCisrICAgIHsKKysgICAgICBYRlJF RSAobmFtZSk7CisrICAgICAgWEZSRUUgKHZhbHVlKTsKKysgICAgICBsdF9mYXRhbCAoImJhZCBh cmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfc2V0X29wdCwgYXJnKTsKKysgICAgfQorKworKyAg bHRfc2V0ZW52IChuYW1lLCB2YWx1ZSk7CisrICBYRlJFRSAobmFtZSk7CisrICBYRlJFRSAodmFs dWUpOworK30KKysKKyt2b2lkCisrbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNo YXIgKmFyZykKKyt7CisrICBjaGFyICpuYW1lID0gTlVMTDsKKysgIGNoYXIgKnZhbHVlID0gTlVM TDsKKysgIGNoYXIgKm5ld192YWx1ZSA9IE5VTEw7CisrCisrICBpZiAobHRfc3BsaXRfbmFtZV92 YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQorKyAgICB7CisrICAgICAgWEZSRUUgKG5h bWUpOworKyAgICAgIFhGUkVFICh2YWx1ZSk7CisrICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1l bnQgZm9yICVzOiAnJXMnIiwgZW52X3ByZXBlbmRfb3B0LCBhcmcpOworKyAgICB9CisrCisrICBu ZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7CisrICBs dF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICBYRlJFRSAobmV3X3ZhbHVlKTsKKysgIFhG UkVFIChuYW1lKTsKKysgIFhGUkVFICh2YWx1ZSk7CisrfQorKworK3ZvaWQKKytsdF9vcHRfcHJv Y2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcpCisreworKyAgY2hhciAqbmFtZSA9IE5V TEw7CisrICBjaGFyICp2YWx1ZSA9IE5VTEw7CisrICBjaGFyICpuZXdfdmFsdWUgPSBOVUxMOwor KworKyAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkK KysgICAgeworKyAgICAgIFhGUkVFIChuYW1lKTsKKysgICAgICBYRlJFRSAodmFsdWUpOworKyAg ICAgIGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAlczogJyVzJyIsIGVudl9hcHBlbmRfb3B0 LCBhcmcpOworKyAgICB9CisrCisrICBuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYg KG5hbWUpLCB2YWx1ZSwgMSk7CisrICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICBY RlJFRSAobmV3X3ZhbHVlKTsKKysgIFhGUkVFIChuYW1lKTsKKysgIFhGUkVFICh2YWx1ZSk7Cisr fQorKworK3ZvaWQKKytsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKnZhbHVlKQorK3sKKysgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfdXBkYXRl X2V4ZV9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworKworKyAgaWYg KG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUgJiYgKnZhbHVlKQorKyAgICB7CisrICAgICAgY2hhciAq bmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52IChuYW1lKSwgdmFsdWUsIDApOworKyAg ICAgIC8qIHNvbWUgc3lzdGVtcyBjYW4ndCBjb3BlIHdpdGggYSAnOictdGVybWluYXRlZCBwYXRo ICMnICovCisrICAgICAgaW50IGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKTsKKysgICAgICB3aGls ZSAoKChsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSkpID4gMCkgJiYgSVNfUEFUSF9TRVBBUkFUT1Ig KG5ld192YWx1ZVtsZW4tMV0pKQorKyAgICAgICAgeworKyAgICAgICAgICBuZXdfdmFsdWVbbGVu LTFdID0gJ1wwJzsKKysgICAgICAgIH0KKysgICAgICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1 ZSk7CisrICAgICAgWEZSRUUgKG5ld192YWx1ZSk7CisrICAgIH0KKyt9CisrCisrdm9pZAorK2x0 X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCisr eworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlm eWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7CisrCisrICBpZiAobmFtZSAmJiAqbmFtZSAm JiB2YWx1ZSAmJiAqdmFsdWUpCisrICAgIHsKKysgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9l eHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7CisrICAgICAgbHRfc2V0ZW52IChu YW1lLCBuZXdfdmFsdWUpOworKyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOworKyAgICB9CisrfQor KworKworK0VPRgorK30KKysjIGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYworKworKyMg ZnVuY19tb2RlX2xpbmsgYXJnLi4uCisrZnVuY19tb2RlX2xpbmsgKCkKKyt7CisrICAgICRvcHRf ZGVidWcKKysgICAgY2FzZSAkaG9zdCBpbgorKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyog fCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQorKyAgICAgICMgSXQgaXMgaW1wb3Nz aWJsZSB0byBsaW5rIGEgZGxsIHdpdGhvdXQgdGhpcyBzZXR0aW5nLCBhbmQKKysgICAgICAjIHdl IHNob3VsZG4ndCBmb3JjZSB0aGUgbWFrZWZpbGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0Cisr ICAgICAgIyB3aGljaCBzeXN0ZW0gd2UgYXJlIGNvbXBpbGluZyBmb3IgaW4gb3JkZXIgdG8gcGFz cyBhbiBleHRyYQorKyAgICAgICMgZmxhZyBmb3IgZXZlcnkgbGlidG9vbCBpbnZvY2F0aW9uLgor KyAgICAgICMgYWxsb3dfdW5kZWZpbmVkPW5vCisrCisrICAgICAgIyBGSVhNRTogVW5mb3J0dW5h dGVseSwgdGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIGFib3ZlIHdoZW4gdHJ5aW5nCisrICAg ICAgIyB0byBtYWtlIGEgZGxsIHdoaWNoIGhhcyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2gg Y2FzZSBub3QKKysgICAgICAjIGV2ZW4gYSBzdGF0aWMgbGlicmFyeSBpcyBidWlsdC4gIEZvciBu b3csIHdlIG5lZWQgdG8gc3BlY2lmeQorKyAgICAgICMgLW5vLXVuZGVmaW5lZCBvbiB0aGUgbGli dG9vbCBsaW5rIGxpbmUgd2hlbiB3ZSBjYW4gYmUgY2VydGFpbgorKyAgICAgICMgdGhhdCBhbGwg c3ltYm9scyBhcmUgc2F0aXNmaWVkLCBvdGhlcndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnku CisrICAgICAgYWxsb3dfdW5kZWZpbmVkPXllcworKyAgICAgIDs7CisrICAgICopCisrICAgICAg YWxsb3dfdW5kZWZpbmVkPXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgbGlidG9vbF9h cmdzPSRub25vcHQKKysgICAgYmFzZV9jb21waWxlPSIkbm9ub3B0ICRAIgorKyAgICBjb21waWxl X2NvbW1hbmQ9JG5vbm9wdAorKyAgICBmaW5hbGl6ZV9jb21tYW5kPSRub25vcHQKKysKKysgICAg Y29tcGlsZV9ycGF0aD0KKysgICAgZmluYWxpemVfcnBhdGg9CisrICAgIGNvbXBpbGVfc2hsaWJw YXRoPQorKyAgICBmaW5hbGl6ZV9zaGxpYnBhdGg9CisrICAgIGNvbnZlbmllbmNlPQorKyAgICBv bGRfY29udmVuaWVuY2U9CisrICAgIGRlcGxpYnM9CisrICAgIG9sZF9kZXBsaWJzPQorKyAgICBj b21waWxlcl9mbGFncz0KKysgICAgbGlua2VyX2ZsYWdzPQorKyAgICBkbGxzZWFyY2hwYXRoPQor KyAgICBsaWJfc2VhcmNoX3BhdGg9YHB3ZGAKKysgICAgaW5zdF9wcmVmaXhfZGlyPQorKyAgICBu ZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0KKysKKysgICAgYXZvaWRfdmVyc2lvbj1ubworKyAg ICBkbGZpbGVzPQorKyAgICBkbHByZWZpbGVzPQorKyAgICBkbHNlbGY9bm8KKysgICAgZXhwb3J0 X2R5bmFtaWM9bm8KKysgICAgZXhwb3J0X3N5bWJvbHM9CisrICAgIGV4cG9ydF9zeW1ib2xzX3Jl Z2V4PQorKyAgICBnZW5lcmF0ZWQ9CisrICAgIGxpYm9ianM9CisrICAgIGx0bGlicz0KKysgICAg bW9kdWxlPW5vCisrICAgIG5vX2luc3RhbGw9bm8KKysgICAgb2Jqcz0KKysgICAgbm9uX3BpY19v YmplY3RzPQorKyAgICBwcmVjaW91c19maWxlc19yZWdleD0KKysgICAgcHJlZmVyX3N0YXRpY19s aWJzPW5vCisrICAgIHByZWxvYWQ9bm8KKysgICAgcHJldj0KKysgICAgcHJldmFyZz0KKysgICAg cmVsZWFzZT0KKysgICAgcnBhdGg9CisrICAgIHhycGF0aD0KKysgICAgcGVybV9ycGF0aD0KKysg ICAgdGVtcF9ycGF0aD0KKysgICAgdGhyZWFkX3NhZmU9bm8KKysgICAgdmluZm89CisrICAgIHZp bmZvX251bWJlcj1ubworKyAgICB3ZWFrX2xpYnM9CisrICAgIHNpbmdsZV9tb2R1bGU9IiR7d2x9 LXNpbmdsZV9tb2R1bGUiCisrICAgIGZ1bmNfaW5mZXJfdGFnICRiYXNlX2NvbXBpbGUKKysKKysg ICAgIyBXZSBuZWVkIHRvIGtub3cgLXN0YXRpYywgdG8gZ2V0IHRoZSByaWdodCBvdXRwdXQgZmls ZW5hbWVzLgorKyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAg ICAgLXNoYXJlZCkKKysJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzICYmIFwKKysJ ICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gImNhbiBub3QgYnVpbGQgYSBzaGFyZWQgbGlicmFy eSIKKysJYnVpbGRfb2xkX2xpYnM9bm8KKysJYnJlYWsKKysJOzsKKysgICAgICAtYWxsLXN0YXRp YyB8IC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKKysJY2FzZSAkYXJnIGluCisrCS1h bGwtc3RhdGljKQorKwkgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRl c3QgLXogIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJjb21w bGV0ZSBzdGF0aWMgbGlua2luZyBpcyBpbXBvc3NpYmxlIGluIHRoaXMgY29uZmlndXJhdGlvbiIK KysJICBmaQorKwkgIGlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAg ZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJlZmVyX3N0YXRp Y19saWJzPXllcworKwkgIDs7CisrCS1zdGF0aWMpCisrCSAgaWYgdGVzdCAteiAiJHBpY19mbGFn IiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGRsb3Blbl9zZWxm PSRkbG9wZW5fc2VsZl9zdGF0aWMKKysJICBmaQorKwkgIHByZWZlcl9zdGF0aWNfbGlicz1idWls dAorKwkgIDs7CisrCS1zdGF0aWMtbGlidG9vbC1saWJzKQorKwkgIGlmIHRlc3QgLXogIiRwaWNf ZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgICBkbG9wZW5f c2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJfc3RhdGljX2xpYnM9 eWVzCisrCSAgOzsKKysJZXNhYworKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xk X2xpYnM9eWVzCisrCWJyZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAg ICMgU2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4K KysgICAgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9s aWJzPXllcworKworKyAgICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5n IHRoZW0gb24gdGhlIHdheS4KKysgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworKyAgICAg IGFyZz0iJDEiCisrICAgICAgc2hpZnQKKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJn IgorKyAgICAgIHFhcmc9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0CisrICAg ICAgZnVuY19hcHBlbmQgbGlidG9vbF9hcmdzICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0 IgorKworKyAgICAgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwg YXNzaWduIGl0LgorKyAgICAgIGlmIHRlc3QgLW4gIiRwcmV2IjsgdGhlbgorKwljYXNlICRwcmV2 IGluCisrCW91dHB1dCkKKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiBAT1VUUFVU QCIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgQE9VVFBVVEAiCisrCSAgOzsK KysJZXNhYworKworKwljYXNlICRwcmV2IGluCisrCWRsZmlsZXN8ZGxwcmVmaWxlcykKKysJICBp ZiB0ZXN0ICIkcHJlbG9hZCIgPSBubzsgdGhlbgorKwkgICAgIyBBZGQgdGhlIHN5bWJvbCBvYmpl Y3QgaW50byB0aGUgbGlua2luZyBjb21tYW5kcy4KKysJICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVf Y29tbWFuZCAiIEBTWU1GSUxFQCIKKysJICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQg IiBAU1lNRklMRUAiCisrCSAgICBwcmVsb2FkPXllcworKwkgIGZpCisrCSAgY2FzZSAkYXJnIGlu CisrCSAgKi5sYSB8ICoubG8pIDs7ICAjIFdlIGhhbmRsZSB0aGVzZSBjYXNlcyBiZWxvdy4KKysJ ICBmb3JjZSkKKysJICAgIGlmIHRlc3QgIiRkbHNlbGYiID0gbm87IHRoZW4KKysJICAgICAgZGxz ZWxmPW5lZWRsZXNzCisrCSAgICAgIGV4cG9ydF9keW5hbWljPXllcworKwkgICAgZmkKKysJICAg IHByZXY9CisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBzZWxmKQorKwkgICAgaWYgdGVz dCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorKwkgICAgICBkbHNlbGY9eWVzCisrCSAgICBl bGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXMgJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiAhPSB5ZXM7 IHRoZW4KKysJICAgICAgZGxzZWxmPXllcworKwkgICAgZWxzZQorKwkgICAgICBkbHNlbGY9bmVl ZGxlc3MKKysJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCisrCSAgICBmaQorKwkgICAgcHJldj0K KysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkcHJldiIg PSBkbGZpbGVzOyB0aGVuCisrCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisrCSAgICBl bHNlCisrCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisrCSAgICBmaQorKwkg ICAgcHJldj0KKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwll eHBzeW1zKQorKwkgIGV4cG9ydF9zeW1ib2xzPSIkYXJnIgorKwkgIHRlc3QgLWYgIiRhcmciIFwK KysJICAgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgInN5bWJvbCBmaWxlIFxgJGFyZycgZG9lcyBub3Qg ZXhpc3QiCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWV4cHN5bXNfcmVnZXgp CisrCSAgZXhwb3J0X3N5bWJvbHNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51 ZQorKwkgIDs7CisrCWZyYW1ld29yaykKKysJICBjYXNlICRob3N0IGluCisrCSAgICAqLSotZGFy d2luKikKKysJICAgICAgY2FzZSAiJGRlcGxpYnMgIiBpbgorKwkJKiIgJHFhcmcubHRmcmFtZXdv cmsgIiopIDs7CisrCQkqKSBkZXBsaWJzPSIkZGVwbGlicyAkcWFyZy5sdGZyYW1ld29yayIgIyB0 aGlzIGlzIGZpeGVkIGxhdGVyCisrCQkgICA7OworKwkgICAgICBlc2FjCisrCSAgICAgIDs7Cisr CSAgZXNhYworKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwlpbnN0X3ByZWZpeCkK KysJICBpbnN0X3ByZWZpeF9kaXI9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkg IDs7CisrCW9iamVjdGxpc3QpCisrCSAgaWYgdGVzdCAtZiAiJGFyZyI7IHRoZW4KKysJICAgIHNh dmVfYXJnPSRhcmcKKysJICAgIG1vcmVhcmdzPQorKwkgICAgZm9yIGZpbCBpbiBgY2F0ICIkc2F2 ZV9hcmciYAorKwkgICAgZG8KKysjCSAgICAgIG1vcmVhcmdzPSIkbW9yZWFyZ3MgJGZpbCIKKysJ ICAgICAgYXJnPSRmaWwKKysJICAgICAgIyBBIGxpYnRvb2wtY29udHJvbGxlZCBvYmplY3QuCisr CisrCSAgICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIG9i amVjdC4KKysJICAgICAgaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4KKysJCXBp Y19vYmplY3Q9CisrCQlub25fcGljX29iamVjdD0KKysKKysJCSMgUmVhZCB0aGUgLmxvIGZpbGUK KysJCWZ1bmNfc291cmNlICIkYXJnIgorKworKwkJaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8 CisrCQkgICB0ZXN0IC16ICIkbm9uX3BpY19vYmplY3QiIHx8CisrCQkgICB0ZXN0ICIkcGljX29i amVjdCIgPSBub25lICYmCisrCQkgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhl bgorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3Ig XGAkYXJnJyIKKysJCWZpCisrCisrCQkjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFy Z3VtZW50LgorKwkJZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKKysJCXhkaXI9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0IgorKworKwkJaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4K KysJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4K KysJCSAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKKysKKysJCSAgaWYgdGVzdCAiJHBy ZXYiID0gZGxmaWxlczsgdGhlbgorKwkJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KKysJCSAgICAgIGRs ZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorKwkJICAgICAgcHJldj0KKysJCSAgICAgIGNv bnRpbnVlCisrCQkgICAgZWxzZQorKwkJICAgICAgIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVu c3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KKysJCSAgICAgIHByZXY9ZGxwcmVm aWxlcworKwkJICAgIGZpCisrCQkgIGZpCisrCisrCQkgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkg YnVzdGVkIHRoaXMuICAtT3NzYW1hCisrCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7 IHRoZW4KKysJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCisrCQkgICAgZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCisrCQkgICAgcHJldj0KKysJCSAgZmkK KysKKysJCSAgIyBBIFBJQyBvYmplY3QuCisrCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGlj X29iamVjdCIKKysJCSAgYXJnPSIkcGljX29iamVjdCIKKysJCWZpCisrCisrCQkjIE5vbi1QSUMg b2JqZWN0LgorKwkJaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisrCQkg ICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCQkg IG5vbl9waWNfb2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKKysKKysJCSAgIyBBIHN0YW5k YXJkIG5vbi1QSUMgb2JqZWN0CisrCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRu b25fcGljX29iamVjdCIKKysJCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRw aWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCisrCQkgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCisr CQkgIGZpCisrCQllbHNlCisrCQkgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQg aW5zdGVhZC4KKysJCSAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRwaWNfb2JqZWN0IGFib3Zl LgorKwkJICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCisrCQkgIGZ1bmNfYXBwZW5kIG5v bl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKKysJCWZpCisrCSAgICAgIGVsc2UKKysJ CSMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkJaWYgJG9wdF9kcnlf cnVuOyB0aGVuCisrCQkgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQu CisrCQkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCQkgIHhkaXI9IiRmdW5jX2Rpcm5h bWVfcmVzdWx0IgorKworKwkJICBmdW5jX2xvMm8gIiRhcmciCisrCQkgIHBpY19vYmplY3Q9JHhk aXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisrCQkgIG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1 bmNfbG8yb19yZXN1bHQKKysJCSAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0Igor KwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAg ICAgICAgZWxzZQorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRhcmcnIGlzIG5vdCBhIHZhbGlk IGxpYnRvb2wgb2JqZWN0IgorKwkJZmkKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBlbHNl CisrCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJsaW5rIGlucHV0IGZpbGUgXGAkYXJnJyBkb2VzIG5v dCBleGlzdCIKKysJICBmaQorKwkgIGFyZz0kc2F2ZV9hcmcKKysJICBwcmV2PQorKwkgIGNvbnRp bnVlCisrCSAgOzsKKysJcHJlY2lvdXNfcmVnZXgpCisrCSAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9 IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXJlbGVhc2UpCisrCSAg cmVsZWFzZT0iLSRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXJwYXRo IHwgeHJwYXRoKQorKwkgICMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkgIGNhc2UgJGFy ZyBpbgorKwkgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKysJICAqKQorKwkgICAgZnVu Y19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCisrCSAg ICA7OworKwkgIGVzYWMKKysJICBpZiB0ZXN0ICIkcHJldiIgPSBycGF0aDsgdGhlbgorKwkgICAg Y2FzZSAiJHJwYXRoICIgaW4KKysJICAgICoiICRhcmcgIiopIDs7CisrCSAgICAqKSBycGF0aD0i JHJwYXRoICRhcmciIDs7CisrCSAgICBlc2FjCisrCSAgZWxzZQorKwkgICAgY2FzZSAiJHhycGF0 aCAiIGluCisrCSAgICAqIiAkYXJnICIqKSA7OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRh cmciIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAg OzsKKysJc2hyZXh0KQorKwkgIHNocmV4dF9jbWRzPSIkYXJnIgorKwkgIHByZXY9CisrCSAgY29u dGludWUKKysJICA7OworKwl3ZWFrKQorKwkgIHdlYWtfbGlicz0iJHdlYWtfbGlicyAkYXJnIgor KwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwl4Y2NsaW5rZXIpCisrCSAgbGlua2Vy X2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRxYXJnIgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGls ZXJfZmxhZ3MgJHFhcmciCisrCSAgcHJldj0KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1h bmQgIiAkcWFyZyIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHFhcmciCisr CSAgY29udGludWUKKysJICA7OworKwl4Y29tcGlsZXIpCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRj b21waWxlcl9mbGFncyAkcWFyZyIKKysJICBwcmV2PQorKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVf Y29tbWFuZCAiICRxYXJnIgorKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFy ZyIKKysJICBjb250aW51ZQorKwkgIDs7CisrCXhsaW5rZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIk bGlua2VyX2ZsYWdzICRxYXJnIgorKwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3Mg JHdsJHFhcmciCisrCSAgcHJldj0KKysJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAk d2wkcWFyZyIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCisr CSAgY29udGludWUKKysJICA7OworKwkqKQorKwkgIGV2YWwgIiRwcmV2PVwiXCRhcmdcIiIKKysJ ICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpICMgdGVzdCAt biAiJHByZXYiCisrCisrICAgICAgcHJldmFyZz0iJGFyZyIKKysKKysgICAgICBjYXNlICRhcmcg aW4KKysgICAgICAtYWxsLXN0YXRpYykKKysJaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWci OyB0aGVuCisrCSAgIyBTZWUgY29tbWVudCBmb3IgLXN0YXRpYyBmbGFnIGJlbG93LCBmb3IgbW9y ZSBkZXRhaWxzLgorKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRsaW5rX3N0YXRp Y19mbGFnIgorKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkbGlua19zdGF0aWNf ZmxhZyIKKysJZmkKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtYWxsb3ctdW5kZWZpbmVk KQorKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUuCisr CWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93LXVuZGVmaW5lZCcgbXVzdCBub3QgYmUgdXNlZCBi ZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IgorKwk7OworKworKyAgICAgIC1hdm9pZC12ZXJzaW9u KQorKwlhdm9pZF92ZXJzaW9uPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbG9w ZW4pCisrCXByZXY9ZGxmaWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1kbHByZW9w ZW4pCisrCXByZXY9ZGxwcmVmaWxlcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1leHBv cnQtZHluYW1pYykKKysJZXhwb3J0X2R5bmFtaWM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisr ICAgICAgLWV4cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4KQorKwlpZiB0ZXN0 IC1uICIkZXhwb3J0X3N5bWJvbHMiIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7 IHRoZW4KKysJICBmdW5jX2ZhdGFsX2Vycm9yICJtb3JlIHRoYW4gb25lIC1leHBvcnRlZC1zeW1i b2xzIGFyZ3VtZW50IGlzIG5vdCBhbGxvd2VkIgorKwlmaQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAi WC1leHBvcnQtc3ltYm9scyI7IHRoZW4KKysJICBwcmV2PWV4cHN5bXMKKysJZWxzZQorKwkgIHBy ZXY9ZXhwc3ltc19yZWdleAorKwlmaQorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1mcmFt ZXdvcmspCisrCXByZXY9ZnJhbWV3b3JrCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWlu c3QtcHJlZml4LWRpcikKKysJcHJldj1pbnN0X3ByZWZpeAorKwljb250aW51ZQorKwk7OworKwor KyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElT VDoqIGFuZCAtTE5POioKKysgICAgICAjIHNvLCBpZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2Fy ZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtlIC1MCisrICAgICAgLUxbQS1aXVtBLVpdKjoqKQor KwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgorKwluby8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQor KwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCSAgZnVuY19hcHBlbmQg ZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrCSAgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1MKikKKysJZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGFyZyIKKysJZGly PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJaWYgdGVzdCAteiAiJGRpciI7IHRoZW4KKysJICBp ZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUg bm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSciCisrCSAgZWxzZQorKwkgICAgZnVuY19m YXRhbF9lcnJvciAibmVlZCBwYXRoIGZvciBcYC1MJyBvcHRpb24iCisrCSAgZmkKKysJZmkKKysJ IyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCWNhc2UgJGRpciBpbgorKwlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIDs7CisrCSopCisrCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAor KwkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5v dCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJICBkaXI9 IiRhYnNkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICIkZGVwbGlicyAiIGluCisrCSoiIC1M JGRpciAiKikgOzsKKysJKikKKysJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIiCisrCSAgbGli X3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisrCSAgOzsKKysJZXNhYworKwlj YXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICot Ki1vczIqIHwgKi1jZWdjYyopCisrCSAgdGVzdGJpbmRpcj1gJEVDSE8gIlgkZGlyIiB8ICRYc2Vk IC1lICdzKi9saWIkKi9iaW4qJ2AKKysJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KKysJICAq IjokZGlyOiIqKSA7OworKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRkaXI7OworKwkgICopIGRsbHNl YXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRkaXIiOzsKKysJICBlc2FjCisrCSAgY2FzZSA6JGRs bHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CisrCSAgOjopIGRsbHNl YXJjaHBhdGg9JHRlc3RiaW5kaXI7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hw YXRoOiR0ZXN0YmluZGlyIjs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtbCopCisrCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0 ICJYJGFyZyIgPSAiWC1sbSI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisrCSAg ICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgb3IgbWF0aCBsaWJyYXJ5 IChhcyBzdWNoKQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAgKi0qLW9zMiopCisrCSAg ICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAoYXMgc3Vj aCkKKysJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJ ICAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKysJICAgICMg RG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgorKwkgICAg dGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCisrCSAgICA7OworKwkgICotKi1yaGFw c29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJICAgICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBs aWJyYXJpZXMgYXJlIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgICBkZXBsaWJzPSIkZGVw bGlicyBTeXN0ZW0ubHRmcmFtZXdvcmsiCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAq LSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCisrCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRo IF9fY3R5cGUKKysJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAg OzsKKysJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICot Ki1PcGVuVU5JWCopCisrCSAgICAjIENvbXBpbGVyIGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVj dCBwbGFjZSBmb3IgdGhyZWFkcyB0byB3b3JrCisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIg JiYgY29udGludWUKKysJICAgIDs7CisrCSAgZXNhYworKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJY LWxjX3IiOyB0aGVuCisrCSBjYXNlICRob3N0IGluCisrCSAqLSotb3BlbmJzZCogfCAqLSotZnJl ZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKysJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGly ZWN0bHksIHVzZSAtcHRocmVhZCBmbGFnLgorKwkgICBjb250aW51ZQorKwkgICA7OworKwkgZXNh YworKwlmaQorKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKwor KyAgICAgIC1tb2R1bGUpCisrCW1vZHVsZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAjIFRydTY0IFVOSVggdXNlcyAtbW9kZWwgW2FyZ10gdG8gZGV0ZXJtaW5lIHRoZSBsYXlvdXQg b2YgQysrCisrICAgICAgIyBjbGFzc2VzLCBuYW1lIG1hbmdsaW5nLCBhbmQgZXhjZXB0aW9uIGhh bmRsaW5nLgorKyAgICAgICMgRGFyd2luIHVzZXMgdGhlIC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5l IG91dHB1dCBhcmNoaXRlY3R1cmUuCisrICAgICAgLW1vZGVsfC1hcmNofC1pc3lzcm9vdCkKKysJ Y29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorKwlmdW5jX2FwcGVuZCBjb21w aWxlX2NvbW1hbmQgIiAkYXJnIgorKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFy ZyIKKysJcHJldj14Y29tcGlsZXIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbXR8LW10 aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZl fC10aHJlYWRzKQorKwljb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrCWZ1 bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCisrCWZ1bmNfYXBwZW5kIGZpbmFsaXpl X2NvbW1hbmQgIiAkYXJnIgorKwljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBp bgorKwkgICAgKiIgJGFyZyAiKikgOzsKKysJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9m bGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRhcmciIDs7CisrCWVzYWMKKysJY29u dGludWUKKysJOzsKKysKKysgICAgICAtbXVsdGlfbW9kdWxlKQorKwlzaW5nbGVfbW9kdWxlPSIk e3dsfS1tdWx0aV9tb2R1bGUiCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLWZhc3Qt aW5zdGFsbCkKKysJZmFzdF9pbnN0YWxsPW5vCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg LW5vLWluc3RhbGwpCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cq IHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotZGFyd2luKiB8ICotY2VnY2MqKQorKwkgICMg VGhlIFBBVEggaGFja2VyeSBpbiB3cmFwcGVyIHNjcmlwdHMgaXMgcmVxdWlyZWQgb24gV2luZG93 cworKwkgICMgYW5kIERhcndpbiBpbiBvcmRlciBmb3IgdGhlIGxvYWRlciB0byBmaW5kIGFueSBk bGxzIGl0IG5lZWRzLgorKwkgIGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFsbCcgaXMgaWdub3Jl ZCBmb3IgJGhvc3QiCisrCSAgZnVuY193YXJuaW5nICJhc3N1bWluZyBcYC1uby1mYXN0LWluc3Rh bGwnIGluc3RlYWQiCisrCSAgZmFzdF9pbnN0YWxsPW5vCisrCSAgOzsKKysJKikgbm9faW5zdGFs bD15ZXMgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1uby11bmRlZmlu ZWQpCisrCWFsbG93X3VuZGVmaW5lZD1ubworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1v YmplY3RsaXN0KQorKwlwcmV2PW9iamVjdGxpc3QKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtbykgcHJldj1vdXRwdXQgOzsKKysKKysgICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgpCisr CXByZXY9cHJlY2lvdXNfcmVnZXgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtcmVsZWFz ZSkKKysJcHJldj1yZWxlYXNlCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXJwYXRoKQor KwlwcmV2PXJwYXRoCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLVIpCisrCXByZXY9eHJw YXRoCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLVIqKQorKwlmdW5jX3N0cmlwbmFtZSAn LVInICcnICIkYXJnIgorKwlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkjIFdlIG5lZWQg YW4gYWJzb2x1dGUgcGF0aC4KKysJY2FzZSAkZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgOzsKKysJKikKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1w YXRocyBhcmUgYWxsb3dlZCIKKysJICA7OworKwllc2FjCisrCWNhc2UgIiR4cnBhdGggIiBpbgor KwkqIiAkZGlyICIqKSA7OworKwkqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKKysJZXNhYwor Kwljb250aW51ZQorKwk7OworKworKyAgICAgIC1zaGFyZWQpCisrCSMgVGhlIGVmZmVjdHMgb2Yg LXNoYXJlZCBhcmUgZGVmaW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgLXNocmV4dCkKKysJcHJldj1zaHJleHQKKysJY29udGludWUKKysJOzsKKysK KysgICAgICAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29sLWxpYnMpCisrCSMgVGhlIGVmZmVjdHMg b2YgLXN0YXRpYyBhcmUgZGVmaW5lZCBpbiBhIHByZXZpb3VzIGxvb3AuCisrCSMgV2UgdXNlZCB0 byBkbyB0aGUgc2FtZSBhcyAtYWxsLXN0YXRpYyBvbiBwbGF0Zm9ybXMgdGhhdAorKwkjIGRpZG4n dCBoYXZlIGEgUElDIGZsYWcsIGJ1dCB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBlZmZlY3RzCisr CSMgd291bGQgYmUgZXF1aXZhbGVudCB3YXMgd3JvbmcuICBJdCB3b3VsZCBicmVhayBvbiBhdCBs ZWFzdAorKwkjIERpZ2l0YWwgVW5peCBhbmQgQUlYLgorKwljb250aW51ZQorKwk7OworKworKyAg ICAgIC10aHJlYWQtc2FmZSkKKysJdGhyZWFkX3NhZmU9eWVzCisrCWNvbnRpbnVlCisrCTs7Cisr CisrICAgICAgLXZlcnNpb24taW5mbykKKysJcHJldj12aW5mbworKwljb250aW51ZQorKwk7Owor KworKyAgICAgIC12ZXJzaW9uLW51bWJlcikKKysJcHJldj12aW5mbworKwl2aW5mb19udW1iZXI9 eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXdlYWspCisrICAgICAgICBwcmV2PXdl YWsKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtV2MsKikKKysJZnVuY19zdHJpcG5hbWUg Jy1XYywnICcnICIkYXJnIgorKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJYXJnPQor KwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAg SUZTPSIkc2F2ZV9pZnMiCisrICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgor KwkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgY29tcGls ZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisr CWRvbmUKKysJSUZTPSIkc2F2ZV9pZnMiCisrCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIK KysJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJOzsKKysKKysgICAgICAtV2wsKikKKysJ ZnVuY19zdHJpcG5hbWUgJy1XbCwnICcnICIkYXJnIgorKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKKysJYXJnPQorKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKysJZm9yIGZsYWcgaW4g JGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrICAgICAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRmbGFnIgorKwkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQiCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkd2wkZnVuY19xdW90ZV9m b3JfZXZhbF9yZXN1bHQiCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmdW5jX3F1 b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJZnVuY19z dHJpcG5hbWUgJyAnICcnICIkYXJnIgorKwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwk7 OworKworKyAgICAgIC1YY29tcGlsZXIpCisrCXByZXY9eGNvbXBpbGVyCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLVhsaW5rZXIpCisrCXByZXY9eGxpbmtlcgorKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1YQ0NsaW5rZXIpCisrCXByZXY9eGNjbGlua2VyCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgIyAtbXNnXyogZm9yIG9zZiBjYworKyAgICAgIC1tc2dfKikKKysJZnVu Y19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQiCisrCTs7CisrCisrICAgICAgIyAtNjQsIC1taXBzWzAtOV0gZW5hYmxlIDY0LWJpdCBtb2Rl IG9uIHRoZSBTR0kgY29tcGlsZXIKKysgICAgICAjIC1yWzAtOV1bMC05XSogc3BlY2lmaWVzIHRo ZSBwcm9jZXNzb3Igb24gdGhlIFNHSSBjb21waWxlcgorKyAgICAgICMgLXhhcmNoPSosIC14dGFy Z2V0PSogZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTdW4gY29tcGlsZXIKKysgICAgICAjICtE QSosICtERCogZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBIUCBjb21waWxlcgorKyAgICAgICMg LXEqIHBhc3MgdGhyb3VnaCBjb21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisrICAg ICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNw ZWNpZmljCisrICAgICAgIyBjb21waWxlciBhcmdzIGZvciBHQ0MKKysgICAgICAjIC1GL3BhdGgg Z2l2ZXMgcGF0aCB0byB1bmluc3RhbGxlZCBmcmFtZXdvcmtzLCBnY2Mgb24gZGFyd2luCisrICAg ICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAtZnByb2ZpbGUtKiBwYXNzIHRocm91Z2ggcHJvZmls aW5nIGZsYWcgZm9yIEdDQworKyAgICAgICMgQGZpbGUgR0NDIHJlc3BvbnNlIGZpbGVzCisrICAg ICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVswLTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8 K0REKnwtcSp8LW0qfCBcCisrICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJh Z2V8LWZwcm9maWxlLSp8LUYqfEAqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFy ZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgICBmdW5jX2Fw cGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorKyAgICAgICAgZnVuY19hcHBlbmQgZmluYWxp emVfY29tbWFuZCAiICRhcmciCisrICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2Zs YWdzICRhcmciCisrICAgICAgICBjb250aW51ZQorKyAgICAgICAgOzsKKysKKysgICAgICAjIFNv bWUgb3RoZXIgY29tcGlsZXIgZmxhZy4KKysgICAgICAtKiB8ICsqKQorKyAgICAgICAgZnVuY19x dW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQi CisrCTs7CisrCisrICAgICAgKi4kb2JqZXh0KQorKwkjIEEgc3RhbmRhcmQgb2JqZWN0LgorKwlv YmpzPSIkb2JqcyAkYXJnIgorKwk7OworKworKyAgICAgICoubG8pCisrCSMgQSBsaWJ0b29sLWNv bnRyb2xsZWQgb2JqZWN0LgorKworKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlz IGEgbGlidG9vbCBvYmplY3QuCisrCWlmIGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVu CisrCSAgcGljX29iamVjdD0KKysJICBub25fcGljX29iamVjdD0KKysKKysJICAjIFJlYWQgdGhl IC5sbyBmaWxlCisrCSAgZnVuY19zb3VyY2UgIiRhcmciCisrCisrCSAgaWYgdGVzdCAteiAiJHBp Y19vYmplY3QiIHx8CisrCSAgICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkgICAg IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKKysJICAgICB0ZXN0ICIkbm9uX3BpY19vYmpl Y3QiID0gbm9uZTsgdGhlbgorKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFt ZSBvZiBvYmplY3QgZm9yIFxgJGFyZyciCisrCSAgZmkKKysKKysJICAjIEV4dHJhY3Qgc3ViZGly ZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIi CisrCSAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrCisrCSAgaWYgdGVzdCAiJHBpY19v YmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRo ZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0 IgorKworKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkgICAgICBpZiB0 ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQi ID0geWVzOyB0aGVuCisrCQlkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKysJCXByZXY9 CisrCQljb250aW51ZQorKwkgICAgICBlbHNlCisrCQkjIElmIGxpYnRvb2wgb2JqZWN0cyBhcmUg dW5zdXBwb3J0ZWQsIHRoZW4gd2UgbmVlZCB0byBwcmVsb2FkLgorKwkJcHJldj1kbHByZWZpbGVz CisrCSAgICAgIGZpCisrCSAgICBmaQorKworKwkgICAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBi dXN0ZWQgdGhpcy4gIC1Pc3NhbWEKKysJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7 IHRoZW4KKysJICAgICAgIyBQcmVsb2FkIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgorKwkgICAgICBk bHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVjdCIKKysJICAgICAgcHJldj0KKysJICAg IGZpCisrCisrCSAgICAjIEEgUElDIG9iamVjdC4KKysJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMg IiAkcGljX29iamVjdCIKKysJICAgIGFyZz0iJHBpY19vYmplY3QiCisrCSAgZmkKKysKKysJICAj IE5vbi1QSUMgb2JqZWN0LgorKwkgIGlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsg dGhlbgorKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3Vu ZCBpbi4KKysJICAgIG5vbl9waWNfb2JqZWN0PSIkeGRpciRub25fcGljX29iamVjdCIKKysKKysJ ICAgICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAorKwkgICAgZnVuY19hcHBlbmQgbm9uX3Bp Y19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorKwkgICAgaWYgdGVzdCAteiAiJHBpY19vYmpl Y3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCisrCSAgICAgIGFyZz0iJG5v bl9waWNfb2JqZWN0IgorKwkgICAgZmkKKysJICBlbHNlCisrCSAgICAjIElmIHRoZSBQSUMgb2Jq ZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCisrCSAgICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQg dG8gJHBpY19vYmplY3QgYWJvdmUuCisrCSAgICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3Qi CisrCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisr CSAgZmkKKysJZWxzZQorKwkgICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVu LgorKwkgIGlmICRvcHRfZHJ5X3J1bjsgdGhlbgorKwkgICAgIyBFeHRyYWN0IHN1YmRpcmVjdG9y eSBmcm9tIHRoZSBhcmd1bWVudC4KKysJICAgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisr CSAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysKKysJICAgIGZ1bmNfbG8ybyAiJGFy ZyIKKysJICAgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisrCSAg ICBub25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9fcmVzdWx0CisrCSAgICBmdW5jX2FwcGVu ZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisrCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVj dHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAi XGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKKysJICBmaQorKwlmaQorKwk7 OworKworKyAgICAgICouJGxpYmV4dCkKKysJIyBBbiBhcmNoaXZlLgorKwlkZXBsaWJzPSIkZGVw bGlicyAkYXJnIgorKwlvbGRfZGVwbGlicz0iJG9sZF9kZXBsaWJzICRhcmciCisrCWNvbnRpbnVl CisrCTs7CisrCisrICAgICAgKi5sYSkKKysJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBsaWJyYXJ5 LgorKworKwlpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisrCSAgIyBUaGlzIGxpYnJh cnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4uCisrCSAgZGxmaWxlcz0iJGRsZmlsZXMgJGFy ZyIKKysJICBwcmV2PQorKwllbGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJ ICAjIFRoZSBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxwcmVvcGVuLgorKwkgIGRscHJl ZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRlcGxpYnM9 IiRkZXBsaWJzICRhcmciCisrCWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgIyBTb21l IG90aGVyIGNvbXBpbGVyIGFyZ3VtZW50LgorKyAgICAgICopCisrCSMgVW5rbm93biBhcmd1bWVu dHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQgbmVlZAorKwkj IHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVy LgorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCIKKysJOzsKKysgICAgICBlc2FjICMgYXJnCisrCisrICAgICAgIyBOb3cgYWN0 dWFsbHkgc3Vic3RpdHV0ZSB0aGUgYXJndW1lbnQgaW50byB0aGUgY29tbWFuZHMuCisrICAgICAg aWYgdGVzdCAtbiAiJGFyZyI7IHRoZW4KKysJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIg JGFyZyIKKysJZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrICAgICAgZmkK KysgICAgZG9uZSAjIGFyZ3VtZW50IHBhcnNpbmcgbG9vcAorKworKyAgICB0ZXN0IC1uICIkcHJl diIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXZhcmcnIG9wdGlvbiBy ZXF1aXJlcyBhbiBhcmd1bWVudCIKKysKKysgICAgaWYgdGVzdCAiJGV4cG9ydF9keW5hbWljIiA9 IHllcyAmJiB0ZXN0IC1uICIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIjsgdGhlbgorKyAgICAg IGV2YWwgYXJnPVwiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCisrICAgICAgZnVuY19hcHBl bmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9j b21tYW5kICIgJGFyZyIKKysgICAgZmkKKysKKysgICAgb2xkbGlicz0KKysgICAgIyBjYWxjdWxh dGUgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIHdpdGhvdXQgaXRzIGRpcmVjdG9yeQorKyAgICBmdW5j X2Jhc2VuYW1lICIkb3V0cHV0IgorKyAgICBvdXRwdXRuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCisrICAgIGxpYm9ianNfc2F2ZT0iJGxpYm9ianMiCisrCisrICAgIGlmIHRlc3QgLW4gIiRz aGxpYnBhdGhfdmFyIjsgdGhlbgorKyAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQg aW4gJHNobGlicGF0aF92YXIKKysgICAgICBldmFsIHNobGliX3NlYXJjaF9wYXRoPVxgXCRFQ0hP IFwiWFwkeyRzaGxpYnBhdGhfdmFyfVwiIFx8IFwkWHNlZCAtZSBcJ3MvOi8gL2dcJ1xgCisrICAg IGVsc2UKKysgICAgICBzaGxpYl9zZWFyY2hfcGF0aD0KKysgICAgZmkKKysgICAgZXZhbCBzeXNf bGliX3NlYXJjaF9wYXRoPVwiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlY1wiCisrICAgIGV2YWwg c3lzX2xpYl9kbHNlYXJjaF9wYXRoPVwiJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjXCIKKysK KysgICAgZnVuY19kaXJuYW1lICIkb3V0cHV0IiAiLyIgIiIKKysgICAgb3V0cHV0X29iamRpcj0i JGZ1bmNfZGlybmFtZV9yZXN1bHQkb2JqZGlyIgorKyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRp cmVjdG9yeS4KKysgICAgZnVuY19ta2Rpcl9wICIkb3V0cHV0X29iamRpciIKKysKKysgICAgIyBE ZXRlcm1pbmUgdGhlIHR5cGUgb2Ygb3V0cHV0CisrICAgIGNhc2UgJG91dHB1dCBpbgorKyAgICAi IikKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZp bGUiCisrICAgICAgOzsKKysgICAgKi4kbGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKKysgICAg Ki5sbyB8ICouJG9iamV4dCkgbGlua21vZGU9b2JqIDs7CisrICAgICoubGEpIGxpbmttb2RlPWxp YiA7OworKyAgICAqKSBsaW5rbW9kZT1wcm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUg YSBwcm9ncmFtLgorKyAgICBlc2FjCisrCisrICAgIHNwZWNpYWxkZXBsaWJzPQorKworKyAgICBs aWJzPQorKyAgICAjIEZpbmQgYWxsIGludGVyZGVwZW5kZW50IGRlcGxpYnMgYnkgc2VhcmNoaW5n IGZvciBsaWJyYXJpZXMKKysgICAgIyB0aGF0IGFyZSBsaW5rZWQgbW9yZSB0aGFuIG9uY2UgKGUu Zy4gLWxhIC1sYiAtbGEpCisrICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCisrICAgICAg aWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KKysJY2FzZSAiJGxpYnMgIiBpbgorKwkqIiAk ZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7Cisr CWVzYWMKKysgICAgICBmaQorKyAgICAgIGxpYnM9IiRsaWJzICRkZXBsaWIiCisrICAgIGRvbmUK KysKKysgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKyAgICAgIGxpYnM9IiRw cmVkZXBzICRsaWJzICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggJHBvc3RkZXBzIgorKworKyAg ICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhhdCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGlu ICRwcmVkZXBzCisrICAgICAgIyAkcG9zdGRlcHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChp LmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQorKyAgICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQp LgorKyAgICAgIHByZV9wb3N0X2RlcHM9CisrICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfY29tcGls ZXJfZ2VuZXJhdGVkX2RlcHM7IHRoZW4KKysJZm9yIHByZV9wb3N0X2RlcCBpbiAkcHJlZGVwcyAk cG9zdGRlcHM7IGRvCisrCSAgY2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgorKwkgICoiICRwcmVf cG9zdF9kZXAgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJHByZV9wb3N0X2Rl cHMiIDs7CisrCSAgZXNhYworKwkgIHByZV9wb3N0X2RlcHM9IiRwcmVfcG9zdF9kZXBzICRwcmVf cG9zdF9kZXAiCisrCWRvbmUKKysgICAgICBmaQorKyAgICAgIHByZV9wb3N0X2RlcHM9CisrICAg IGZpCisrCisrICAgIGRlcGxpYnM9CisrICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KKysgICAgbmV3 bGliX3NlYXJjaF9wYXRoPQorKyAgICBuZWVkX3JlbGluaz1ubyAjIHdoZXRoZXIgd2UncmUgbGlu a2luZyBhbnkgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgbm90aW5zdF9kZXBs aWJzPSAjIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgbm90aW5zdF9wYXRo PSAjIHBhdGhzIHRoYXQgY29udGFpbiBub3QtaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCisr CisrICAgIGNhc2UgJGxpbmttb2RlIGluCisrICAgIGxpYikKKysJcGFzc2VzPSJjb252IGRscHJl b3BlbiBsaW5rIgorKwlmb3IgZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVmaWxlczsgZG8KKysJICBj YXNlICRmaWxlIGluCisrCSAgKi5sYSkgOzsKKysJICAqKQorKwkgICAgZnVuY19mYXRhbF9oZWxw ICJsaWJyYXJpZXMgY2FuIFxgLWRsb3Blbicgb25seSBsaWJ0b29sIGxpYnJhcmllczogJGZpbGUi CisrCSAgICA7OworKwkgIGVzYWMKKysJZG9uZQorKwk7OworKyAgICBwcm9nKQorKwljb21waWxl X2RlcGxpYnM9CisrCWZpbmFsaXplX2RlcGxpYnM9CisrCWFsbGRlcGxpYnM9bm8KKysJbmV3ZGxm aWxlcz0KKysJbmV3ZGxwcmVmaWxlcz0KKysJcGFzc2VzPSJjb252IHNjYW4gZGxvcGVuIGRscHJl b3BlbiBsaW5rIgorKwk7OworKyAgICAqKSAgcGFzc2VzPSJjb252IgorKwk7OworKyAgICBlc2Fj CisrCisrICAgIGZvciBwYXNzIGluICRwYXNzZXM7IGRvCisrICAgICAgIyBUaGUgcHJlb3BlbiBw YXNzIGluIGxpYiBtb2RlIHJldmVyc2VzICRkZXBsaWJzOyBwdXQgaXQgYmFjayBoZXJlCisrICAg ICAgIyBzbyB0aGF0IC1MIGNvbWVzIGJlZm9yZSBsaWJzIHRoYXQgbmVlZCBpdCBmb3IgaW5zdGFu Y2UuLi4KKysgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxpYixsaW5rIjsgdGhl bgorKwkjIyBGSVhNRTogRmluZCB0aGUgcGxhY2Ugd2hlcmUgdGhlIGxpc3QgaXMgcmVidWlsdCBp biB0aGUgd3JvbmcKKysJIyMgICAgICAgIG9yZGVyLCBhbmQgZml4IGl0IHRoZXJlIHByb3Blcmx5 CisrICAgICAgICB0bXBfZGVwbGlicz0KKysJZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJ ICB0bXBfZGVwbGlicz0iJGRlcGxpYiAkdG1wX2RlcGxpYnMiCisrCWRvbmUKKysJZGVwbGlicz0i JHRtcF9kZXBsaWJzIgorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRw YXNzIiA9ICJsaWIsbGluayIgfHwKKysJIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxz Y2FuIjsgdGhlbgorKwlsaWJzPSIkZGVwbGlicyIKKysJZGVwbGlicz0KKysgICAgICBmaQorKyAg ICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrCWNhc2UgJHBhc3MgaW4KKysJ ZGxvcGVuKSBsaWJzPSIkZGxmaWxlcyIgOzsKKysJZGxwcmVvcGVuKSBsaWJzPSIkZGxwcmVmaWxl cyIgOzsKKysJbGluaykgbGlicz0iJGRlcGxpYnMgJURFUExJQlMlICRkZXBlbmRlbmN5X2xpYnMi IDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIg PSAibGliLGRscHJlb3BlbiI7IHRoZW4KKysJIyBDb2xsZWN0IGFuZCBmb3J3YXJkIGRlcGxpYnMg b2YgcHJlb3BlbmVkIGxpYnRvb2wgbGlicworKwlmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbwor KwkgICMgSWdub3JlIG5vbi1saWJ0b29sLWxpYnMKKysJICBkZXBlbmRlbmN5X2xpYnM9CisrCSAg Y2FzZSAkbGliIGluCisrCSAgKi5sYSkJZnVuY19zb3VyY2UgIiRsaWIiIDs7CisrCSAgZXNhYwor KworKwkgICMgQ29sbGVjdCBwcmVvcGVuZWQgbGlidG9vbCBkZXBsaWJzLCBleGNlcHQgYW55IHRo aXMgbGlicmFyeQorKwkgICMgaGFzIGRlY2xhcmVkIGFzIHdlYWsgbGlicworKwkgIGZvciBkZXBs aWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysgICAgICAgICAgICBkZXBsaWJfYmFzZT1gJEVD SE8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorKwkgICAgY2FzZSAiICR3ZWFr X2xpYnMgIiBpbgorKwkgICAgKiIgJGRlcGxpYl9iYXNlICIqKSA7OworKwkgICAgKikgZGVwbGli cz0iJGRlcGxpYnMgJGRlcGxpYiIgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCWRvbmUKKysJ bGlicz0iJGRscHJlZmlsZXMiCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBk bG9wZW47IHRoZW4KKysJIyBDb2xsZWN0IGRscHJlb3BlbmVkIGxpYnJhcmllcworKwlzYXZlX2Rl cGxpYnM9IiRkZXBsaWJzIgorKwlkZXBsaWJzPQorKyAgICAgIGZpCisrCisrICAgICAgZm9yIGRl cGxpYiBpbiAkbGliczsgZG8KKysJbGliPQorKwlmb3VuZD1ubworKwljYXNlICRkZXBsaWIgaW4K KysJLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10 aHJlYWQtc2FmZXwtdGhyZWFkcykKKysJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInBy b2csbGluayI7IHRoZW4KKysJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9k ZXBsaWJzIgorKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGli cyIKKysJICBlbHNlCisrCSAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRkZXBs aWIiCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgorKwkJY2FzZSAiJG5l d19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJCSAgICAqIiAkZGVwbGliICIqKSA7Owor KwkJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzICRkZXBsaWIiIDs7CisrCQllc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29u dGludWUKKysJICA7OworKwktbCopCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIgJiYg dGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0aGVuCisrCSAgICBmdW5jX3dhcm5pbmcgIlxgLWwn IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29iamVjdHMiCisrCSAgICBjb250aW51ZQorKwkgIGZp CisrCSAgZnVuY19zdHJpcG5hbWUgJy1sJyAnJyAiJGRlcGxpYiIKKysJICBuYW1lPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKKysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrCSAg ICBzZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJGNvbXBp bGVyX2xpYl9zZWFyY2hfZGlycyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3Bh dGgiCisrCSAgZWxzZQorKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGli X3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKKysJ ICBmaQorKwkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCisrCSAgICBmb3Igc2Vh cmNoX2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5hOyBkbworKwkgICAgICAjIFNlYXJjaCB0 aGUgbGlidG9vbCBsaWJyYXJ5CisrCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtz ZWFyY2hfZXh0fSIKKysJICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJCWlmIHRlc3Qg IiRzZWFyY2hfZXh0IiA9ICIubGEiOyB0aGVuCisrCQkgIGZvdW5kPXllcworKwkJZWxzZQorKwkJ ICBmb3VuZD1ubworKwkJZmkKKysJCWJyZWFrIDIKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJ ICBkb25lCisrCSAgaWYgdGVzdCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4KKysJICAgICMgZGVwbGli IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgaWYgdGVzdCAiJGxp bmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgICAgIGNvbXBpbGVfZGVwbGli cz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIk ZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBkZXBsaWJzPSIk ZGVwbGliICRkZXBsaWJzIgorKwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2Rl cGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZmkKKysJ ICAgIGNvbnRpbnVlCisrCSAgZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQorKwkg ICAgIyBJZiAkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBs aWIgaXMgYSBzdGRsaWIsCisrCSAgICAjIFdlIG5lZWQgdG8gZG8gc29tZSBzcGVjaWFsIHRoaW5n cyBoZXJlLCBhbmQgbm90IGxhdGVyLgorKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xp YnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIg JHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJICAgICAgKiIgJGRlcGxpYiAiKikKKysJCWlmIGZ1 bmNfbGFsaWJfcCAiJGxpYiI7IHRoZW4KKysJCSAgbGlicmFyeV9uYW1lcz0KKysJCSAgb2xkX2xp YnJhcnk9CisrCQkgIGZ1bmNfc291cmNlICIkbGliIgorKwkJICBmb3IgbCBpbiAkb2xkX2xpYnJh cnkgJGxpYnJhcnlfbmFtZXM7IGRvCisrCQkgICAgbGw9IiRsIgorKwkJICBkb25lCisrCQkgIGlm IHRlc3QgIlgkbGwiID0gIlgkb2xkX2xpYnJhcnkiIDsgdGhlbiAjIG9ubHkgc3RhdGljIHZlcnNp b24gYXZhaWxhYmxlCisrCQkgICAgZm91bmQ9bm8KKysJCSAgICBmdW5jX2Rpcm5hbWUgIiRsaWIi ICIiICIuIgorKwkJICAgIGxhZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJCSAgICBsaWI9 JGxhZGlyLyRvbGRfbGlicmFyeQorKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAi cHJvZyxsaW5rIjsgdGhlbgorKwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21w aWxlX2RlcGxpYnMiCisrCQkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6 ZV9kZXBsaWJzIgorKwkJICAgIGVsc2UKKysJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxp YnMiCisrCQkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGli cz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkJICAgIGZpCisrCQkgICAgY29udGlu dWUKKysJCSAgZmkKKysJCWZpCisrCQk7OworKwkgICAgICAqKSA7OworKwkgICAgICBlc2FjCisr CSAgICBmaQorKwkgIGZpCisrCSAgOzsgIyAtbAorKwkqLmx0ZnJhbWV3b3JrKQorKwkgIGlmIHRl c3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgICAgY29tcGlsZV9k ZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJz PSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRk ZXBsaWIgJGRlcGxpYnMiCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgor KwkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJCSAgICAqIiAkZGVw bGliICIqKSA7OworKwkJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19p bmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIiIDs7CisrCQllc2FjCisrCSAgICBmaQorKwkg IGZpCisrCSAgY29udGludWUKKysJICA7OworKwktTCopCisrCSAgY2FzZSAkbGlua21vZGUgaW4K KysJICBsaWIpCisrCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgdGVzdCAi JHBhc3MiID0gY29udiAmJiBjb250aW51ZQorKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVw bGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIk ZGVwbGliIgorKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRm dW5jX3N0cmlwbmFtZV9yZXN1bHQiCisrCSAgICA7OworKwkgIHByb2cpCisrCSAgICBpZiB0ZXN0 ICIkcGFzcyIgPSBjb252OyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi CisrCSAgICAgIGNvbnRpbnVlCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gc2Nh bjsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZWxzZQor KwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAg ICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGZp CisrCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorKwkgICAgbmV3bGliX3Nl YXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisr CSAgICA7OworKwkgICopCisrCSAgICBmdW5jX3dhcm5pbmcgIlxgLUwnIGlzIGlnbm9yZWQgZm9y IGFyY2hpdmVzL29iamVjdHMiCisrCSAgICA7OworKwkgIGVzYWMgIyBsaW5rbW9kZQorKwkgIGNv bnRpbnVlCisrCSAgOzsgIyAtTAorKwktUiopCisrCSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsg dGhlbgorKwkgICAgZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKKysJICAgIGRpcj0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgeHJwYXRoIGNvbnRh aW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisr CSAgICAqIiAkZGlyICIqKSA7OworKwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRkaXIiIDs7Cisr CSAgICBlc2FjCisrCSAgZmkKKysJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgIGNv bnRpbnVlCisrCSAgOzsKKysJKi5sYSkgbGliPSIkZGVwbGliIiA7OworKwkqLiRsaWJleHQpCisr CSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRlcGxpYiAk ZGVwbGlicyIKKysJICAgIGNvbnRpbnVlCisrCSAgZmkKKysJICBjYXNlICRsaW5rbW9kZSBpbgor KwkgIGxpYikKKysJICAgICMgTGlua2luZyBjb252ZW5pZW5jZSBtb2R1bGVzIGludG8gc2hhcmVk IGxpYnJhcmllcyBpcyBhbGxvd2VkLAorKwkgICAgIyBidXQgbGlua2luZyBvdGhlciBzdGF0aWMg bGlicmFyaWVzIGlzIG5vbi1wb3J0YWJsZS4KKysJICAgIGNhc2UgIiAkZGxwcmVjb252ZW5pZW5j ZWxpYnMgIiBpbgorKwkgICAgKiIgJGRlcGxpYiAiKikgOzsKKysJICAgICopCisrCSAgICAgIHZh bGlkX2FfbGliPW5vCisrCSAgICAgIGNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCQlt YXRjaF9wYXR0ZXJuKikKKysJCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hp ZnQKKysJCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9k IiA6ICIkMSBcKC4qXCkiYAorKwkJICBpZiBldmFsICJcJEVDSE8gXCJYJGRlcGxpYlwiIiAyPi9k ZXYvbnVsbCB8ICRYc2VkIC1lIDEwcSBcCisrCQkgICAgfCAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJu X3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJICAgIHZhbGlkX2FfbGliPXllcworKwkJICBm aQorKwkJOzsKKysJCXBhc3NfYWxsKQorKwkJICB2YWxpZF9hX2xpYj15ZXMKKysJCTs7CisrCSAg ICAgIGVzYWMKKysJICAgICAgaWYgdGVzdCAiJHZhbGlkX2FfbGliIiAhPSB5ZXM7IHRoZW4KKysJ CSRFQ0hPCisrCQkkRUNITyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGlj IGxpYiBhcmNoaXZlICRkZXBsaWIuIgorKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxp dHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQkk RUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRo aXMgaWYgeW91IGhhdmUgYSIKKysJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxp YnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQkkRUNITyAiKioqIGJl Y2F1c2UgdGhlIGZpbGUgZXh0ZW5zaW9ucyAuJGxpYmV4dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2Vz IG1lIGJlbGlldmUiCisrCQkkRUNITyAiKioqIHRoYXQgaXQgaXMganVzdCBhIHN0YXRpYyBhcmNo aXZlIHRoYXQgSSBzaG91bGQgbm90IHVzZSBoZXJlLiIKKysJICAgICAgZWxzZQorKwkJJEVDSE8K KysJCSRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1 dCBhZ2FpbnN0IHRoZSIKKysJCSRFQ0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBu b3QgcG9ydGFibGUhIgorKwkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgICAgZmkK KysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIHBy b2cpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgorKwkgICAgICBkZXBsaWJz PSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxlX2RlcGxpYnM9 IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRl cGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBjb250aW51ZQorKwkgICAg OzsKKysJICBlc2FjICMgbGlua21vZGUKKysJICA7OyAjICouJGxpYmV4dAorKwkqLmxvIHwgKi4k b2JqZXh0KQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhl bgorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3Vw cG9ydCIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJ ICAgICAgIyBJZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0 YXRpY2FsbHksCisrCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgorKwkgICAgICBuZXdkbHBy ZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGVwbGliIgorKwkgICAgICBjb21waWxlX2RlcGxpYnM9 IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRl cGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgbmV3ZGxmaWxlcz0i JG5ld2RsZmlsZXMgJGRlcGxpYiIKKysJICAgIGZpCisrCSAgZmkKKysJICBjb250aW51ZQorKwkg IDs7CisrCSVERVBMSUJTJSkKKysJICBhbGxkZXBsaWJzPXllcworKwkgIGNvbnRpbnVlCisrCSAg OzsKKysJZXNhYyAjIGNhc2UgJGRlcGxpYgorKworKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8 IHRlc3QgLWYgIiRsaWIiOyB0aGVuIDoKKysJZWxzZQorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNh bm5vdCBmaW5kIHRoZSBsaWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRl cGxpYiciCisrCWZpCisrCisrCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBs aWJ0b29sIGFyY2hpdmUuCisrCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRsaWIiIFwKKysJICB8fCBm dW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIK KysKKysJZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIKKysJbGFkaXI9IiRmdW5jX2Rpcm5hbWVf cmVzdWx0IgorKworKwlkbG5hbWU9CisrCWRsb3Blbj0KKysJZGxwcmVvcGVuPQorKwlsaWJkaXI9 CisrCWxpYnJhcnlfbmFtZXM9CisrCW9sZF9saWJyYXJ5PQorKwlpbmhlcml0ZWRfbGlua2VyX2Zs YWdzPQorKwkjIElmIHRoZSBsaWJyYXJ5IHdhcyBpbnN0YWxsZWQgd2l0aCBhbiBvbGQgcmVsZWFz ZSBvZiBsaWJ0b29sLAorKwkjIGl0IHdpbGwgbm90IHJlZGVmaW5lIHZhcmlhYmxlcyBpbnN0YWxs ZWQsIG9yIHNob3VsZG5vdGxpbmsKKysJaW5zdGFsbGVkPXllcworKwlzaG91bGRub3RsaW5rPW5v CisrCWF2b2lkdGVtcHJwYXRoPQorKworKworKwkjIFJlYWQgdGhlIC5sYSBmaWxlCisrCWZ1bmNf c291cmNlICIkbGliIgorKworKwkjIENvbnZlcnQgIi1mcmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0 ZnJhbWV3b3JrIgorKwlpZiB0ZXN0IC1uICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyI7IHRoZW4K KysJICB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz1gJEVDSE8gIlgkaW5oZXJpdGVkX2xpbmtl cl9mbGFncyIgfCAkWHNlZCAtZSAncy8tZnJhbWV3b3JrIFwoW14gJF0qXCkvXDEubHRmcmFtZXdv cmsvZydgCisrCSAgZm9yIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgaW4gJHRtcF9pbmhlcml0 ZWRfbGlua2VyX2ZsYWdzOyBkbworKwkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9m bGFncyAiIGluCisrCSAgICAgICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7Owor KwkgICAgICAqKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIjs7CisrCSAgICBlc2FjCisrCSAg ZG9uZQorKwlmaQorKwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYICRkZXBlbmRlbmN5X2xpYnMi IHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydg CisrCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8CisrCSAgIHRlc3Qg IiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIiB8fAorKwkgICB7IHRlc3QgIiRsaW5rbW9k ZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgfTsgdGhlbgorKwkgIHRlc3Qg LW4gIiRkbG9wZW4iICYmIGRsZmlsZXM9IiRkbGZpbGVzICRkbG9wZW4iCisrCSAgdGVzdCAtbiAi JGRscHJlb3BlbiIgJiYgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGRscHJlb3BlbiIKKysJZmkK KysKKysJaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgorKwkgICMgT25seSBjaGVjayBmb3Ig Y29udmVuaWVuY2UgbGlicmFyaWVzCisrCSAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIKKysJICBp ZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5 IjsgdGhlbgorKwkgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxp bmsgbGlicmFyeSBmb3IgXGAkbGliJyIKKysJICAgIGZpCisrCSAgICAjIEl0IGlzIGEgbGlidG9v bCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBzbyBhZGQgaW4gaXRzIG9iamVjdHMuCisrCSAgICBjb252 ZW5pZW5jZT0iJGNvbnZlbmllbmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKKysJICAg IG9sZF9jb252ZW5pZW5jZT0iJG9sZF9jb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xp YnJhcnkiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmtt b2RlIiAhPSBsaWI7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90 IGEgY29udmVuaWVuY2UgbGlicmFyeSIKKysJICBmaQorKwkgIHRtcF9saWJzPQorKwkgIGZvciBk ZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRl cGxpYnMiCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNl ICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0i JHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAg ICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9uZQorKwkgIGNvbnRpbnVlCisr CWZpICMgJHBhc3MgPSBjb252CisrCisrCisrCSMgR2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5 IHdlIGxpbmsgYWdhaW5zdC4KKysJbGlua2xpYj0KKysJZm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRs aWJyYXJ5X25hbWVzOyBkbworKwkgIGxpbmtsaWI9IiRsIgorKwlkb25lCisrCWlmIHRlc3QgLXog IiRsaW5rbGliIjsgdGhlbgorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUg b2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgorKwlmaQorKworKwkjIFRoaXMgbGlicmFyeSB3 YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0 aGVuCisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJy b3IgImNhbm5vdCAtZGxvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBm aQorKwkgIGlmIHRlc3QgLXogIiRkbG5hbWUiIHx8CisrCSAgICAgdGVzdCAiJGRsb3Blbl9zdXBw b3J0IiAhPSB5ZXMgfHwKKysJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0 aGVuCisrCSAgICAjIElmIHRoZXJlIGlzIG5vIGRsbmFtZSwgbm8gZGxvcGVuIHN1cHBvcnQgb3Ig d2UncmUgbGlua2luZworKwkgICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBX ZSBhbHNvIG5lZWQgdG8gcHJlbG9hZCBhbnkKKysJICAgICMgZGVwZW5kZW50IGxpYnJhcmllcyBz byBsaWJsdGRsJ3MgZGVwbGliIHByZWxvYWRlciBkb2Vzbid0CisrCSAgICAjIGJvbWIgb3V0IGlu IHRoZSBsb2FkIGRlcGxpYnMgcGhhc2UuCisrCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAk bGliICRkZXBlbmRlbmN5X2xpYnMiCisrCSAgZWxzZQorKwkgICAgbmV3ZGxmaWxlcz0iJG5ld2Rs ZmlsZXMgJGxpYiIKKysJICBmaQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBkbG9wZW4K KysKKysJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCWNhc2UgJGxhZGlyIGluCisrCVtc XC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzX2xhZGlyPSIkbGFkaXIiIDs7CisrCSopCisrCSAg YWJzX2xhZGlyPWBjZCAiJGxhZGlyIiAmJiBwd2RgCisrCSAgaWYgdGVzdCAteiAiJGFic19sYWRp ciI7IHRoZW4KKysJICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IGRldGVybWluZSBhYnNvbHV0ZSBk aXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciCisrCSAgICBmdW5jX3dhcm5pbmcgInBhc3Npbmcg aXQgbGl0ZXJhbGx5IHRvIHRoZSBsaW5rZXIsIGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiCisrCSAg ICBhYnNfbGFkaXI9IiRsYWRpciIKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJZnVuY19iYXNl bmFtZSAiJGxpYiIKKysJbGFuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCisrCSMgRmlu ZCB0aGUgcmVsZXZhbnQgb2JqZWN0IGRpcmVjdG9yeSBhbmQgbGlicmFyeSBuYW1lLgorKwlpZiB0 ZXN0ICJYJGluc3RhbGxlZCIgPSBYeWVzOyB0aGVuCisrCSAgaWYgdGVzdCAhIC1mICIkbGliZGly LyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAg ZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKKysJICAgIGRpcj0iJGxh ZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgorKwkgICAgbGliZGlyPSIkYWJzX2xhZGly IgorKwkgIGVsc2UKKysJICAgIGRpcj0iJGxpYmRpciIKKysJICAgIGFic2Rpcj0iJGxpYmRpciIK KysJICBmaQorKwkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0 ZW1wcnBhdGg9eWVzCisrCWVsc2UKKysJICBpZiB0ZXN0ICEgLWYgIiRsYWRpci8kb2JqZGlyLyRs aW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgorKwkgICAgZGly PSIkbGFkaXIiCisrCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlz IHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFi c19sYWRpciIKKysJICBlbHNlCisrCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgorKwkgICAgYWJz ZGlyPSIkYWJzX2xhZGlyLyRvYmpkaXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRo IGxhdGVyCisrCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJ ICBmaQorKwlmaSAjICRpbnN0YWxsZWQgPSB5ZXMKKysJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5s YScgIiRsYW5hbWUiCisrCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKworKwkjIFRoaXMg bGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Blbi4KKysJaWYgdGVzdCAiJHBhc3Mi ID0gZGxwcmVvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciIgJiYgdGVzdCAiJGxp bmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFy aWVzIG1heSAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKKysJICBm aQorKwkgICMgUHJlZmVyIHVzaW5nIGEgc3RhdGljIGxpYnJhcnkgKHNvIHRoYXQgbm8gc2lsbHkg X0RZTkFNSUMgc3ltYm9scworKwkgICMgYXJlIHJlcXVpcmVkIHRvIGxpbmspLgorKwkgIGlmIHRl c3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKysJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHBy ZWZpbGVzICRkaXIvJG9sZF9saWJyYXJ5IgorKwkgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVu ZWQgY29udmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNrCisrCSAgICAjIHRoYXQgdGhleSBhcmUg YmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KKysJICAgIHRlc3QgLXogIiRs aWJkaXIiICYmIFwKKysJCWRscHJlY29udmVuaWVuY2VsaWJzPSIkZGxwcmVjb252ZW5pZW5jZWxp YnMgJGRpci8kb2xkX2xpYnJhcnkiCisrCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBz byB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KKysJICBlbGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0 aGVuCisrCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRkbG5hbWUiCisr CSAgZWxzZQorKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kbGlua2xp YiIKKysJICBmaQorKwlmaSAjICRwYXNzID0gZGxwcmVvcGVuCisrCisrCWlmIHRlc3QgLXogIiRs aWJkaXIiOyB0aGVuCisrCSAgIyBMaW5rIHRoZSBjb252ZW5pZW5jZSBsaWJyYXJ5CisrCSAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xp YnJhcnkgJGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2cs bGluayI7IHRoZW4KKysJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGNv bXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5 ICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxp YnMiICMgdXNlZCBmb3IgcHJvZyxzY2FuIHBhc3MKKysJICBmaQorKwkgIGNvbnRpbnVlCisrCWZp CisrCisrCisrCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nICYmIHRlc3QgIiRwYXNzIiAhPSBs aW5rOyB0aGVuCisrCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRs YWRpciIKKysJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgorKworKwkgIGxpbmthbGxkZXBsaWJz PW5vCisrCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxpYnMiICE9IG5vIHx8IHRlc3QgLXogIiRs aWJyYXJ5X25hbWVzIiB8fAorKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87 IHRoZW4KKysJICAgIGxpbmthbGxkZXBsaWJzPXllcworKwkgIGZpCisrCisrCSAgdG1wX2xpYnM9 CisrCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgY2FzZSAkZGVw bGliIGluCisrCSAgICAtTCopIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCisrCSAg ICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJp cG5hbWVfcmVzdWx0IgorKwkJIDs7CisrCSAgICBlc2FjCisrCSAgICAjIE5lZWQgdG8gbGluayBh Z2FpbnN0IGFsbCBkZXBlbmRlbmN5X2xpYnM/CisrCSAgICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxp YnMiID0geWVzOyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAg ICBlbHNlCisrCSAgICAgICMgTmVlZCB0byBoYXJkY29kZSBzaGFyZWQgbGlicmFyeSBwYXRocwor KwkgICAgICAjIG9yL2FuZCBsaW5rIGFnYWluc3Qgc3RhdGljIGxpYnJhcmllcworKwkgICAgICBu ZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGZp CisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1w X2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNp YWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBf bGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9uZSAjIGZvciBkZXBsaWIKKysJICBjb250 aW51ZQorKwlmaSAjICRsaW5rbW9kZSA9IHByb2cuLi4KKysKKysJaWYgdGVzdCAiJGxpbmttb2Rl LCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFt ZXMiICYmCisrCSAgICAgeyB7IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKKysJ ICAgICAgICAgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicywkaW5zdGFsbGVkIiA9ICJidWlsdCx5 ZXMiOyB9IHx8CisrCSAgICAgICB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisrCSAg ICAjIFdlIG5lZWQgdG8gaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aAorKwkgICAgaWYgdGVzdCAt biAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLXogIiRhdm9pZHRlbXBycGF0aCIgOyB0aGVuCisr CSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rv cmllcy4KKysJICAgICAgY2FzZSAiJHRlbXBfcnBhdGg6IiBpbgorKwkgICAgICAqIiRhYnNkaXI6 IiopIDs7CisrCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7Cisr CSAgICAgIGVzYWMKKysJICAgIGZpCisrCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBh dGguCisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZh dWx0IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGli X2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisr CSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikg OzsKKysJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJ ICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGli X2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisr CSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiop IDs7CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIK KysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpICMgJGxpbmttb2Rl LCRwYXNzID0gcHJvZyxsaW5rLi4uCisrCisrCSAgaWYgdGVzdCAiJGFsbGRlcGxpYnMiID0geWVz ICYmCisrCSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiID0gcGFzc19hbGwgfHwK KysJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYKKysJCSB0ZXN0 IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4KKysJICAgICMgV2Ugb25seSBuZWVkIHRv IHNlYXJjaCBmb3Igc3RhdGljIGxpYnJhcmllcworKwkgICAgY29udGludWUKKysJICBmaQorKwlm aQorKworKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtl ZCBzdGF0aWNhbGx5CisrCXVzZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRpY19saWJzCisrCWlm IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5 ZXM7IHRoZW4KKysJICB1c2Vfc3RhdGljX2xpYnM9bm8KKysJZmkKKysJaWYgdGVzdCAtbiAiJGxp YnJhcnlfbmFtZXMiICYmCisrCSAgIHsgdGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBubyB8fCB0 ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisrCSAgY2FzZSAkaG9zdCBpbgorKwkgICpj eWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCisrCSAgICAgICMgTm8gcG9pbnQgaW4gcmVsaW5r aW5nIERMTHMgYmVjYXVzZSBwYXRocyBhcmUgbm90IGVuY29kZWQKKysJICAgICAgbm90aW5zdF9k ZXBsaWJzPSIkbm90aW5zdF9kZXBsaWJzICRsaWIiCisrCSAgICAgIG5lZWRfcmVsaW5rPW5vCisr CSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vOyB0aGVuCisr CSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorKwkgICAgICBu ZWVkX3JlbGluaz15ZXMKKysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJICAjIFRoaXMg aXMgYSBzaGFyZWQgbGlicmFyeQorKworKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2Fu J3QgbGluayBhZ2FpbnN0IC1tb2R1bGUncyBvbiBzb21lCisrCSAgIyBzeXN0ZW1zIChkYXJ3aW4p LiAgRG9uJ3QgYmxlYXQgYWJvdXQgZGxvcGVuZWQgbW9kdWxlcyB0aG91Z2ghCisrCSAgZGxvcGVu bW9kdWxlPSIiCisrCSAgZm9yIGRscHJlbW9kdWxldGVzdCBpbiAkZGxwcmVmaWxlczsgZG8KKysJ ICAgIGlmIHRlc3QgIlgkZGxwcmVtb2R1bGV0ZXN0IiA9ICJYJGxpYiI7IHRoZW4KKysJICAgICAg ZGxvcGVubW9kdWxlPSIkZGxwcmVtb2R1bGV0ZXN0IgorKwkgICAgICBicmVhaworKwkgICAgZmkK KysJICBkb25lCisrCSAgaWYgdGVzdCAteiAiJGRsb3Blbm1vZHVsZSIgJiYgdGVzdCAiJHNob3Vs ZG5vdGxpbmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJICAgICRFQ0hP CisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICAkRUNITyAi KioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIGV4ZWN1dGFibGUgJG91dHB1dCBhZ2FpbnN0IHRoZSBs b2FkYWJsZSBtb2R1bGUiCisrCSAgICBlbHNlCisrCSAgICAgICRFQ0hPICIqKiogV2FybmluZzog TGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBt b2R1bGUiCisrCSAgICBmaQorKwkgICAgJEVDSE8gIioqKiAkbGlua2xpYiBpcyBub3QgcG9ydGFi bGUhIgorKwkgIGZpCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJgorKwkgICAgIHRl c3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgICAjIEhhcmRjb2RlIHRo ZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhl IHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2Fz ZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFic2RpciAiKikgOzsK KysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIg JGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGgg JGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgY2Fz ZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsK KysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoi ICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBh dGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZp CisrCisrCSAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIjsgdGhl bgorKwkgICAgIyBmaWd1cmUgb3V0IHRoZSBzb25hbWUKKysJICAgIHNldCBkdW1teSAkbGlicmFy eV9uYW1lcworKwkgICAgc2hpZnQKKysJICAgIHJlYWxuYW1lPSIkMSIKKysJICAgIHNoaWZ0Cisr CSAgICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJICAgICMg dXNlIGRsbmFtZSBpZiB3ZSBnb3QgaXQuIGl0J3MgcGVyZmVjdGx5IGdvb2QsIG5vPworKwkgICAg aWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KKysJICAgICAgc29uYW1lPSIkZGxuYW1lIgorKwkg ICAgZWxpZiB0ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0aGVuCisrCSAgICAgICMgYmxlaCB3aW5k b3dzCisrCSAgICAgIGNhc2UgJGhvc3QgaW4KKysJICAgICAgKmN5Z3dpbiogfCBtaW5ndyogfCAq Y2VnY2MqKQorKwkgICAgICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisrCQltYWpvcj0k ZnVuY19hcml0aF9yZXN1bHQKKysJCXZlcnN1ZmZpeD0iLSRtYWpvciIKKysJCTs7CisrCSAgICAg IGVzYWMKKysJICAgICAgZXZhbCBzb25hbWU9XCIkc29uYW1lX3NwZWNcIgorKwkgICAgZWxzZQor KwkgICAgICBzb25hbWU9IiRyZWFsbmFtZSIKKysJICAgIGZpCisrCisrCSAgICAjIE1ha2UgYSBu ZXcgbmFtZSBmb3IgdGhlIGV4dHJhY3RfZXhwc3ltc19jbWRzIHRvIHVzZQorKwkgICAgc29yb290 PSIkc29uYW1lIgorKwkgICAgZnVuY19iYXNlbmFtZSAiJHNvcm9vdCIKKysJICAgIHNvbmFtZT0i JGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICAgZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5kbGwn ICIkc29uYW1lIgorKwkgICAgbmV3bGliPWxpYmltcC0kZnVuY19zdHJpcG5hbWVfcmVzdWx0LmEK KysKKysJICAgICMgSWYgdGhlIGxpYnJhcnkgaGFzIG5vIGV4cG9ydCBsaXN0LCB0aGVuIGNyZWF0 ZSBvbmUgbm93CisrCSAgICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kc29uYW1lLWRlZiI7 IHRoZW4gOgorKwkgICAgZWxzZQorKwkgICAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZXhw b3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBcYCRzb25hbWUnIgorKwkgICAgICBmdW5jX2V4ZWN1dGVf Y21kcyAiJGV4dHJhY3RfZXhwc3ltc19jbWRzIiAnZXhpdCAkPycKKysJICAgIGZpCisrCisrCSAg ICAjIENyZWF0ZSAkbmV3bGliCisrCSAgICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbmV3 bGliIjsgdGhlbiA6OyBlbHNlCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBpbXBv cnQgbGlicmFyeSBmb3IgXGAkc29uYW1lJyIKKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRv bGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIgJ2V4aXQgJD8nCisrCSAgICBmaQorKwkgICAg IyBtYWtlIHN1cmUgdGhlIGxpYnJhcnkgdmFyaWFibGVzIGFyZSBwb2ludGluZyB0byB0aGUgbmV3 IGxpYnJhcnkKKysJICAgIGRpcj0kb3V0cHV0X29iamRpcgorKwkgICAgbGlua2xpYj0kbmV3bGli CisrCSAgZmkgIyB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiCisrCisr CSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiICE9IHJlbGluazsg dGhlbgorKwkgICAgYWRkX3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9Cisr CSAgICBsaWJfbGlua2VkPXllcworKwkgICAgY2FzZSAkaGFyZGNvZGVfYWN0aW9uIGluCisrCSAg ICBpbW1lZGlhdGUgfCB1bnN1cHBvcnRlZCkKKysJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2Rp cmVjdCIgPSBubzsgdGhlbgorKwkJYWRkPSIkZGlyLyRsaW5rbGliIgorKwkJY2FzZSAkaG9zdCBp bgorKwkJICAqLSotc2NvMy4ydjUuMC5bMDI0XSopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAg Ki0qLXN5c3Y0KnV3MiopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLXN5c3Y1T3BlblVO SVgqIHwgKi0qLXN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCBcCisrCQkgICAgKi0qLXVuaXh3 YXJlNyopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLWRhcndpbiogKQorKwkJICAgICMg aWYgdGhlIGxpYiBpcyBhIChub24tZGxvcGVuZWQpIG1vZHVsZSB0aGVuIHdlIGNhbiBub3QKKysJ CSAgICAjIGxpbmsgYWdhaW5zdCBpdCwgc29tZW9uZSBpcyBpZ25vcmluZyB0aGUgZWFybGllciB3 YXJuaW5ncworKwkJICAgIGlmIC91c3IvYmluL2ZpbGUgLUwgJGFkZCAyPiAvZGV2L251bGwgfAor KwkJCSAkR1JFUCAiOiBbXjpdKiBidW5kbGUiID4vZGV2L251bGwgOyB0aGVuCisrCQkgICAgICBp ZiB0ZXN0ICJYJGRsb3Blbm1vZHVsZSIgIT0gIlgkbGliIjsgdGhlbgorKwkJCSRFQ0hPICIqKiog V2FybmluZzogbGliICRsaW5rbGliIGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQgbGlicmFyeSIK KysJCQlpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgorKwkJCSAgJEVDSE8KKysJCQkg ICRFQ0hPICIqKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZl IGF2YWlsYWJsZSIKKysJCQkgICRFQ0hPICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWls LCBzb3JyeSIKKysJCQllbHNlCisrCQkJICBhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgorKwkJCWZp CisrCQkgICAgICBlbGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKysJCQlhZGQ9IiRk aXIvJG9sZF9saWJyYXJ5IgorKwkJICAgICAgZmkKKysJCSAgICBmaQorKwkJZXNhYworKwkgICAg ICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IG5vOyB0aGVuCisrCQljYXNlICRob3N0 IGluCisrCQkqLSotc3Vub3MqKSBhZGRfc2hsaWJwYXRoPSIkZGlyIiA7OworKwkJZXNhYworKwkJ YWRkX2Rpcj0iLUwkZGlyIgorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRo YXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IG5vOyB0aGVuCisrCQlhZGRfc2hsaWJwYXRoPSIkZGly IgorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbHNlCisrCQlsaWJfbGlua2VkPW5vCisrCSAg ICAgIGZpCisrCSAgICAgIDs7CisrCSAgICByZWxpbmspCisrCSAgICAgIGlmIHRlc3QgIiRoYXJk Y29kZV9kaXJlY3QiID0geWVzICYmCisrCSAgICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGUiID0gbm87IHRoZW4KKysJCWFkZD0iJGRpci8kbGlua2xpYiIKKysJICAgICAgZWxp ZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKysJCWFkZF9kaXI9Ii1MJGRp ciIKKysJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGlu c3RhbGxlZCB0by4KKysJCWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisrCQkg IGNhc2UgJGxpYmRpciBpbgorKwkJICAgIFtcXC9dKikKKysJCSAgICAgIGFkZF9kaXI9IiRhZGRf ZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCisrCQkgICAgICA7OworKwkJICBlc2FjCisr CQlmaQorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxp YnBhdGhfdmFyIiA9IHllczsgdGhlbgorKwkJYWRkX3NobGlicGF0aD0iJGRpciIKKysJCWFkZD0i LWwkbmFtZSIKKysJICAgICAgZWxzZQorKwkJbGliX2xpbmtlZD1ubworKwkgICAgICBmaQorKwkg ICAgICA7OworKwkgICAgKikgbGliX2xpbmtlZD1ubyA7OworKwkgICAgZXNhYworKworKwkgICAg aWYgdGVzdCAiJGxpYl9saW5rZWQiICE9IHllczsgdGhlbgorKwkgICAgICBmdW5jX2ZhdGFsX2Nv bmZpZ3VyYXRpb24gInVuc3VwcG9ydGVkIGhhcmRjb2RlIHByb3BlcnRpZXMiCisrCSAgICBmaQor KworKwkgICAgaWYgdGVzdCAtbiAiJGFkZF9zaGxpYnBhdGgiOyB0aGVuCisrCSAgICAgIGNhc2Ug OiRjb21waWxlX3NobGlicGF0aDogaW4KKysJICAgICAgKiI6JGFkZF9zaGxpYnBhdGg6IiopIDs7 CisrCSAgICAgICopIGNvbXBpbGVfc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkYWRkX3No bGlicGF0aDoiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICIkbGlu a21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgY29tcGls ZV9kZXBsaWJzPSIkYWRkX2RpciAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICB0ZXN0IC1uICIk YWRkIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGQgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGVs c2UKKysJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBs aWJzIgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgor KwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB5ZXMgJiYKKysJCSB0ZXN0ICIk aGFyZGNvZGVfbWludXNfTCIgIT0geWVzICYmCisrCQkgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0 aF92YXIiID0geWVzOyB0aGVuCisrCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkJ KiI6JGxpYmRpcjoiKikgOzsKKysJCSopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3No bGlicGF0aCRsaWJkaXI6IiA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBm aQorKworKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJl bGluazsgdGhlbgorKwkgICAgYWRkX3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBh ZGQ9CisrCSAgICAjIEZpbmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhh cmRjb2RlIGl0LgorKwkgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXMgJiYKKysJ ICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KKysJICAg ICAgYWRkPSIkbGliZGlyLyRsaW5rbGliIgorKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWlu dXNfTCIgPSB5ZXM7IHRoZW4KKysJICAgICAgYWRkX2Rpcj0iLUwkbGliZGlyIgorKwkgICAgICBh ZGQ9Ii1sJG5hbWUiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9 IHllczsgdGhlbgorKwkgICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkgICAg ICAqIjokbGliZGlyOiIqKSA7OworKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5h bGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBhZGQ9Ii1s JG5hbWUiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVu CisrCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCisrCQkgdGVzdCAtZiAi JGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgorKwkJYWRkPSIkaW5zdF9w cmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIKKysJICAgICAgZWxzZQorKwkJYWRkPSIkbGliZGly LyRsaW5rbGliIgorKwkgICAgICBmaQorKwkgICAgZWxzZQorKwkgICAgICAjIFdlIGNhbm5vdCBz ZWVtIHRvIGhhcmRjb2RlIGl0LCBndWVzcyB3ZSdsbCBmYWtlIGl0LgorKwkgICAgICBhZGRfZGly PSItTCRsaWJkaXIiCisrCSAgICAgICMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9u IHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKysJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJl Zml4X2RpciI7IHRoZW4KKysJCWNhc2UgJGxpYmRpciBpbgorKwkJICBbXFwvXSopCisrCQkgICAg YWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKysJCSAgICA7Owor KwkJZXNhYworKwkgICAgICBmaQorKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBmaQorKwor KwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgICAgdGVzdCAtbiAi JGFkZF9kaXIiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRhZGRfZGlyICRmaW5hbGl6ZV9kZXBsaWJz IgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkICRmaW5h bGl6ZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYg ZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRl cGxpYnM9IiRhZGQgJGRlcGxpYnMiCisrCSAgICBmaQorKwkgIGZpCisrCWVsaWYgdGVzdCAiJGxp bmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAjIEhlcmUgd2UgYXNzdW1lIHRoYXQgb25lIG9mIGhh cmRjb2RlX2RpcmVjdCBvciBoYXJkY29kZV9taW51c19MCisrCSAgIyBpcyBub3QgdW5zdXBwb3J0 ZWQuICBUaGlzIGlzIHZhbGlkIG9uIGFsbCBrbm93biBzdGF0aWMgYW5kCisrCSAgIyBzaGFyZWQg cGxhdGZvcm1zLgorKwkgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHVuc3VwcG9ydGVk OyB0aGVuCisrCSAgICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIGxpbmtsaWI9IiRvbGRfbGli cmFyeSIKKysJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkY29tcGlsZV9kZXBs aWJzIgorKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRpci8kbGlua2xpYiAkZmluYWxpemVfZGVw bGlicyIKKysJICBlbHNlCisrCSAgICBjb21waWxlX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRj b21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSItbCRuYW1lIC1MJGRpciAk ZmluYWxpemVfZGVwbGlicyIKKysJICBmaQorKwllbGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiID0geWVzOyB0aGVuCisrCSAgIyBOb3QgYSBzaGFyZWQgbGlicmFyeQorKwkgIGlmIHRlc3Qg IiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KKysJICAgICMgV2UncmUg dHJ5aW5nIGxpbmsgYSBzaGFyZWQgbGlicmFyeSBhZ2FpbnN0IGEgc3RhdGljIG9uZQorKwkgICAg IyBidXQgdGhlIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgaXQuCisrCisrCSAgICAjIEp1c3QgcHJp bnQgYSB3YXJuaW5nIGFuZCBhZGQgdGhlIGxpYnJhcnkgdG8gZGVwZW5kZW5jeV9saWJzIHNvCisr CSAgICAjIHRoYXQgdGhlIHByb2dyYW0gY2FuIGJlIGxpbmtlZCBhZ2FpbnN0IHRoZSBzdGF0aWMg bGlicmFyeS4KKysJICAgICRFQ0hPCisrCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IFRoaXMgc3lz dGVtIGNhbiBub3QgbGluayB0byBzdGF0aWMgbGliIGFyY2hpdmUgJGxpYi4iCisrCSAgICAkRUNI TyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0 aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJICAgICRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBs aWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkgICAgJEVD SE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBh cHBlYXIgdG8gaGF2ZS4iCisrCSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorKwkg ICAgICAkRUNITyAiKioqIEJ1dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnks IGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUgIgorKwkgICAgICAkRUNITyAiKioqIGEgc3RhdGlj IG1vZHVsZSwgdGhhdCBzaG91bGQgd29yayBhcyBsb25nIGFzIHRoZSBkbG9wZW5pbmcgYXBwbGlj YXRpb24iCisrCSAgICAgICRFQ0hPICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxh ZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCisrCSAgICAgIGlmIHRlc3QgLXogIiRn bG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCQkkRUNITworKwkJJEVDSE8gIioqKiBIb3dldmVy LCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3lt Ym9sIgorKwkJJEVDSE8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3Ig ZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCisrCQkkRUNITyAiKioqIG5vdCBmaW5kIHN1 Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkJ JEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5 IGhlbHAuIgorKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0g bm87IHRoZW4KKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9saWJz PXllcworKwkgICAgICBlbHNlCisrCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAgZmkK KysJICAgIGZpCisrCSAgZWxzZQorKwkgICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRl cGxpYnMiCisrCSAgICBsaW5rX3N0YXRpYz15ZXMKKysJICBmaQorKwlmaSAjIGxpbmsgc2hhcmVk L3N0YXRpYyBsaWJyYXJ5PworKworKwlpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisr CSAgaWYgdGVzdCAtbiAiJGRlcGVuZGVuY3lfbGlicyIgJiYKKysJICAgICB7IHRlc3QgIiRoYXJk Y29kZV9pbnRvX2xpYnMiICE9IHllcyB8fAorKwkgICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJz IiA9IHllcyB8fAorKwkgICAgICAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IHllczsgfTsgdGhlbgor KwkgICAgIyBFeHRyYWN0IC1SIGZyb20gZGVwZW5kZW5jeV9saWJzCisrCSAgICB0ZW1wX2RlcGxp YnM9CisrCSAgICBmb3IgbGliZGlyIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICAgIGNh c2UgJGxpYmRpciBpbgorKwkgICAgICAtUiopIGZ1bmNfc3RyaXBuYW1lICctUicgJycgIiRsaWJk aXIiCisrCSAgICAgICAgICAgdGVtcF94cnBhdGg9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJ ICAgY2FzZSAiICR4cnBhdGggIiBpbgorKwkJICAgKiIgJHRlbXBfeHJwYXRoICIqKSA7OworKwkJ ICAgKikgeHJwYXRoPSIkeHJwYXRoICR0ZW1wX3hycGF0aCI7OworKwkJICAgZXNhYzs7CisrCSAg ICAgICopIHRlbXBfZGVwbGlicz0iJHRlbXBfZGVwbGlicyAkbGliZGlyIjs7CisrCSAgICAgIGVz YWMKKysJICAgIGRvbmUKKysJICAgIGRlcGVuZGVuY3lfbGlicz0iJHRlbXBfZGVwbGlicyIKKysJ ICBmaQorKworKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkYWJz ZGlyIgorKwkgICMgTGluayBhZ2FpbnN0IHRoaXMgbGlicmFyeQorKwkgIHRlc3QgIiRsaW5rX3N0 YXRpYyIgPSBubyAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRhYnNfbGFkaXIvJGxhbmFtZSAkbmV3 ZGVwZW5kZW5jeV9saWJzIgorKwkgICMgLi4uIGFuZCBpdHMgZGVwZW5kZW5jeV9saWJzCisrCSAg dG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAg bmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgICBp ZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBp bgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJz ICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRt cF9saWJzICRkZXBsaWIiCisrCSAgZG9uZQorKworKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBs aWJzIiAhPSBubzsgdGhlbgorKwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVw ZW5kZW5jeSBsaWJyYXJpZXMKKysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsg ZG8KKysJICAgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIg OzsKKysJICAgICAgKi5sYSkKKysJICAgICAgICBmdW5jX2Rpcm5hbWUgIiRkZXBsaWIiICIiICIu IgorKwkJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysJCSMgV2UgbmVlZCBhbiBhYnNvbHV0 ZSBwYXRoLgorKwkJY2FzZSAkZGlyIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFi c2Rpcj0iJGRpciIgOzsKKysJCSopCisrCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysJ CSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KKysJCSAgICBmdW5jX3dhcm5pbmcgImNhbm5v dCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKKysJCSAgICBh YnNkaXI9IiRkaXIiCisrCQkgIGZpCisrCQkgIDs7CisrCQllc2FjCisrCQlpZiAkR1JFUCAiXmlu c3RhbGxlZD1ubyIgJGRlcGxpYiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJY2FzZSAkaG9zdCBpbgor KwkJKi0qLWRhcndpbiopCisrCQkgIGRlcGRlcGw9CisrCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1l cz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAK KysJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgorKwkJICAgIGZvciB0 bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbworKwkJICAgICAgZGVwZGVwbD0kdG1wCisrCQkg ICAgZG9uZQorKwkJICAgIGlmIHRlc3QgLWYgIiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIgOyB0 aGVuCisrCQkgICAgICBkZXBkZXBsPSIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiCisrCQkgICAg ICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MfSAtTCAkZGVwZGVwbCB8IGF3ayAne2lmIChO UiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKKysgICAgICAgICAgICAgICAgICAgICAgaWYgdGVz dCAteiAiJGRhcndpbl9pbnN0YWxsX25hbWUiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MNjR9IC1MICRkZXBkZXBsICB8IGF3ayAn e2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKKysgICAgICAgICAgICAgICAgICAgICAg ZmkKKysJCSAgICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHt3bH0tZHlsaWJf ZmlsZSAke3dsfSR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKKysJCSAgICAgIGxp bmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAtZHlsaWJfZmlsZSAke2Rhcndpbl9pbnN0YWxsX25h bWV9OiR7ZGVwZGVwbH0iCisrCQkgICAgICBwYXRoPQorKwkJICAgIGZpCisrCQkgIGZpCisrCQkg IDs7CisrCQkqKQorKwkJICBwYXRoPSItTCRhYnNkaXIvJG9iamRpciIKKysJCSAgOzsKKysJCWVz YWMKKysJCWVsc2UKKysJCSAgZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwo LipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICAg IGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNo aXZlIgorKwkJICB0ZXN0ICIkYWJzZGlyIiAhPSAiJGxpYmRpciIgJiYgXAorKwkJICAgIGZ1bmNf d2FybmluZyAiXGAkZGVwbGliJyBzZWVtcyB0byBiZSBtb3ZlZCIKKysKKysJCSAgcGF0aD0iLUwk YWJzZGlyIgorKwkJZmkKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgY2FzZSAiICRkZXBs aWJzICIgaW4KKysJICAgICAgKiIgJHBhdGggIiopIDs7CisrCSAgICAgICopIGRlcGxpYnM9IiRw YXRoICRkZXBsaWJzIiA7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgZmkgIyBsaW5r X2FsbF9kZXBsaWJzICE9IG5vCisrCWZpICMgbGlua21vZGUgPSBsaWIKKysgICAgICBkb25lICMg Zm9yIGRlcGxpYiBpbiAkbGlicworKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4K KysJaWYgdGVzdCAiJGxpbmttb2RlIiA9ICJwcm9nIjsgdGhlbgorKwkgIGNvbXBpbGVfZGVwbGli cz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRjb21waWxlX2RlcGxpYnMiCisrCSAgZmlu YWxpemVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBs aWJzIgorKwllbHNlCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAiYCRFQ0hP ICJYICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpc KS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKysJZmkKKysgICAgICBmaQorKyAgICAg IGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKKysgICAgICBpZiB0ZXN0ICIk cGFzcyIgPSBkbHByZW9wZW47IHRoZW4KKysJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBsaWJyYXJp ZXMgYmVmb3JlIG90aGVyIGxpYnJhcmllcworKwlmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7 IGRvCisrCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJZG9uZQorKyAgICAgIGZpCisr ICAgICAgaWYgdGVzdCAiJHBhc3MiICE9IGRsb3BlbjsgdGhlbgorKwlpZiB0ZXN0ICIkcGFzcyIg IT0gY29udjsgdGhlbgorKwkgICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250YWlucyBv bmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICBsaWJfc2VhcmNoX3BhdGg9CisrCSAgZm9yIGRp ciBpbiAkbmV3bGliX3NlYXJjaF9wYXRoOyBkbworKwkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0 aCAiIGluCisrCSAgICAqIiAkZGlyICIqKSA7OworKwkgICAgKikgbGliX3NlYXJjaF9wYXRoPSIk bGliX3NlYXJjaF9wYXRoICRkaXIiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwkgIG5ld2xp Yl9zZWFyY2hfcGF0aD0KKysJZmkKKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiAhPSAi cHJvZyxsaW5rIjsgdGhlbgorKwkgIHZhcnM9ImRlcGxpYnMiCisrCWVsc2UKKysJICB2YXJzPSJj b21waWxlX2RlcGxpYnMgZmluYWxpemVfZGVwbGlicyIKKysJZmkKKysJZm9yIHZhciBpbiAkdmFy cyBkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgIyBBZGQgbGlicmFyaWVzIHRvICR2YXIgaW4gcmV2 ZXJzZSBvcmRlcgorKwkgIGV2YWwgdG1wX2xpYnM9XCJcJCR2YXJcIgorKwkgIG5ld19saWJzPQor KwkgIGZvciBkZXBsaWIgaW4gJHRtcF9saWJzOyBkbworKwkgICAgIyBGSVhNRTogUGVkYW50aWNh bGx5LCB0aGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBkbywgc28KKysJICAgICMgICAgICAgIHRo YXQgc29tZSBuYXN0eSBkZXBlbmRlbmN5IGxvb3AgaXNuJ3QgYWNjaWRlbnRhbGx5CisrCSAgICAj ICAgICAgICBicm9rZW46CisrCSAgICAjbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIgorKwkg ICAgIyBQcmFnbWF0aWNhbGx5LCB0aGlzIHNlZW1zIHRvIGNhdXNlIHZlcnkgZmV3IHByb2JsZW1z IGluCisrCSAgICAjIHByYWN0aWNlOgorKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCop IG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJICAgIC1SKikgOzsKKysJICAgICop CisrCSAgICAgICMgQW5kIGhlcmUgaXMgdGhlIHJlYXNvbjogd2hlbiBhIGxpYnJhcnkgYXBwZWFy cyBtb3JlCisrCSAgICAgICMgdGhhbiBvbmNlIGFzIGFuIGV4cGxpY2l0IGRlcGVuZGVuY2Ugb2Yg YSBsaWJyYXJ5LCBvcgorKwkgICAgICAjIGlzIGltcGxpY2l0bHkgbGlua2VkIGluIG1vcmUgdGhh biBvbmNlIGJ5IHRoZQorKwkgICAgICAjIGNvbXBpbGVyLCBpdCBpcyBjb25zaWRlcmVkIHNwZWNp YWwsIGFuZCBtdWx0aXBsZQorKwkgICAgICAjIG9jY3VycmVuY2VzIHRoZXJlb2YgYXJlIG5vdCBy ZW1vdmVkLiAgQ29tcGFyZSB0aGlzCisrCSAgICAgICMgd2l0aCBoYXZpbmcgdGhlIHNhbWUgbGli cmFyeSBiZWluZyBsaXN0ZWQgYXMgYQorKwkgICAgICAjIGRlcGVuZGVuY3kgb2YgbXVsdGlwbGUg b3RoZXIgbGlicmFyaWVzOiBpbiB0aGlzIGNhc2UsCisrCSAgICAgICMgd2Uga25vdyAocGVkYW50 aWNhbGx5LCB3ZSBhc3N1bWUpIHRoZSBsaWJyYXJ5IGRvZXMgbm90CisrCSAgICAgICMgbmVlZCB0 byBiZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UsIHNvIHdlIGtlZXAgb25seSB0aGUKKysJICAgICAg IyBsYXN0IGNvcHkuICBUaGlzIGlzIG5vdCBhbHdheXMgcmlnaHQsIGJ1dCBpdCBpcyByYXJlCisr CSAgICAgICMgZW5vdWdoIHRoYXQgd2UgcmVxdWlyZSB1c2VycyB0aGF0IHJlYWxseSBtZWFuIHRv IHBsYXkKKysJICAgICAgIyBzdWNoIHVucG9ydGFibGUgbGlua2luZyB0cmlja3MgdG8gbGluayB0 aGUgbGlicmFyeQorKwkgICAgICAjIHVzaW5nIC1XbCwtbG5hbWUsIHNvIHRoYXQgbGlidG9vbCBk b2VzIG5vdCBjb25zaWRlciBpdAorKwkgICAgICAjIGZvciBkdXBsaWNhdGUgcmVtb3ZhbC4KKysJ ICAgICAgY2FzZSAiICRzcGVjaWFsZGVwbGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiop IG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJICAgICAgKikKKysJCWNhc2UgIiAk bmV3X2xpYnMgIiBpbgorKwkJKiIgJGRlcGxpYiAiKikgOzsKKysJCSopIG5ld19saWJzPSIkZGVw bGliICRuZXdfbGlicyIgOzsKKysJCWVzYWMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAg OzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBp biAkbmV3X2xpYnM7IGRvCisrCSAgICBjYXNlICRkZXBsaWIgaW4KKysJICAgIC1MKikKKysJICAg ICAgY2FzZSAiICR0bXBfbGlicyAiIGluCisrCSAgICAgICoiICRkZXBsaWIgIiopIDs7CisrCSAg ICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkg ICAgICA7OworKwkgICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworKwkgICAg ZXNhYworKwkgIGRvbmUKKysJICBldmFsICR2YXI9XCIkdG1wX2xpYnNcIgorKwlkb25lICMgZm9y IHZhcgorKyAgICAgIGZpCisrICAgICAgIyBMYXN0IHN0ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMg ZnJvbSBkZXBlbmRlbmN5X2xpYnMKKysgICAgICAjICh0aGV5IHN0YXkgaW4gZGVwbGlicykKKysg ICAgICB0bXBfbGlicz0KKysgICAgICBmb3IgaSBpbiAkZGVwZW5kZW5jeV9saWJzIDsgZG8KKysJ Y2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoICIgaW4K KysJKiIgJGkgIiopCisrCSAgaT0iIgorKwkgIDs7CisrCWVzYWMKKysJaWYgdGVzdCAtbiAiJGki IDsgdGhlbgorKwkgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGkiCisrCWZpCisrICAgICAgZG9uZQor KyAgICAgIGRlcGVuZGVuY3lfbGlicz0kdG1wX2xpYnMKKysgICAgZG9uZSAjIGZvciBwYXNzCisr ICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCisrICAgICAgZGxmaWxlcz0iJG5l d2RsZmlsZXMiCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRl c3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKysgICAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVm aWxlcyIKKysgICAgZmkKKysKKysgICAgY2FzZSAkbGlua21vZGUgaW4KKysgICAgb2xkbGliKQor KyAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYi ICE9IG5vOyB0aGVuCisrCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBh cmNoaXZlcyIKKysgICAgICBmaQorKworKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KKysgICAg ICAqXCAtbCogfCAqXCAtTCopCisrCWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBp Z25vcmVkIGZvciBhcmNoaXZlcyIgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgdGVzdCAtbiAi JHJwYXRoIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIGFy Y2hpdmVzIgorKworKyAgICAgIHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKKysJZnVuY193YXJuaW5n ICJcYC1SJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkdmlu Zm8iICYmIFwKKysJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8vLXZlcnNpb24tbnVtYmVy JyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIg JiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVz IgorKworKyAgICAgIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyRleHBvcnRfc3ltYm9sc19yZWdl eCIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZv ciBhcmNoaXZlcyIKKysKKysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRp bmcgb2xkIGxpYnJhcmllcy4KKysgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgICAgICBv bGRsaWJzPSIkb3V0cHV0IgorKyAgICAgIG9ianM9IiRvYmpzJG9sZF9kZXBsaWJzIgorKyAgICAg IDs7CisrCisrICAgIGxpYikKKysgICAgICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxp YnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScuCisrICAgICAgY2FzZSAkb3V0cHV0bmFt ZSBpbgorKyAgICAgIGxpYiopCisrCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0 bmFtZSIKKysJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWV2YWwgc2hhcmVkX2V4dD1c IiRzaHJleHRfY21kc1wiCisrCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorKwk7Owor KyAgICAgICopCisrCXRlc3QgIiRtb2R1bGUiID0gbm8gJiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVs cCAibGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgbXVzdCBiZWdpbiB3aXRoIFxgbGliJyIKKysK KysJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0gbm87IHRoZW4KKysJICAjIEFkZCB0aGUg ImxpYiIgcHJlZml4IGZvciBtb2R1bGVzIGlmIHJlcXVpcmVkCisrCSAgZnVuY19zdHJpcG5hbWUg JycgJy5sYScgIiRvdXRwdXRuYW1lIgorKwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAor KwkgIGV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisrCSAgZXZhbCBsaWJuYW1lPVwi JGxpYm5hbWVfc3BlY1wiCisrCWVsc2UKKysJICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91 dHB1dG5hbWUiCisrCSAgbGlibmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCWZpCisrCTs7 CisrICAgICAgZXNhYworKworKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgorKwlpZiB0 ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisrCSAgZnVuY19m YXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20g bm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiCisrCWVsc2UKKysJICAkRUNI TworKwkgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91 dHB1dCBhZ2FpbnN0IHRoZSBub24tbGlidG9vbCIKKysJICAkRUNITyAiKioqIG9iamVjdHMgJG9i anMgaXMgbm90IHBvcnRhYmxlISIKKysJICBsaWJvYmpzPSIkbGlib2JqcyAkb2JqcyIKKysJZmkK KysgICAgICBmaQorKworKyAgICAgIHRlc3QgIiRkbHNlbGYiICE9IG5vICYmIFwKKysJZnVuY193 YXJuaW5nICJcYC1kbG9wZW4gc2VsZicgaXMgaWdub3JlZCBmb3IgbGlidG9vbCBsaWJyYXJpZXMi CisrCisrICAgICAgc2V0IGR1bW15ICRycGF0aAorKyAgICAgIHNoaWZ0CisrICAgICAgdGVzdCAi JCMiIC1ndCAxICYmIFwKKysJZnVuY193YXJuaW5nICJpZ25vcmluZyBtdWx0aXBsZSBcYC1ycGF0 aCdzIGZvciBhIGxpYnRvb2wgbGlicmFyeSIKKysKKysgICAgICBpbnN0YWxsX2xpYmRpcj0iJDEi CisrCisrICAgICAgb2xkbGlicz0KKysgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisr CWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBCdWlsZGlu ZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4KKysJICAjIFNvbWUgY29tcGlsZXJzIGhh dmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lvbiBzbworKwkgICMgY29udmVuaWVuY2Ug bGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgorKwkgICMgYXJjaGl2 ZSBub3JtYWxseSB3b3VsZC4KKysJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4k bGliZXh0ICRvbGRsaWJzIgorKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5pZW5jZQorKwkg IGJ1aWxkX29sZF9saWJzPXllcworKwlmaQorKworKwl0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJ ICBmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGlnbm9y ZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKKysKKysJdGVzdCAtbiAiJHJlbGVhc2UiICYm IFwKKysJICBmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmll bmNlIGxpYnJhcmllcyIKKysgICAgICBlbHNlCisrCisrCSMgUGFyc2UgdGhlIHZlcnNpb24gaW5m b3JtYXRpb24gYXJndW1lbnQuCisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSc6JworKwlzZXQgZHVt bXkgJHZpbmZvIDAgMCAwCisrCXNoaWZ0CisrCUlGUz0iJHNhdmVfaWZzIgorKworKwl0ZXN0IC1u ICIkNyIgJiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVscCAidG9vIG1hbnkgcGFyYW1ldGVycyB0byBc YC12ZXJzaW9uLWluZm8nIgorKworKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBudW1iZXJz IHRvIGxpYnRvb2wgYWdlcworKwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGggLmxh IGZpbGVzIGFuZCBhdHRlbXB0cworKwkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9y ZSBjb21wcmVoZW5zaWJsZQorKworKwljYXNlICR2aW5mb19udW1iZXIgaW4KKysJeWVzKQorKwkg IG51bWJlcl9tYWpvcj0iJDEiCisrCSAgbnVtYmVyX21pbm9yPSIkMiIKKysJICBudW1iZXJfcmV2 aXNpb249IiQzIgorKwkgICMKKysJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28ga2luZHMg LS0gdGhvc2UgdGhhdAorKwkgICMgdXNlIHRoZSBjdXJyZW50IHJldmlzaW9uIGFzIHRoZSBtYWpv ciB2ZXJzaW9uCisrCSAgIyBhbmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2Ug YXMKKysJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4CisrCSAg IyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KKysJICAjCisrCSAgY2Fz ZSAkdmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2lufGxpbnV4fG9zZnx3aW5kb3dzfG5vbmUpCisr CSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJy ZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAg cmV2aXNpb249IiRudW1iZXJfcmV2aXNpb24iCisrCSAgICA7OworKwkgIGZyZWVic2QtYW91dHxm cmVlYnNkLWVsZnxzdW5vcykKKysJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCisrCSAgICBy ZXZpc2lvbj0iJG51bWJlcl9taW5vciIKKysJICAgIGFnZT0iMCIKKysJICAgIDs7CisrCSAgaXJp eHxub25zdG9wdXgpCisrCSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21p bm9yCisrCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgYWdlPSIkbnVtYmVy X21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCisrCSAgICBsdF9pcml4X2lu Y3JlbWVudD1ubworKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJbm8pCisrCSAgY3VycmVu dD0iJDEiCisrCSAgcmV2aXNpb249IiQyIgorKwkgIGFnZT0iJDMiCisrCSAgOzsKKysJZXNhYwor KworKwkjIENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJzLgor KwljYXNlICRjdXJyZW50IGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18 WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikK KysJICBmdW5jX2Vycm9yICJDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2 ZSBpbnRlZ2VyIgorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQg dmVyc2lvbiBpbmZvcm1hdGlvbiIKKysJICA7OworKwllc2FjCisrCisrCWNhc2UgJHJldmlzaW9u IGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTld WzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9y ICJSRVZJU0lPTiBcYCRyZXZpc2lvbicgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCisr CSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9y bWF0aW9uIgorKwkgIDs7CisrCWVzYWMKKysKKysJY2FzZSAkYWdlIGluCisrCTB8WzEtOV18WzEt OV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVsw LTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJBR0UgXGAkYWdlJyBtdXN0 IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKKysJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5m bycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCisrCSAgOzsKKysJZXNhYworKwor KwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50IjsgdGhlbgorKwkgIGZ1bmNfZXJyb3IgIkFH RSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxg JGN1cnJlbnQnIgorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQg dmVyc2lvbiBpbmZvcm1hdGlvbiIKKysJZmkKKysKKysJIyBDYWxjdWxhdGUgdGhlIHZlcnNpb24g dmFyaWFibGVzLgorKwltYWpvcj0KKysJdmVyc3VmZml4PQorKwl2ZXJzdHJpbmc9CisrCWNhc2Ug JHZlcnNpb25fdHlwZSBpbgorKwlub25lKSA7OworKworKwlkYXJ3aW4pCisrCSAgIyBMaWtlIExp bnV4LCBidXQgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIGF2YWlsYWJsZSBpbgorKwkgICMgdmVy c3RyaW5nIGZvciBjb2RpbmcgaXQgaW50byB0aGUgbGlicmFyeSBoZWFkZXIKKysJICBmdW5jX2Fy aXRoICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2 ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKKysJICAjIERhcndpbiBsZCBkb2Vzbid0 IGxpa2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgorKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgKyAx CisrCSAgbWlub3JfY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKKysJICB4bGN2ZXJzdHJpbmc9 IiR7d2x9LWNvbXBhdGliaWxpdHlfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1 cnJlbnRfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKysJICB2ZXJzdHJp bmc9Ii1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQgLWN1cnJlbnRfdmVyc2lv biAkbWlub3JfY3VycmVudC4kcmV2aXNpb24iCisrCSAgOzsKKysKKysJZnJlZWJzZC1hb3V0KQor KwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9u IjsKKysJICA7OworKworKwlmcmVlYnNkLWVsZikKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkg IHZlcnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7CisrCisrCWlyaXggfCBub25zdG9wdXgpCisr CSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgorKwkgICAgZnVu Y19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBlbHNlCisrCSAgICBmdW5jX2FyaXRoICRjdXJy ZW50IC0gJGFnZSArIDEKKysJICBmaQorKwkgIG1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwor KwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwkgICAgbm9uc3RvcHV4KSB2ZXJzdHJpbmdfcHJl Zml4PW5vbnN0b3B1eCA7OworKwkgICAgKikgICAgICAgICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7 OworKwkgIGVzYWMKKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRyZXZp c2lvbiIKKysKKysJICAjIEFkZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29t cGF0aWJsZSB3aXRoLgorKwkgIGxvb3A9JHJldmlzaW9uCisrCSAgd2hpbGUgdGVzdCAiJGxvb3Ai IC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAkcmV2aXNpb24gLSAkbG9vcAorKwkgICAgaWZh Y2U9JGZ1bmNfYXJpdGhfcmVzdWx0CisrCSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQorKwkgICAg bG9vcD0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19wcmVm aXgkbWFqb3IuJGlmYWNlOiR2ZXJzdHJpbmciCisrCSAgZG9uZQorKworKwkgICMgQmVmb3JlIHRo aXMgcG9pbnQsICRtYWpvciBtdXN0IG5vdCBjb250YWluIGAuJy4KKysJICBtYWpvcj0uJG1ham9y CisrCSAgdmVyc3VmZml4PSIkbWFqb3IuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCWxpbnV4KQor KwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisrCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jl c3VsdAorKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgorKwkgIDs7CisrCisr CW9zZikKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4kZnVuY19h cml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKKysJ ICB2ZXJzdHJpbmc9IiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgorKworKwkgICMgQWRkIGluIGFs bCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21wYXRpYmxlIHdpdGguCisrCSAgbG9vcD0k YWdlCisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAk Y3VycmVudCAtICRsb29wCisrCSAgICBpZmFjZT0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIGZ1 bmNfYXJpdGggJGxvb3AgLSAxCisrCSAgICBsb29wPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAg dmVyc3RyaW5nPSIkdmVyc3RyaW5nOiR7aWZhY2V9LjAiCisrCSAgZG9uZQorKworKwkgICMgTWFr ZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3VyIGN1cnJlbnQgdmVyc2lvbi4KKysJICB2ZXJzdHJp bmc9IiR2ZXJzdHJpbmc6JHtjdXJyZW50fS4wIgorKwkgIDs7CisrCisrCXFueCkKKysJICBtYWpv cj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7CisrCisrCXN1 bm9zKQorKwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJHJl dmlzaW9uIgorKwkgIDs7CisrCisrCXdpbmRvd3MpCisrCSAgIyBVc2UgJy0nIHJhdGhlciB0aGFu ICcuJywgc2luY2Ugd2Ugb25seSB3YW50IG9uZQorKwkgICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMg ZmlsZXN5c3RlbXMuCisrCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBtYWpvcj0k ZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9Ii0kbWFqb3IiCisrCSAgOzsKKysKKysJ KikKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVua25vd24gbGlicmFyeSB2ZXJzaW9u IHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKKysJICA7OworKwllc2FjCisrCisrCSMgQ2xlYXIgdGhl IHZlcnNpb24gaW5mbyBpZiB3ZSBkZWZhdWx0ZWQsIGFuZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVh c2UuCisrCWlmIHRlc3QgLXogIiR2aW5mbyIgJiYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisr CSAgbWFqb3I9CisrCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2luKQorKwkgICAg IyB3ZSBjYW4ndCBjaGVjayBmb3IgIjAuMCIgaW4gYXJjaGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5n CisrCSAgICAjIHByb2JsZW1zLCBzbyB3ZSByZXNldCBpdCBjb21wbGV0ZWx5CisrCSAgICB2ZXJz dHJpbmc9CisrCSAgICA7OworKwkgICopCisrCSAgICB2ZXJzdHJpbmc9IjAuMCIKKysJICAgIDs7 CisrCSAgZXNhYworKwkgIGlmIHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KKysJICAg IHZlcnN1ZmZpeD0KKysJICBlbHNlCisrCSAgICB2ZXJzdWZmaXg9Ii4wLjAiCisrCSAgZmkKKysJ ZmkKKysKKysJIyBSZW1vdmUgdmVyc2lvbiBpbmZvIGZyb20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNo b3VsZCBiZSBhdm9pZGVkCisrCWlmIHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0 ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgdmVyc3VmZml4PQor KwkgIHZlcnN0cmluZz0iIgorKwlmaQorKworKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2 ZSB3aWxsIGhhdmUgdW5kZWZpbmVkIHN5bWJvbHMuCisrCWlmIHRlc3QgIiRhbGxvd191bmRlZmlu ZWQiID0geWVzOyB0aGVuCisrCSAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9mbGFnIiA9IHVu c3VwcG9ydGVkOyB0aGVuCisrCSAgICBmdW5jX3dhcm5pbmcgInVuZGVmaW5lZCBzeW1ib2xzIG5v dCBhbGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJyYXJpZXMiCisrCSAgICBidWlsZF9saWJ0b29s X2xpYnM9bm8KKysJICAgIGJ1aWxkX29sZF9saWJzPXllcworKwkgIGZpCisrCWVsc2UKKysJICAj IERvbid0IGFsbG93IHVuZGVmaW5lZCBzeW1ib2xzLgorKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFn PSIkbm9fdW5kZWZpbmVkX2ZsYWciCisrCWZpCisrCisrICAgICAgZmkKKysKKysgICAgICBmdW5j X2dlbmVyYXRlX2Rsc3ltcyAiJGxpYm5hbWUiICIkbGlibmFtZSIgInllcyIKKysgICAgICBsaWJv YmpzPSIkbGlib2JqcyAkc3ltZmlsZW9iaiIKKysgICAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlgg IiAmJiBsaWJvYmpzPQorKworKyAgICAgIGlmIHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4K KysJIyBSZW1vdmUgb3VyIG91dHB1dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNp bmNlIHRoZXkKKysJIyBtYXkgaGF2ZSBiZWVuIGNyZWF0ZWQgd2hlbiBjb21waWxpbmcgUElDIG9i amVjdHMuCisrCXJlbW92ZWxpc3Q9CisrCXRlbXByZW1vdmVsaXN0PWAkRUNITyAiJG91dHB1dF9v YmpkaXIvKiJgCisrCWZvciBwIGluICR0ZW1wcmVtb3ZlbGlzdDsgZG8KKysJICBjYXNlICRwIGlu CisrCSAgICAqLiRvYmpleHQgfCAqLmdjbm8pCisrCSAgICAgICA7OworKwkgICAgJG91dHB1dF9v YmpkaXIvJG91dHB1dG5hbWUgfCAkb3V0cHV0X29iamRpci8kbGlibmFtZS4qIHwgJG91dHB1dF9v YmpkaXIvJHtsaWJuYW1lfSR7cmVsZWFzZX0uKikKKysJICAgICAgIGlmIHRlc3QgIlgkcHJlY2lv dXNfZmlsZXNfcmVnZXgiICE9ICJYIjsgdGhlbgorKwkJIGlmICRFQ0hPICIkcCIgfCAkRUdSRVAg LWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9kZXYvbnVsbCAyPiYxCisrCQkgdGhlbgorKwkJ ICAgY29udGludWUKKysJCSBmaQorKwkgICAgICAgZmkKKysJICAgICAgIHJlbW92ZWxpc3Q9IiRy ZW1vdmVsaXN0ICRwIgorKwkgICAgICAgOzsKKysJICAgICopIDs7CisrCSAgZXNhYworKwlkb25l CisrCXRlc3QgLW4gIiRyZW1vdmVsaXN0IiAmJiBcCisrCSAgZnVuY19zaG93X2V2YWwgIiR7Uk19 ciBcJHJlbW92ZWxpc3QiCisrICAgICAgZmkKKysKKysgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlh YmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKysgICAgICBpZiB0ZXN0ICIkYnVpbGRf b2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNvbnZlbmll bmNlIDsgdGhlbgorKwlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4k bGliZXh0IgorKworKwkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCisrCW9sZG9i anM9IiRvYmpzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7 bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgCisrICAgICAgZmkKKysKKysgICAgICAj IEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgorKyAgICAgICNmb3IgcGF0aCBp biAkbm90aW5zdF9wYXRoOyBkbworKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAkRUNITyAiWCRs aWJfc2VhcmNoX3BhdGggIiB8ICRYc2VkIC1lICJzJSAkcGF0aCAlICVnImAKKysgICAgICAjCWRl cGxpYnM9YCRFQ0hPICJYJGRlcGxpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAor KyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiWCRkZXBlbmRlbmN5X2xpYnMgIiB8ICRY c2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAgICNkb25lCisrCisrICAgICAgaWYgdGVz dCAtbiAiJHhycGF0aCI7IHRoZW4KKysJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRo IGZsYWdzLCB0aGVuIGFkZCB0aGVtLgorKwl0ZW1wX3hycGF0aD0KKysJZm9yIGxpYmRpciBpbiAk eHJwYXRoOyBkbworKwkgIHRlbXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGliZGlyIgorKwkg IGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAq KSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNhYwor Kwlkb25lCisrCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fCB0ZXN0ICIk YnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrCSAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF94 cnBhdGggJGRlcGVuZGVuY3lfbGlicyIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgICMgTWFr ZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24ndCBiZSBk bHByZW9wZW5lZAorKyAgICAgIG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKKysgICAgICBkbGZpbGVz PQorKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVzOyBkbworKwljYXNlICIgJGRscHJlZmls ZXMgJGRsZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbGZpbGVzPSIkZGxmaWxl cyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKworKyAgICAgICMgTWFrZSBzdXJlIGRs cHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKKysgICAgICBvbGRfZGxwcmVmaWxl cz0iJGRscHJlZmlsZXMiCisrICAgICAgZGxwcmVmaWxlcz0KKysgICAgICBmb3IgbGliIGluICRv bGRfZGxwcmVmaWxlczsgZG8KKysJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgorKwkqIiAkbGliICIq KSA7OworKwkqKSBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OworKwllc2FjCisrICAg ICAgZG9uZQorKworKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0 aGVuCisrCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAg Ki0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotYmVv cyogfCAqLWNlZ2NjKikKKysJICAgICMgdGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZl IGEgYyBsaWJyYXJ5IChhcyBzdWNoKSEKKysJICAgIDs7CisrCSAgKi0qLXJoYXBzb2R5KiB8ICot Ki1kYXJ3aW4xLlswMTJdKQorKwkgICAgIyBSaGFwc29keSBDIGxpYnJhcnkgaXMgaW4gdGhlIFN5 c3RlbSBmcmFtZXdvcmsKKysJICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29y ayIKKysJICAgIDs7CisrCSAgKi0qLW5ldGJzZCopCisrCSAgICAjIERvbid0IGxpbmsgd2l0aCBs aWJjIHVudGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhlZC4KKysJICAgIDs7CisrCSAgKi0qLW9w ZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAgICAjIERvIG5vdCBp bmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJICAgIDs7CisrCSAg Ki0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQorKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0 aCBfX2N0eXBlCisrCSAgICA7OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAq LSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKysJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBs aWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKysJICAgIDs7Cisr CSAgKikKKysJICAgICMgQWRkIGxpYmMgdG8gZGVwbGlicyBvbiBhbGwgb3RoZXIgc3lzdGVtcyBp ZiBuZWNlc3NhcnkuCisrCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9uZWVkX2xjIiA9ICJ5 ZXMiOyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKKysJICAgIGZpCisrCSAg ICA7OworKwkgIGVzYWMKKysJZmkKKysKKysJIyBUcmFuc2Zvcm0gZGVwbGlicyBpbnRvIG9ubHkg ZGVwbGlicyB0aGF0IGNhbiBiZSBsaW5rZWQgaW4gc2hhcmVkLgorKwluYW1lX3NhdmU9JG5hbWUK KysJbGlibmFtZV9zYXZlPSRsaWJuYW1lCisrCXJlbGVhc2Vfc2F2ZT0kcmVsZWFzZQorKwl2ZXJz dWZmaXhfc2F2ZT0kdmVyc3VmZml4CisrCW1ham9yX3NhdmU9JG1ham9yCisrCSMgSSdtIG5vdCBz dXJlIGlmIEknbSB0cmVhdGluZyB0aGUgcmVsZWFzZSBjb3JyZWN0bHkuICBJIHRoaW5rCisrCSMg cmVsZWFzZSBzaG91bGQgc2hvdyB1cCBpbiB0aGUgLWwgKGllIC1sZ21wNSkgc28gd2UgZG9uJ3Qg d2FudCB0bworKwkjIGFkZCBpdCBpbiB0d2ljZS4gIElzIHRoYXQgY29ycmVjdD8KKysJcmVsZWFz ZT0iIgorKwl2ZXJzdWZmaXg9IiIKKysJbWFqb3I9IiIKKysJbmV3ZGVwbGlicz0KKysJZHJvcHBl ZGRlcHM9bm8KKysJY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KKysJcGFzc19hbGwpCisr CSAgIyBEb24ndCBjaGVjayBmb3Igc2hhcmVkL3N0YXRpYy4gIEV2ZXJ5dGhpbmcgd29ya3MuCisr CSAgIyBUaGlzIG1pZ2h0IGJlIGEgbGl0dGxlIG5haXZlLiAgV2UgbWlnaHQgd2FudCB0byBjaGVj aworKwkgICMgd2hldGhlciB0aGUgbGlicmFyeSBleGlzdHMgb3Igbm90LiAgQnV0IHRoaXMgaXMg b24KKysJICAjIG9zZjMgJiBvc2Y0IGFuZCBJJ20gbm90IHJlYWxseSBzdXJlLi4uIEp1c3QKKysJ ICAjIGltcGxlbWVudGluZyB3aGF0IHdhcyBhbHJlYWR5IHRoZSBiZWhhdmlvci4KKysJICBuZXdk ZXBsaWJzPSRkZXBsaWJzCisrCSAgOzsKKysJdGVzdF9jb21waWxlKQorKwkgICMgVGhpcyBjb2Rl IHN0cmVzc2VzIHRoZSAibGlicmFyaWVzIGFyZSBwcm9ncmFtcyIgcGFyYWRpZ20gdG8gaXRzCisr CSAgIyBsaW1pdHMuIE1heWJlIGV2ZW4gYnJlYWtzIGl0LiAgV2UgY29tcGlsZSBhIHByb2dyYW0s IGxpbmtpbmcgaXQKKysJICAjIGFnYWluc3QgdGhlIGRlcGxpYnMgYXMgYSBwcm94eSBmb3IgdGhl IGxpYnJhcnkuICBUaGVuIHdlIGNhbiBjaGVjaworKwkgICMgd2hldGhlciB0aGV5IGxpbmtlZCBp biBzdGF0aWNhbGx5IG9yIGR5bmFtaWNhbGx5IHdpdGggbGRkLgorKwkgICRvcHRfZHJ5X3J1biB8 fCAkUk0gY29uZnRlc3QuYworKwkgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKysJICBpbnQgbWFp bigpIHsgcmV0dXJuIDA7IH0KKytFT0YKKysJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0 CisrCSAgaWYgJExUQ0MgJExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnM7 IHRoZW4KKysJICAgIGxkZF9vdXRwdXQ9YGxkZCBjb25mdGVzdGAKKysJICAgIGZvciBpIGluICRk ZXBsaWJzOyBkbworKwkgICAgICBjYXNlICRpIGluCisrCSAgICAgIC1sKikKKysJCWZ1bmNfc3Ry aXBuYW1lIC1sICcnICIkaSIKKysJCW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJaWYg dGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMi IDsgdGhlbgorKwkJICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSAgKiIgJGkg IiopCisrCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgICAgaT0iIgorKwkJ ICAgIDs7CisrCQkgIGVzYWMKKysJCWZpCisrCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisrCQkg IGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorKwkJICBkZXBsaWJf bWF0Y2hlcz1gZXZhbCAiXFwkRUNITyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcIiJgCisrCQkgIHNl dCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0CisrCQkgIGRlcGxpYl9tYXRjaD0kMQorKwkJ ICBpZiB0ZXN0IGBleHByICIkbGRkX291dHB1dCIgOiAiLiokZGVwbGliX21hdGNoImAgLW5lIDAg OyB0aGVuCisrCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgIGVsc2UKKysJ CSAgICBkcm9wcGVkZGVwcz15ZXMKKysJCSAgICAkRUNITworKwkJICAgICRFQ0hPICIqKiogV2Fy bmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIK KysJCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGli cmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJCSAgICAkRUNITyAiKioqIHlvdSBs aW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUg YSIKKysJCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGlj aCBJIGJlbGlldmUgeW91IGRvIG5vdCBoYXZlIgorKwkJICAgICRFQ0hPICIqKiogYmVjYXVzZSBh IHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSBpdCBm b3IiCisrCQkgICAgJEVDSE8gIioqKiBpdHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBw cm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKysJCSAgZmkKKysJCWZpCisr CQk7OworKwkgICAgICAqKQorKwkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQk7Owor KwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgZWxzZQorKwkgICAgIyBFcnJvciBvY2N1cnJl ZCBpbiB0aGUgZmlyc3QgY29tcGlsZS4gIExldCdzIHRyeSB0byBzYWx2YWdlCisrCSAgICAjIHRo ZSBzaXR1YXRpb246IENvbXBpbGUgYSBzZXBhcmF0ZSBwcm9ncmFtIGZvciBlYWNoIGxpYnJhcnku CisrCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KKysJICAgICAgY2FzZSAkaSBpbgorKwkgICAg ICAtbCopCisrCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCisrCQluYW1lPSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKKysJCSRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QKKysJCWlmICRMVEND ICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jICRpOyB0aGVuCisrCQkgIGxkZF9vdXRw dXQ9YGxkZCBjb25mdGVzdGAKKysJCSAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0 aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkJICAgIGNhc2UgIiAkcHJlZGVw cyAkcG9zdGRlcHMgIiBpbgorKwkJICAgICoiICRpICIqKQorKwkJICAgICAgbmV3ZGVwbGlicz0i JG5ld2RlcGxpYnMgJGkiCisrCQkgICAgICBpPSIiCisrCQkgICAgICA7OworKwkJICAgIGVzYWMK KysJCSAgZmkKKysJCSAgaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkJICAgIGxpYm5hbWU9YGV2 YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAorKwkJICAgIGRlcGxpYl9tYXRjaGVzPWBl dmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKKysJCSAgICBzZXQgZHVtbXkg JGRlcGxpYl9tYXRjaGVzOyBzaGlmdAorKwkJICAgIGRlcGxpYl9tYXRjaD0kMQorKwkJICAgIGlm IHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRo ZW4KKysJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorKwkJICAgIGVsc2UKKysJ CSAgICAgIGRyb3BwZWRkZXBzPXllcworKwkJICAgICAgJEVDSE8KKysJCSAgICAgICRFQ0hPICIq KiogV2FybmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5 ICRpLiIKKysJCSAgICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2Ug dGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJICAgICAgJEVDSE8g IioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlm IHlvdSBoYXZlIGEiCisrCQkgICAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBs aWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJICAgICAgJEVDSE8g IioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRp ZCBub3QgdXNlIHRoaXMgb25lIgorKwkJICAgICAgJEVDSE8gIioqKiBhcyBhIGR5bmFtaWMgZGVw ZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIK KysJCSAgICBmaQorKwkJICBmaQorKwkJZWxzZQorKwkJICBkcm9wcGVkZGVwcz15ZXMKKysJCSAg JEVDSE8KKysJCSAgJEVDSE8gIioqKiBXYXJuaW5nISAgTGlicmFyeSAkaSBpcyBuZWVkZWQgYnkg dGhpcyBsaWJyYXJ5IGJ1dCBJIHdhcyBub3QgYWJsZSB0byIKKysJCSAgJEVDSE8gIioqKiBtYWtl IGl0IGxpbmsgaW4hICBZb3Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwgaXQgb3Igc29t ZSIKKysJCSAgJEVDSE8gIioqKiBsaWJyYXJ5IHRoYXQgaXQgZGVwZW5kcyBvbiBiZWZvcmUgdGhp cyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCisrCQkgICRFQ0hPICIqKiogZnVuY3Rpb25hbC4gIElu c3RhbGxpbmcgaXQgYmVmb3JlIGNvbnRpbnVpbmcgd291bGQgYmUgZXZlbiBiZXR0ZXIuIgorKwkJ ZmkKKysJCTs7CisrCSAgICAgICopCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJ CTs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICBmaQorKwkgIDs7CisrCWZpbGVfbWFn aWMqKQorKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0CisrCSAgZmls ZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCki YAorKwkgIGZvciBhX2RlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJICAgIGNhc2UgJGFfZGVwbGli IGluCisrCSAgICAtbCopCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIkYV9kZXBsaWIi CisrCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgICBpZiB0ZXN0ICJY JGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVu CisrCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSoiICRhX2RlcGxpYiAiKikK KysJCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJICBhX2RlcGxpYj0i IgorKwkJICA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0IC1uICIkYV9k ZXBsaWIiIDsgdGhlbgorKwkJbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNc IiJgCisrCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRz aGxpYl9zZWFyY2hfcGF0aDsgZG8KKysJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1l Wy4tXSogMj4vZGV2L251bGxgCisrCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGli czsgZG8KKysJCSAgICAgICMgRm9sbG93IHNvZnQgbGlua3MuCisrCQkgICAgICBpZiBscyAtbExk ICIkcG90ZW50X2xpYiIgMj4vZGV2L251bGwgfAorKwkJCSAkR1JFUCAiIC0+ICIgPi9kZXYvbnVs bDsgdGhlbgorKwkJCWNvbnRpbnVlCisrCQkgICAgICBmaQorKwkJICAgICAgIyBUaGUgc3RhdGVt ZW50IGFib3ZlIHRyaWVzIHRvIGF2b2lkIGVudGVyaW5nIGFuCisrCQkgICAgICAjIGVuZGxlc3Mg bG9vcCBiZWxvdywgaW4gY2FzZSBvZiBjeWNsaWMgbGlua3MuCisrCQkgICAgICAjIFdlIG1pZ2h0 IHN0aWxsIGVudGVyIGFuIGVuZGxlc3MgbG9vcCwgc2luY2UgYSBsaW5rCisrCQkgICAgICAjIGxv b3AgY2FuIGJlIGNsb3NlZCB3aGlsZSB3ZSBmb2xsb3cgbGlua3MsCisrCQkgICAgICAjIGJ1dCBz byB3aGF0PworKwkJICAgICAgcG90bGliPSIkcG90ZW50X2xpYiIKKysJCSAgICAgIHdoaWxlIHRl c3QgLWggIiRwb3RsaWIiIDI+L2Rldi9udWxsOyBkbworKwkJCXBvdGxpYmxpbms9YGxzIC1sZCAk cG90bGliIHwgJHtTRUR9ICdzLy4qIC0+IC8vJ2AKKysJCQljYXNlICRwb3RsaWJsaW5rIGluCisr CQkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBwb3RsaWI9IiRwb3RsaWJsaW5rIjs7CisrCQkJ KikgcG90bGliPWAkRUNITyAiWCRwb3RsaWIiIHwgJFhzZWQgLWUgJ3MsW14vXSokLCwnYCIkcG90 bGlibGluayI7OworKwkJCWVzYWMKKysJCSAgICAgIGRvbmUKKysJCSAgICAgIGlmIGV2YWwgJGZp bGVfbWFnaWNfY21kIFwiXCRwb3RsaWJcIiAyPi9kZXYvbnVsbCB8CisrCQkJICRTRUQgLWUgMTBx IHwKKysJCQkgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKysJ CQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkJYV9kZXBsaWI9IiIKKysJ CQlicmVhayAyCisrCQkgICAgICBmaQorKwkJICBkb25lCisrCQlkb25lCisrCSAgICAgIGZpCisr CSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQlkcm9wcGVkZGVwcz15ZXMK KysJCSRFQ0hPCisrCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhh dmUgcmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCisrCQkkRUNITyAiKioqIEkgaGF2 ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsg aW4gd2hlbiIKKysJCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkg Y2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVy c2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKKysJ CSRFQ0hPICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBm b3IgYSBmaWxlIHN0YXJ0aW5nIgorKwkJaWYgdGVzdCAteiAiJHBvdGxpYiIgOyB0aGVuCisrCQkg ICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAo Li4uZm9yIGZpbGUgbWFnaWMgdGVzdCkiCisrCQllbHNlCisrCQkgICRFQ0hPICIqKiogd2l0aCAk bGlibmFtZSBhbmQgbm9uZSBvZiB0aGUgY2FuZGlkYXRlcyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0 ZXN0IgorKwkJICAkRUNITyAiKioqIHVzaW5nIGEgZmlsZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNr ZWQ6ICRwb3RsaWIiCisrCQlmaQorKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikKKysJ ICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxp YnMgJGFfZGVwbGliIgorKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGRvbmUgIyBHb25lIHRo cm91Z2ggYWxsIGRlcGxpYnMuCisrCSAgOzsKKysJbWF0Y2hfcGF0dGVybiopCisrCSAgc2V0IGR1 bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKKysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4 PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCisrCSAgZm9yIGFf ZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgICAgY2FzZSAkYV9kZXBsaWIgaW4KKysJICAgIC1s KikKKysJICAgICAgZnVuY19zdHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIKKysJICAgICAgbmFt ZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9v bF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCWNhc2UgIiAk cHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJKiIgJGFfZGVwbGliICIqKQorKwkJICBuZXdkZXBs aWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkgIGFfZGVwbGliPSIiCisrCQkgIDs7Cisr CQllc2FjCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVu CisrCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKysJCWZvciBp IGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9w YXRoOyBkbworKwkJICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYv bnVsbGAKKysJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbworKwkJICAg IHBvdGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9t YWdpYyB0ZXN0CisrCQkgICAgaWYgZXZhbCAiXCRFQ0hPIFwiWCRwb3RlbnRfbGliXCIiIDI+L2Rl di9udWxsIHwgJFhzZWQgLWUgMTBxIHwgXAorKwkJICAgICAgICRFR1JFUCAiJG1hdGNoX3BhdHRl cm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVw bGlicyAkYV9kZXBsaWIiCisrCQkgICAgICBhX2RlcGxpYj0iIgorKwkJICAgICAgYnJlYWsgMgor KwkJICAgIGZpCisrCQkgIGRvbmUKKysJCWRvbmUKKysJICAgICAgZmkKKysJICAgICAgaWYgdGVz dCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KKysJCWRyb3BwZWRkZXBzPXllcworKwkJJEVDSE8KKysJ CSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUg Zm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKKysJCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmls aXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkJ JEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0 aGlzIGlmIHlvdSBoYXZlIGEiCisrCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBs aWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorKwkJJEVDSE8gIioqKiBi ZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3Rh cnRpbmciCisrCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KKysJCSAgJEVDSE8gIioqKiB3 aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICguLi5mb3IgcmVnZXgg cGF0dGVybiB0ZXN0KSIKKysJCWVsc2UKKysJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFu ZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRlc3QiCisrCQkg ICRFQ0hPICIqKiogdXNpbmcgYSByZWdleCBwYXR0ZXJuLiBMYXN0IGZpbGUgY2hlY2tlZDogJHBv dGxpYiIKKysJCWZpCisrCSAgICAgIGZpCisrCSAgICAgIDs7CisrCSAgICAqKQorKwkgICAgICAj IEFkZCBhIC1MIGFyZ3VtZW50LgorKwkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9k ZXBsaWIiCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBh bGwgZGVwbGlicy4KKysJICA7OworKwlub25lIHwgdW5rbm93biB8ICopCisrCSAgbmV3ZGVwbGli cz0iIgorKwkgIHRtcF9kZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCBcCisrCSAg ICAgIC1lICdzLyAtbGMkLy8nIC1lICdzLyAtW0xSXVteIF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJY JGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVu CisrCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbworKwkgICAgICAjIGNhbid0 IHVzZSBYc2VkIGJlbG93LCBiZWNhdXNlICRpIG1pZ2h0IGNvbnRhaW4gJy8nCisrCSAgICAgIHRt cF9kZXBsaWJzPWAkRUNITyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgInMsJGksLCJgCisr CSAgICBkb25lCisrCSAgZmkKKysJICBpZiAkRUNITyAiWCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQg LWUgJ3MvWwkgXS8vZycgfAorKwkgICAgICRHUkVQIC4gPi9kZXYvbnVsbDsgdGhlbgorKwkgICAg JEVDSE8KKysJICAgIGlmIHRlc3QgIlgkZGVwbGlic19jaGVja19tZXRob2QiID0gIlhub25lIjsg dGhlbgorKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5j aWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGxhdGZvcm0uIgorKwkgICAgZWxzZQorKwkg ICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBu b3Qga25vd24gdG8gYmUgc3VwcG9ydGVkLiIKKysJICAgIGZpCisrCSAgICAkRUNITyAiKioqIEFs bCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4i CisrCSAgICBkcm9wcGVkZGVwcz15ZXMKKysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJdmVyc3Vm Zml4PSR2ZXJzdWZmaXhfc2F2ZQorKwltYWpvcj0kbWFqb3Jfc2F2ZQorKwlyZWxlYXNlPSRyZWxl YXNlX3NhdmUKKysJbGlibmFtZT0kbGlibmFtZV9zYXZlCisrCW5hbWU9JG5hbWVfc2F2ZQorKwor KwljYXNlICRob3N0IGluCisrCSotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJ ICAjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSB3aXRoIHRoZSBTeXN0ZW0gZnJh bWV3b3JrCisrCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUg J3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKysJICA7OworKwllc2FjCisrCisrCWlm IHRlc3QgIiRkcm9wcGVkZGVwcyIgPSB5ZXM7IHRoZW4KKysJICBpZiB0ZXN0ICIkbW9kdWxlIiA9 IHllczsgdGhlbgorKwkgICAgJEVDSE8KKysJICAgICRFQ0hPICIqKiogV2FybmluZzogbGlidG9v bCBjb3VsZCBub3Qgc2F0aXNmeSBhbGwgZGVjbGFyZWQgaW50ZXItbGlicmFyeSIKKysJICAgICRF Q0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGli dG9vbCB3aWxsIGNyZWF0ZSIKKysJICAgICRFQ0hPICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0 IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyIKKysJICAgICRFQ0hPICIqKiog YXBwbGljYXRpb24gaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZy4iCisrCSAgICBpZiB0 ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgorKwkgICAgICAkRUNITworKwkgICAg ICAkRUNITyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2Fz IGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCisrCSAgICAgICRFQ0hPICIqKiogbGlzdHMgZnJvbSBh IHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgor KwkgICAgICAkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9k dWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkgICAgICAkRUNITyAiKioqIFxgbm0nIGZyb20g R05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkgaGVscC4iCisrCSAgICBmaQorKwkg ICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAgIG9sZGxpYnM9 IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCisrCSAgICAgIGJ1aWxkX2xpYnRvb2xf bGlicz1tb2R1bGUKKysJICAgICAgYnVpbGRfb2xkX2xpYnM9eWVzCisrCSAgICBlbHNlCisrCSAg ICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICAkRUNI TyAiKioqIFRoZSBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9w cGVkIGhlcmUgd2lsbCBiZSIKKysJICAgICRFQ0hPICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3 aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorKwkgICAgJEVD SE8gIioqKiBvciBpcyBkZWNsYXJlZCB0byAtZGxvcGVuIGl0LiIKKysKKysJICAgIGlmIHRlc3Qg IiRhbGxvd191bmRlZmluZWQiID0gbm87IHRoZW4KKysJICAgICAgJEVDSE8KKysJICAgICAgJEVD SE8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3lt Ym9scywiCisrCSAgICAgICRFQ0hPICIqKiogYmVjYXVzZSBlaXRoZXIgdGhlIHBsYXRmb3JtIGRv ZXMgbm90IHN1cHBvcnQgdGhlbSBvciIKKysJICAgICAgJEVDSE8gIioqKiBpdCB3YXMgZXhwbGlj aXRseSByZXF1ZXN0ZWQgd2l0aCAtbm8tdW5kZWZpbmVkLCIKKysJICAgICAgJEVDSE8gIioqKiBs aWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisrCSAgICAg IGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsgdGhlbgorKwkJb2xkbGlicz0iJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUK KysJCWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBlbHNlCisrCQlidWlsZF9saWJ0b29sX2xp YnM9bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgZmkKKysJZmkKKysJIyBEb25lIGNoZWNr aW5nIGRlcGxpYnMhCisrCWRlcGxpYnM9JG5ld2RlcGxpYnMKKysgICAgICBmaQorKyAgICAgICMg VGltZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICIt ZnJhbWV3b3JrIGZvbyIKKysgICAgICBjYXNlICRob3N0IGluCisrCSotKi1kYXJ3aW4qKQorKwkg IG5ld2RlcGxpYnM9YCRFQ0hPICJYICRuZXdkZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRd KlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorKwkgIG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzPWAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQg LWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCSAgZGVw bGlicz1gJEVDSE8gIlggJGRlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFt ZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCSAgOzsKKysgICAgICBlc2FjCisrCisrICAgICAg IyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBu b3QgeWV0CisrICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0 aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwk cGF0aC8kb2JqZGlyICIqKSA7OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAg KiIgLUwkcGF0aC8kb2JqZGlyICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRo LyRvYmpkaXIiIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAg ICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikK KysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICop IG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikg bmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAg ICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKKysKKysgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVj aWZpYyB2YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCisrICAgICAgbGli cmFyeV9uYW1lcz0KKysgICAgICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5hbWU9CisrCisrICAg ICAgIyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkg bW9yZQorKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisr CWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBIYXJkY29k ZSB0aGUgbGlicmFyeSBwYXRocworKwkgIGhhcmRjb2RlX2xpYmRpcnM9CisrCSAgZGVwX3JwYXRo PQorKwkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1vZGUiICE9IHJlbGlu ayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxpYmRpciBpbiAkcnBh dGg7IGRvCisrCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRo ZW4KKysJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVu CisrCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJCSAgaGFyZGNvZGVf bGliZGlycz0iJGxpYmRpciIKKysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVu aXF1ZSBsaWJkaXJzLgorKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRj b2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJICAqIiRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisr CQkgICAgOzsKKysJCSAgKikKKysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGli ZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAgICA7OworKwkJICBl c2FjCisrCQlmaQorKwkgICAgICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY1wiCisrCQlkZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCisrCSAgICAgIGZp CisrCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJICAgICAgY2FzZSAi JHBlcm1fcnBhdGggIiBpbgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBw ZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworKwkgICAgICBlc2FjCisrCSAgICBm aQorKwkgIGRvbmUKKysJICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8g dGhlIHJwYXRoLgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAm JgorKwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorKwkgICAgbGliZGly PSIkaGFyZGNvZGVfbGliZGlycyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkIjsgdGhlbgorKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkXCIKKysJICAgIGVsc2UKKysJICAgICAgZXZhbCBkZXBfcnBhdGg9 XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBmaQorKwkgIGZpCisrCSAgaWYg dGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KKysJ ICAgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisrCSAgICBycGF0aD0KKysJICAg IGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCisrCSAgICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIK KysJICAgIGRvbmUKKysJICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92 YXInOyBleHBvcnQgJHJ1bnBhdGhfdmFyIgorKwkgIGZpCisrCSAgdGVzdCAtbiAiJGRlcF9ycGF0 aCIgJiYgZGVwbGlicz0iJGRlcF9ycGF0aCAkZGVwbGlicyIKKysJZmkKKysKKysJc2hsaWJwYXRo PSIkZmluYWxpemVfc2hsaWJwYXRoIgorKwl0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHNobGli cGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJHNobGlicGF0aCIKKysJaWYgdGVzdCAtbiAiJHNobGli cGF0aCI7IHRoZW4KKysJICBldmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGli cGF0aF92YXInOyBleHBvcnQgJHNobGlicGF0aF92YXIiCisrCWZpCisrCisrCSMgR2V0IHRoZSBy ZWFsIGFuZCBsaW5rIG5hbWVzIG9mIHRoZSBsaWJyYXJ5LgorKwlldmFsIHNoYXJlZF9leHQ9XCIk c2hyZXh0X2NtZHNcIgorKwlldmFsIGxpYnJhcnlfbmFtZXM9XCIkbGlicmFyeV9uYW1lc19zcGVj XCIKKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisrCXNoaWZ0CisrCXJlYWxuYW1lPSIkMSIK KysJc2hpZnQKKysKKysJaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwg c29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKKysJZWxzZQorKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgor KwlmaQorKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgorKwkgIGRsbmFtZT0kc29uYW1lCisr CWZpCisrCisrCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorKwlsaW5rbmFtZXM9Cisr CWZvciBsaW5rCisrCWRvCisrCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorKwlkb25l CisrCisrCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCisrCXRlc3QgLXog IiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNl ZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorKwl0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJv YmpzPQorKworKwlkZWxmaWxlcz0KKysJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0 ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgorKwkgICRvcHRfZHJ5X3J1biB8fCBjcCAi JGV4cG9ydF9zeW1ib2xzIiAiJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKysJICBleHBv cnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKKysJICBkZWxmaWxlcz0i JGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyIKKysJZmkKKysKKysJb3JpZ19leHBvcnRfc3ltYm9s cz0KKysJY2FzZSAkaG9zdF9vcyBpbgorKwljeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQorKwkg IGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xz X3JlZ2V4IjsgdGhlbgorKwkgICAgIyBleHBvcnRpbmcgdXNpbmcgdXNlciBzdXBwbGllZCBzeW1m aWxlCisrCSAgICBpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgIT0geEVYUE9S VFM7IHRoZW4KKysJICAgICAgIyBhbmQgaXQncyBOT1QgYWxyZWFkeSBhIC5kZWYgZmlsZS4gTXVz dCBmaWd1cmUgb3V0CisrCSAgICAgICMgd2hpY2ggb2YgdGhlIGdpdmVuIHN5bWJvbHMgYXJlIGRh dGEgc3ltYm9scyBhbmQgdGFnCisrCSAgICAgICMgdGhlbSBhcyBzdWNoLiBTbywgdHJpZ2dlciB1 c2Ugb2YgZXhwb3J0X3N5bWJvbHNfY21kcy4KKysJICAgICAgIyBleHBvcnRfc3ltYm9scyBnZXRz IHJlYXNzaWduZWQgaW5zaWRlIHRoZSAicHJlcGFyZQorKwkgICAgICAjIHRoZSBsaXN0IG9mIGV4 cG9ydGVkIHN5bWJvbHMiIGlmIHN0YXRlbWVudCwgc28gdGhlCisrCSAgICAgICMgaW5jbHVkZV9l eHBzeW1zIGxvZ2ljIHN0aWxsIHdvcmtzLgorKwkgICAgICBvcmlnX2V4cG9ydF9zeW1ib2xzPSIk ZXhwb3J0X3N5bWJvbHMiCisrCSAgICAgIGV4cG9ydF9zeW1ib2xzPQorKwkgICAgICBhbHdheXNf ZXhwb3J0X3N5bWJvbHM9eWVzCisrCSAgICBmaQorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKwor KwkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scworKwlpZiB0ZXN0IC16ICIk ZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgaWYgdGVzdCAiJGFsd2F5c19leHBvcnRfc3ltYm9s cyIgPSB5ZXMgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAg ZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIK KysJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisrCSAg ICAkb3B0X2RyeV9ydW4gfHwgJFJNICRleHBvcnRfc3ltYm9scworKwkgICAgY21kcz0kZXhwb3J0 X3N5bWJvbHNfY21kcworKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICBmb3Ig Y21kIGluICRjbWRzOyBkbworKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAgICAgZXZhbCBj bWQ9XCIkY21kXCIKKysJICAgICAgZnVuY19sZW4gIiAkY21kIgorKwkgICAgICBsZW49JGZ1bmNf bGVuX3Jlc3VsdAorKwkgICAgICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwg dGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKysJCWZ1bmNfc2hvd19ldmFsICIkY21k IiAnZXhpdCAkPycKKysJCXNraXBwZWRfZXhwb3J0PWZhbHNlCisrCSAgICAgIGVsc2UKKysJCSMg VGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgorKwkJ ZnVuY192ZXJib3NlICJ1c2luZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlz dC4uLiIKKysJCXNraXBwZWRfZXhwb3J0PToKKysJCSMgQnJlYWsgb3V0IGVhcmx5LCBvdGhlcndp c2Ugc2tpcHBlZF9leHBvcnQgbWF5IGJlCisrCQkjIHNldCB0byBmYWxzZSBieSBhIGxhdGVyIGJ1 dCBzaG9ydGVyIGNtZC4KKysJCWJyZWFrCisrCSAgICAgIGZpCisrCSAgICBkb25lCisrCSAgICBJ RlM9IiRzYXZlX2lmcyIKKysJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCIg JiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IjsgdGhlbgorKwkgICAgICBmdW5jX3No b3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJv bHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisrCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYg IiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKwkgIGZp CisrCWZpCisrCisrCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGlu Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3lt Ym9scyIKKysJICB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9z eW1ib2xzPSIkb3JpZ19leHBvcnRfc3ltYm9scyIKKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAn JEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9y dF9zeW1ib2xzIicKKysJZmkKKysKKysJaWYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6 IiAmJiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KKysJICAjIFRoZSBnaXZl biBleHBvcnRzX3N5bWJvbHMgZmlsZSBoYXMgdG8gYmUgZmlsdGVyZWQsIHNvIGZpbHRlciBpdC4K KysJICBmdW5jX3ZlcmJvc2UgImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScg dG8gdGFnIERBVEEgZXhwb3J0cyIKKysJICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90cyBvZgorKwkgICMgJ3MnIGNvbW1hbmRz IHdoaWNoIG5vdCBhbGwgc2VkcyBjYW4gaGFuZGxlLiBHTlUgc2VkIHNob3VsZCBiZSBmaW5lCisr CSAgIyB0aG91Z2guIEFsc28sIHRoZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0 aGUgbnVtYmVyIG9mCisrCSAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5p Y2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKKysJICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgor KwkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxd LipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmZpbHRlcgorKwkgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKKysJICBleHBvcnRfc3ltYm9scz0kb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWYKKysJICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS5maWx0ZXIgPCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRf c3ltYm9scworKwlmaQorKworKwl0bXBfZGVwbGlicz0KKysJZm9yIHRlc3RfZGVwbGliIGluICRk ZXBsaWJzOyBkbworKwkgIGNhc2UgIiAkY29udmVuaWVuY2UgIiBpbgorKwkgICoiICR0ZXN0X2Rl cGxpYiAiKikgOzsKKysJICAqKQorKwkgICAgdG1wX2RlcGxpYnM9IiR0bXBfZGVwbGlicyAkdGVz dF9kZXBsaWIiCisrCSAgICA7OworKwkgIGVzYWMKKysJZG9uZQorKwlkZXBsaWJzPSIkdG1wX2Rl cGxpYnMiCisrCisrCWlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKysJICBpZiB0ZXN0 IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiICYmCisrCSAgICB0ZXN0ICIkY29tcGlsZXJf bmVlZHNfb2JqZWN0IiA9IHllcyAmJgorKwkgICAgdGVzdCAteiAiJGxpYm9ianMiOyB0aGVuCisr CSAgICAjIGV4dHJhY3QgdGhlIGFyY2hpdmVzLCBzbyB3ZSBoYXZlIG9iamVjdHMgdG8gbGlzdC4K KysJICAgICMgVE9ETzogY291bGQgb3B0aW1pemUgdGhpcyB0byBqdXN0IGV4dHJhY3Qgb25lIGFy Y2hpdmUuCisrCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysJICBmaQorKwkgIGlmIHRl c3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIHNhdmVfbGlib2Jq cz0kbGlib2JqcworKwkgICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY1wiCisrCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQor KwkgIGVsc2UKKysJICAgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCisr CSAgICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJICAgIGZ1bmNfZXh0cmFj dF9hcmNoaXZlcyAkZ2VudG9wICRjb252ZW5pZW5jZQorKwkgICAgbGlib2Jqcz0iJGxpYm9ianMg JGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCSAgICB0ZXN0ICJYJGxpYm9ianMiID0g IlggIiAmJiBsaWJvYmpzPQorKwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgIiR0aHJlYWRfc2Fm ZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJHRocmVhZF9zYWZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICBl dmFsIGZsYWc9XCIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjXCIKKysJICBsaW5rZXJfZmxhZ3M9IiRs aW5rZXJfZmxhZ3MgJGZsYWciCisrCWZpCisrCisrCSMgTWFrZSBhIGJhY2t1cCBvZiB0aGUgdW5p bnN0YWxsZWQgbGlicmFyeSB3aGVuIHJlbGlua2luZworKwlpZiB0ZXN0ICIkbW9kZSIgPSByZWxp bms7IHRoZW4KKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYm ICRSTSAke3JlYWxuYW1lfVUgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVUpJyB8fCBleGl0 ICQ/CisrCWZpCisrCisrCSMgRG8gZWFjaCBvZiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KKysJaWYg dGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KKysJ ICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3lt X2NtZHMiOyB0aGVuCisrCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfZXhwc3ltX2NtZHNc IgorKwkgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCisrCSAgZWxzZQorKwkgICAgZXZhbCB0 ZXN0X2NtZHM9XCIkbW9kdWxlX2NtZHNcIgorKwkgICAgY21kcz0kbW9kdWxlX2NtZHMKKysJICBm aQorKwllbHNlCisrCSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIk YXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hp dmVfZXhwc3ltX2NtZHNcIgorKwkgICAgY21kcz0kYXJjaGl2ZV9leHBzeW1fY21kcworKwkgIGVs c2UKKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hpdmVfY21kc1wiCisrCSAgICBjbWRzPSRh cmNoaXZlX2NtZHMKKysJICBmaQorKwlmaQorKworKwlpZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0 IiAhPSAiWDoiICYmCisrCSAgIGZ1bmNfbGVuICIgJHRlc3RfY21kcyIgJiYKKysJICAgbGVuPSRm dW5jX2xlbl9yZXN1bHQgJiYKKysJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8 IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisrCSAgOgorKwllbHNlCisrCSAgIyBU aGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgcGll Y2V3aXNlCisrCSAgIyBvciwgaWYgdXNpbmcgR05VIGxkIGFuZCBza2lwcGVkX2V4cG9ydCBpcyBu b3QgOiwgdXNlIGEgbGlua2VyCisrCSAgIyBzY3JpcHQuCisrCisrCSAgIyBTYXZlIHRoZSB2YWx1 ZSBvZiAkb3V0cHV0IGFuZCAkbGlib2JqcyBiZWNhdXNlIHdlIHdhbnQgdG8KKysJICAjIHVzZSB0 aGVtIGxhdGVyLiAgSWYgd2UgaGF2ZSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgd2UKKysJICAj IHdhbnQgdG8gdXNlIHNhdmVfbGlib2JqcyBhcyBpdCB3YXMgYmVmb3JlCisrCSAgIyB3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYyB3YXMgZXhwYW5kZWQsIGJlY2F1c2Ugd2UgY2FuJ3QKKysJICAjIGFz c3VtZSB0aGUgbGlua2VyIHVuZGVyc3RhbmRzIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLgorKwkg ICMgVGhpcyBtYXkgaGF2ZSB0byBiZSByZXZpc2l0ZWQsIGluIGNhc2UgdG9vIG1hbnkKKysJICAj IGNvbnZlbmllbmNlIGxpYnJhcmllcyBnZXQgbGlua2VkIGluIGFuZCBlbmQgdXAgZXhjZWVkaW5n CisrCSAgIyB0aGUgc3BlYy4KKysJICBpZiB0ZXN0IC16ICIkY29udmVuaWVuY2UiIHx8IHRlc3Qg LXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIHNhdmVfbGlib2Jqcz0k bGlib2JqcworKwkgIGZpCisrCSAgc2F2ZV9vdXRwdXQ9JG91dHB1dAorKwkgIG91dHB1dF9sYT1g JEVDSE8gIlgkb3V0cHV0IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorKworKwkgICMgQ2xlYXIg dGhlIHJlbG9hZGFibGUgb2JqZWN0IGNyZWF0aW9uIGNvbW1hbmQgcXVldWUgYW5kCisrCSAgIyBp bml0aWFsaXplIGsgdG8gb25lLgorKwkgIHRlc3RfY21kcz0KKysJICBjb25jYXRfY21kcz0KKysJ ICBvYmpsaXN0PQorKwkgIGxhc3Rfcm9iaj0KKysJICBrPTEKKysKKysJICBpZiB0ZXN0IC1uICIk c2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9 LyR7b3V0cHV0X2xhfS5sbmtzY3JpcHQKKysJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgR05V IGxkIHNjcmlwdDogJG91dHB1dCIKKysJICAgICRFQ0hPICdJTlBVVCAoJyA+ICRvdXRwdXQKKysJ ICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworKwkgICAgZG8KKysJICAgICAgJEVDSE8gIiRv YmoiID4+ICRvdXRwdXQKKysJICAgIGRvbmUKKysJICAgICRFQ0hPICcpJyA+PiAkb3V0cHV0Cisr CSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQiCisrCSAgZWxpZiB0ZXN0IC1uICIkc2F2 ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIlgk ZmlsZV9saXN0X3NwZWMiICE9IFg7IHRoZW4KKysJICAgIG91dHB1dD0ke291dHB1dF9vYmpkaXJ9 LyR7b3V0cHV0X2xhfS5sbmsKKysJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgbGlua2VyIGlu cHV0IGZpbGUgbGlzdDogJG91dHB1dCIKKysJICAgIDogPiAkb3V0cHV0CisrCSAgICBzZXQgeCAk c2F2ZV9saWJvYmpzCisrCSAgICBzaGlmdAorKwkgICAgZmlyc3RvYmo9CisrCSAgICBpZiB0ZXN0 ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9IHllczsgdGhlbgorKwkgICAgICBmaXJzdG9iaj0i JDEgIgorKwkgICAgICBzaGlmdAorKwkgICAgZmkKKysJICAgIGZvciBvYmoKKysJICAgIGRvCisr CSAgICAgICRFQ0hPICIkb2JqIiA+PiAkb3V0cHV0CisrCSAgICBkb25lCisrCSAgICBkZWxmaWxl cz0iJGRlbGZpbGVzICRvdXRwdXQiCisrCSAgICBvdXRwdXQ9JGZpcnN0b2JqXCIkZmlsZV9saXN0 X3NwZWMkb3V0cHV0XCIKKysJICBlbHNlCisrCSAgICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpz IjsgdGhlbgorKwkgICAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0 IGZpbGVzLi4uIgorKwkgICAgICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9 LiRvYmpleHQKKysJICAgICAgZXZhbCB0ZXN0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgorKwkgICAg ICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCisrCSAgICAgIGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAor KwkgICAgICBsZW49JGxlbjAKKysKKysJICAgICAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2Jq ZWN0cyB0byBiZSBsaW5rZWQuCisrCSAgICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworKwkg ICAgICBkbworKwkJZnVuY19sZW4gIiAkb2JqIgorKwkJZnVuY19hcml0aCAkbGVuICsgJGZ1bmNf bGVuX3Jlc3VsdAorKwkJbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkJaWYgdGVzdCAiWCRvYmps aXN0IiA9IFggfHwKKysJCSAgIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIjsgdGhlbgor KwkJICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIgJG9iaiIKKysJCWVsc2UKKysJCSAgIyBUaGUgY29t bWFuZCAkdGVzdF9jbWRzIGlzIGFsbW9zdCB0b28gbG9uZywgYWRkIGEKKysJCSAgIyBjb21tYW5k IHRvIHRoZSBxdWV1ZS4KKysJCSAgaWYgdGVzdCAiJGsiIC1lcSAxIDsgdGhlbgorKwkJICAgICMg VGhlIGZpcnN0IGZpbGUgZG9lc24ndCBoYXZlIGEgcHJldmlvdXMgY29tbWFuZCB0byBhZGQuCisr CQkgICAgZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2Jq XCIKKysJCSAgZWxzZQorKwkJICAgICMgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXMgd2lsbCBsaW5rIGluCisrCQkgICAgIyB0aGUgbGFzdCBvbmUgY3JlYXRlZC4KKysJCSAg ICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2NtZHMgJG9iamxpc3Qg JGxhc3Rfcm9ian5cJFJNICRsYXN0X3JvYmpcIgorKwkJICBmaQorKwkJICBsYXN0X3JvYmo9JG91 dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKysJCSAgZnVuY19hcml0aCAkayAr IDEKKysJCSAgaz0kZnVuY19hcml0aF9yZXN1bHQKKysJCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGly LyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisrCQkgIG9iamxpc3Q9JG9iagorKwkJICBmdW5jX2xl biAiICRsYXN0X3JvYmoiCisrCQkgIGZ1bmNfYXJpdGggJGxlbjAgKyAkZnVuY19sZW5fcmVzdWx0 CisrCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKKysJCWZpCisrCSAgICAgIGRvbmUKKysJICAg ICAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0Cisr CSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmlsZS4gIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFi bGUgb2JqZWN0CisrCSAgICAgICMgZmlsZXMgd2lsbCBsaW5rIGluIHRoZSBsYXN0IG9uZSBjcmVh dGVkLgorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25j YXRfY21kc34KKysJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxv YWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rf cm9iaiI7IHRoZW4KKysJICAgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9 flwkUk0gJGxhc3Rfcm9ialwiCisrCSAgICAgIGZpCisrCSAgICAgIGRlbGZpbGVzPSIkZGVsZmls ZXMgJG91dHB1dCIKKysKKysJICAgIGVsc2UKKysJICAgICAgb3V0cHV0PQorKwkgICAgZmkKKysK KysJICAgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCisrCSAgICAgIGZ1bmNfdmVy Ym9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCisrCSAgICAg IGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS5leHAiCisrCSAgICAgICRv cHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICAgIGxpYm9ianM9JG91dHB1 dAorKwkgICAgICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byBjcmVhdGUgdGhlIGV4cG9ydCBmaWxl LgorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRf Y21kc34KKysJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHMkZXhwb3J0X3N5 bWJvbHNfY21kc1wiCisrCSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0aGVuCisrCQll dmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc35cJFJNICRsYXN0X3JvYmpcIgorKwkgICAg ICBmaQorKwkgICAgZmkKKysKKysJICAgIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmCisrCSAg ICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgYSB0ZW1wb3JhcnkgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZTogJG91dHB1dCIKKysKKysJICAgICMgTG9vcCB0aHJvdWdoIHRoZSBjb21tYW5kcyBnZW5l cmF0ZWQgYWJvdmUgYW5kIGV4ZWN1dGUgdGhlbS4KKysJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZT PSd+JworKwkgICAgZm9yIGNtZCBpbiAkY29uY2F0X2NtZHM7IGRvCisrCSAgICAgIElGUz0iJHNh dmVfaWZzIgorKwkgICAgICAkb3B0X3NpbGVudCB8fCB7CisrCQkgIGZ1bmNfcXVvdGVfZm9yX2V4 cGFuZCAiJGNtZCIKKysJCSAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRf cmVzdWx0IgorKwkgICAgICB9CisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8 fCB7CisrCQlsdF9leGl0PSQ/CisrCisrCQkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJh cnkgYW5kIGV4aXQKKysJCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkJICAoIGNk ICIkb3V0cHV0X29iamRpciIgJiYgXAorKwkJICAgICRSTSAiJHtyZWFsbmFtZX1UIiAmJiBcCisr CQkgICAgJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKKysJCWZpCisrCisrCQlleGl0 ICRsdF9leGl0CisrCSAgICAgIH0KKysJICAgIGRvbmUKKysJICAgIElGUz0iJHNhdmVfaWZzIgor KworKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiAke3NraXBwZWRf ZXhwb3J0LWZhbHNlfTsgdGhlbgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1lICIk ZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJv bHN9VCInCisrCSAgICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIg IiRleHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKwkgIGZpCisrCisrICAgICAgICAgIGlmICR7 c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5 bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAgIHRtcF9l eHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgorKwkgICAgICB0ZXN0IC1uICIkb3JpZ19l eHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19leHBvcnRfc3ltYm9s cyIKKysJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyRFQ0hPICJYJGluY2x1ZGVfZXhwc3lt cyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBvcnRfc3ltYm9scyInCisrCSAgICBmaQor KworKwkgICAgaWYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgICAg ICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28g ZmlsdGVyIGl0LgorKwkgICAgICBmdW5jX3ZlcmJvc2UgImZpbHRlciBzeW1ib2wgbGlzdCBmb3Ig XGAkbGlibmFtZS5sYScgdG8gdGFnIERBVEEgZXhwb3J0cyIKKysJICAgICAgIyBGSVhNRTogJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVudGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YK KysJICAgICAgIyAncycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdO VSBzZWQgc2hvdWxkIGJlIGZpbmUKKysJICAgICAgIyB0aG91Z2guIEFsc28sIHRoZSBmaWx0ZXIg c2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVtYmVyIG9mCisrCSAgICAgICMgZ2xvYmFs IHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5 CisrCSAgICAgICMgaXNuJ3QgYSBibGVzc2VkIHRvb2wuCisrCSAgICAgICRvcHRfZHJ5X3J1biB8 fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnws JyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgorKwkg ICAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8k bGlibmFtZS5maWx0ZXIiCisrCSAgICAgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZgorKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS5maWx0ZXIgPCAkb3JpZ19leHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9s cworKwkgICAgZmkKKysJICBmaQorKworKwkgIGxpYm9ianM9JG91dHB1dAorKwkgICMgUmVzdG9y ZSB0aGUgdmFsdWUgb2Ygb3V0cHV0LgorKwkgIG91dHB1dD0kc2F2ZV9vdXRwdXQKKysKKysJICBp ZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiICYmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYyI7IHRoZW4KKysJICAgIGV2YWwgbGlib2Jqcz1cIlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNcIgorKwkgICAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0K KysJICBmaQorKwkgICMgRXhwYW5kIHRoZSBsaWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4g dG8gcmVzZXQgdGhlCisrCSAgIyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtp bmcuCisrCisrCSAgIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorKwkgIGlmIHRl c3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCisrCSAg ICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3lt X2NtZHMiOyB0aGVuCisrCSAgICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcworKwkgICAgZWxz ZQorKwkgICAgICBjbWRzPSRtb2R1bGVfY21kcworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBp ZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9j bWRzIjsgdGhlbgorKwkgICAgICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCisrCSAgICBlbHNl CisrCSAgICAgIGNtZHM9JGFyY2hpdmVfY21kcworKwkgICAgZmkKKysJICBmaQorKwlmaQorKwor KwlpZiB0ZXN0IC1uICIkZGVsZmlsZXMiOyB0aGVuCisrCSAgIyBBcHBlbmQgdGhlIGNvbW1hbmQg dG8gcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcyB0byAkY21kcy4KKysJICBldmFsIGNtZHM9XCJcJGNt ZHN+XCRSTSAkZGVsZmlsZXNcIgorKwlmaQorKworKwkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHBy ZWxvYWRlZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMKKysJaWYgdGVzdCAtbiAiJGRscHJlZmlsZXMi OyB0aGVuCisrCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJICBn ZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2 ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcworKwkgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJh Y3RfYXJjaGl2ZXNfcmVzdWx0IgorKwkgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9i anM9CisrCWZpCisrCisrCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwlmb3IgY21kIGluICRj bWRzOyBkbworKwkgIElGUz0iJHNhdmVfaWZzIgorKwkgIGV2YWwgY21kPVwiJGNtZFwiCisrCSAg JG9wdF9zaWxlbnQgfHwgeworKwkgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkY21kIgorKwkg ICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorKwkgIH0K KysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZCIgfHwgeworKwkgICAgbHRfZXhpdD0kPwor KworKwkgICAgIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CisrCSAg ICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAgICAgKCBjZCAiJG91dHB1dF9v YmpkaXIiICYmIFwKKysJICAgICAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAorKwkJJE1WICIk e3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKKysJICAgIGZpCisrCisrCSAgICBleGl0ICRsdF9l eGl0CisrCSAgfQorKwlkb25lCisrCUlGUz0iJHNhdmVfaWZzIgorKworKwkjIFJlc3RvcmUgdGhl IHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5r OyB0aGVuCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAk Uk0gJHtyZWFsbmFtZX1UICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1UICYmICRNViAke3Jl YWxuYW1lfVUgJHJlYWxuYW1lKScgfHwgZXhpdCAkPworKworKwkgIGlmIHRlc3QgLW4gIiRjb252 ZW5pZW5jZSI7IHRoZW4KKysJICAgIGlmIHRlc3QgLXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YyI7IHRoZW4KKysJICAgICAgZnVuY19zaG93X2V2YWwgJyR7Uk19ciAiJGdlbnRvcCInCisrCSAg ICBmaQorKwkgIGZpCisrCisrCSAgZXhpdCAkRVhJVF9TVUNDRVNTCisrCWZpCisrCisrCSMgQ3Jl YXRlIGxpbmtzIHRvIHRoZSByZWFsIGxpYnJhcnkuCisrCWZvciBsaW5rbmFtZSBpbiAkbGlua25h bWVzOyBkbworKwkgIGlmIHRlc3QgIiRyZWFsbmFtZSIgIT0gIiRsaW5rbmFtZSI7IHRoZW4KKysJ ICAgIGZ1bmNfc2hvd19ldmFsICcoY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRsaW5rbmFt ZSIgJiYgJExOX1MgIiRyZWFsbmFtZSIgIiRsaW5rbmFtZSIpJyAnZXhpdCAkPycKKysJICBmaQor Kwlkb25lCisrCisrCSMgSWYgLW1vZHVsZSBvciAtZXhwb3J0LWR5bmFtaWMgd2FzIHNwZWNpZmll ZCwgc2V0IHRoZSBkbG5hbWUuCisrCWlmIHRlc3QgIiRtb2R1bGUiID0geWVzIHx8IHRlc3QgIiRl eHBvcnRfZHluYW1pYyIgPSB5ZXM7IHRoZW4KKysJICAjIE9uIGFsbCBrbm93biBvcGVyYXRpbmcg c3lzdGVtcywgdGhlc2UgYXJlIGlkZW50aWNhbC4KKysJICBkbG5hbWU9IiRzb25hbWUiCisrCWZp CisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBvYmopCisrICAgICAgaWYgdGVzdCAtbiAi JGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysJZnVu Y193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrICAgICAgZmkK KysKKysgICAgICBjYXNlICIgJGRlcGxpYnMiIGluCisrICAgICAgKlwgLWwqIHwgKlwgLUwqKQor KwlmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIg OzsKKysgICAgICBlc2FjCisrCisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1bmNf d2FybmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisrICAgICAgdGVz dCAtbiAiJHhycGF0aCIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLVInIGlzIGlnbm9yZWQgZm9y IG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNfd2Fybmlu ZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgorKworKyAgICAgIHRl c3QgLW4gIiRyZWxlYXNlIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdu b3JlZCBmb3Igb2JqZWN0cyIKKysKKysgICAgICBjYXNlICRvdXRwdXQgaW4KKysgICAgICAqLmxv KQorKwl0ZXN0IC1uICIkb2JqcyRvbGRfZGVwbGlicyIgJiYgXAorKwkgIGZ1bmNfZmF0YWxfZXJy b3IgImNhbm5vdCBidWlsZCBsaWJyYXJ5IG9iamVjdCBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRv b2wgb2JqZWN0cyIKKysKKysJbGlib2JqPSRvdXRwdXQKKysJZnVuY19sbzJvICIkbGlib2JqIgor KwlvYmo9JGZ1bmNfbG8yb19yZXN1bHQKKysJOzsKKysgICAgICAqKQorKwlsaWJvYmo9CisrCW9i aj0iJG91dHB1dCIKKysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBEZWxldGUgdGhlIG9s ZCBvYmplY3RzLgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG9iaiAkbGlib2JqCisrCisr ICAgICAgIyBPYmplY3RzIGZyb20gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgVGhpcyBhc3N1bWVz CisrICAgICAgIyBzaW5nbGUtdmVyc2lvbiBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBXaGVuZXZl ciB3ZSBjcmVhdGUKKysgICAgICAjIGRpZmZlcmVudCBvbmVzIGZvciBQSUMvbm9uLVBJQywgdGhp cyB3ZSdsbCBoYXZlIHRvIGR1cGxpY2F0ZQorKyAgICAgICMgdGhlIGV4dHJhY3Rpb24uCisrICAg ICAgcmVsb2FkX2NvbnZfb2Jqcz0KKysgICAgICBnZW50b3A9CisrICAgICAgIyByZWxvYWRfY21k cyBydW5zICRMRCBkaXJlY3RseSwgc28gbGV0IHVzIGdldCByaWQgb2YKKysgICAgICAjIC1XbCBm cm9tIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIGFuZCBob3BlIHdlIGNhbiBnZXQgYnkgd2l0aAor KyAgICAgICMgdHVybmluZyBjb21tYSBpbnRvIHNwYWNlLi4KKysgICAgICB3bD0KKysKKysgICAg ICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCisrCWlmIHRlc3QgLW4gIiR3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICBldmFsIHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdz PVwiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKKysJICByZWxvYWRfY29udl9vYmpzPSRyZWxv YWRfb2Jqc1wgYCRFQ0hPICJYJHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRYc2VkIC1lICdz fCx8IHxnJ2AKKysJZWxzZQorKwkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvYmp9eCIKKysJ ICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysKKysJICBmdW5jX2V4dHJhY3RfYXJj aGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKKysJICByZWxvYWRfY29udl9vYmpzPSIkcmVsb2Fk X29ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCWZpCisrICAgICAgZmkKKysK KysgICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4KKysgICAgICByZWxvYWRfb2Jq cz0iJG9ianMkb2xkX2RlcGxpYnMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2Vk IC1lICcvXC4nJHtsaWJleHR9JCcvZCcgLWUgJy9cLmxpYiQvZCcgLWUgIiRsbzJvIiB8ICROTDJT UGAiICRyZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5n IHRlc3QKKysKKysgICAgICBvdXRwdXQ9IiRvYmoiCisrICAgICAgZnVuY19leGVjdXRlX2NtZHMg IiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrCisrICAgICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBk b2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisrICAgICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7 IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAn JHtSTX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAg ZmkKKysKKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4K KysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1y ICIkZ2VudG9wIicKKysJZmkKKysKKysJIyBDcmVhdGUgYW4gaW52YWxpZCBsaWJ0b29sIG9iamVj dCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QKKysJIyBhY2NpZGVudGFsbHkgbGluayBpdCBp bnRvIGEgcHJvZ3JhbS4KKysJIyAkc2hvdyAiZWNobyB0aW1lc3RhbXAgPiAkbGlib2JqIgorKwkj ICRvcHRfZHJ5X3J1biB8fCBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQg JD8KKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1u ICIkcGljX2ZsYWciIHx8IHRlc3QgIiRwaWNfbW9kZSIgIT0gZGVmYXVsdDsgdGhlbgorKwkjIE9u bHkgZG8gY29tbWFuZHMgaWYgd2UgcmVhbGx5IGhhdmUgZGlmZmVyZW50IFBJQyBvYmplY3RzLgor KwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMgJHJlbG9hZF9jb252X29ianMiCisrCW91dHB1dD0iJGxp Ym9iaiIKKysJZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrICAg ICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgorKwlmdW5jX3Nob3df ZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysgICAgICBmaQorKworKyAgICAgIGV4aXQgJEVYSVRf U1VDQ0VTUworKyAgICAgIDs7CisrCisrICAgIHByb2cpCisrICAgICAgY2FzZSAkaG9zdCBpbgor KwkqY3lnd2luKikgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0IgorKwkgICAgICAg ICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuZXhlOzsKKysgICAgICBlc2FjCisrICAg ICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZv JyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKKysKKysgICAgICB0ZXN0IC1uICIkcmVsZWFzZSIg JiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1z IgorKworKyAgICAgIHRlc3QgIiRwcmVsb2FkIiA9IHllcyBcCisrICAgICAgICAmJiB0ZXN0ICIk ZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBcCisrCSYmIHRlc3QgIiRkbG9wZW5fc2VsZiIgPSB1 bmtub3duIFwKKysJJiYgdGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duICYmIFwK KysJICBmdW5jX3dhcm5pbmcgIlxgTFRfSU5JVChbZGxvcGVuXSknIG5vdCB1c2VkLiBBc3N1bWlu ZyBubyBkbG9wZW4gc3VwcG9ydC4iCisrCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgICot Ki1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJIyBPbiBSaGFwc29keSByZXBsYWNl IHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJY29tcGlsZV9kZXBsaWJz PWAkRUNITyAiWCAkY29tcGlsZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0u bHRmcmFtZXdvcmsgLydgCisrCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9k ZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisrCTs7 CisrICAgICAgZXNhYworKworKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqLSotZGFyd2lu KikKKysJIyBEb24ndCBhbGxvdyBsYXp5IGxpbmtpbmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNv bnN0cnVjdG9ycworKwkjIEJ1dCBpcyBzdXBwb3NlZGx5IGZpeGVkIG9uIDEwLjQgb3IgbGF0ZXIg KHlheSEpLgorKwlpZiB0ZXN0ICIkdGFnbmFtZSIgPSBDWFggOyB0aGVuCisrCSAgY2FzZSAke01B Q09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSBpbgorKwkgICAgMTAuWzAxMjNdKQorKwkgICAg ICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJHt3bH0tYmluZF9hdF9sb2FkIgor KwkgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAke3dsfS1iaW5kX2F0 X2xvYWQiCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkKKysJIyBUaW1lIHRvIGNoYW5nZSBhbGwg b3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgorKwlj b21waWxlX2RlcGxpYnM9YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3Ml IFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWZpbmFsaXplX2Rl cGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRd KlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorKwk7OworKyAgICAgIGVzYWMKKysK KysKKysgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRo IHBhdGhzIHRvIG5vdCB5ZXQKKysgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAorKyAgICAgIG5ld19saWJzPQorKyAg ICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCisrCWNhc2UgIiAkbmV3X2xpYnMgIiBp bgorKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7CisrCSopCisrCSAgY2FzZSAiICRjb21waWxl X2RlcGxpYnMgIiBpbgorKwkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKKysJICAgIG5ld19saWJz PSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGlyIiA7OworKwkgIGVzYWMKKysJICA7OworKwllc2Fj CisrICAgICAgZG9uZQorKyAgICAgIGZvciBkZXBsaWIgaW4gJGNvbXBpbGVfZGVwbGliczsgZG8K KysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJ ICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIg OzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7 OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJz IgorKworKworKyAgICAgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGls ZV9kZXBsaWJzIgorKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRm aW5hbGl6ZV9kZXBsaWJzIgorKworKyAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0 aGVuCisrCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQg dGhlbS4KKysJZm9yIGxpYmRpciBpbiAkcnBhdGggJHhycGF0aDsgZG8KKysJICAjIFRoaXMgaXMg dGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCisrCSAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4K KysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVf cnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWRvbmUKKysgICAgICBmaQorKworKyAgICAg ICMgTm93IGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCisrICAgICAgcnBhdGg9CisrICAgICAg aGFyZGNvZGVfbGliZGlycz0KKysgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRm aW5hbGl6ZV9ycGF0aDsgZG8KKysJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0 aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAg aGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFj Y3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBp bgorKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yIiopCisrCQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGly cz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisr CQk7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1c IiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWci CisrCSAgZmkKKysJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAi JHBlcm1fcnBhdGggIiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgcGVybV9ycGF0 aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrCWNhc2UgJGhvc3Qg aW4KKysJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAq LWNlZ2NjKikKKysJICB0ZXN0YmluZGlyPWAke0VDSE99ICIkbGliZGlyIiB8ICR7U0VEfSAtZSAn cyovbGliJCovYmluKidgCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JGxp YmRpcjoiKikgOzsKKysJICA6OikgZGxsc2VhcmNocGF0aD0kbGliZGlyOzsKKysJICAqKSBkbGxz ZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokbGliZGlyIjs7CisrCSAgZXNhYworKwkgIGNhc2Ug OiRkbGxzZWFyY2hwYXRoOiBpbgorKwkgICoiOiR0ZXN0YmluZGlyOiIqKSA7OworKwkgIDo6KSBk bGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2Vh cmNocGF0aDokdGVzdGJpbmRpciI7OworKwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAg ZG9uZQorKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUg cnBhdGguCisrICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiICYm CisrCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJbGliZGlyPSIkaGFyZGNv ZGVfbGliZGlycyIKKysJZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wi CisrICAgICAgZmkKKysgICAgICBjb21waWxlX3JwYXRoPSIkcnBhdGgiCisrCisrICAgICAgcnBh dGg9CisrICAgICAgaGFyZGNvZGVfbGliZGlycz0KKysgICAgICBmb3IgbGliZGlyIGluICRmaW5h bGl6ZV9ycGF0aDsgZG8KKysJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMi OyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVu CisrCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJICAgICAgaGFy ZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3Vt dWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgor KwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIiopCisrCQk7OworKwkgICAgICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0i JGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7 OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisr CSAgZmkKKysJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJGZp bmFsaXplX3Blcm1fcnBhdGggIiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgZmlu YWxpemVfcGVybV9ycGF0aD0iJGZpbmFsaXplX3Blcm1fcnBhdGggJGxpYmRpciIgOzsKKysJICBl c2FjCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVk IGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisrICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IiICYmCisrCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4K KysJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgZmkKKysgICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJw YXRoIgorKworKyAgICAgIGlmIHRlc3QgLW4gIiRsaWJvYmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzOyB0aGVuCisrCSMgVHJhbnNmb3JtIGFsbCB0aGUgbGlicmFyeSBvYmplY3Rz IGludG8gc3RhbmRhcmQgb2JqZWN0cy4KKysJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21w aWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKysJZmlu YWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNl ZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorKyAgICAgIGZpCisrCisrICAgICAgZnVuY19nZW5lcmF0 ZV9kbHN5bXMgIiRvdXRwdXRuYW1lIiAiQFBST0dSQU1AIiAibm8iCisrCisrICAgICAgIyB0ZW1w bGF0ZSBwcmVsaW5raW5nIHN0ZXAKKysgICAgICBpZiB0ZXN0IC1uICIkcHJlbGlua19jbWRzIjsg dGhlbgorKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHByZWxpbmtfY21kcyIgJ2V4aXQgJD8nCisrICAg ICAgZmkKKysKKysgICAgICB3cmFwcGVyc19yZXF1aXJlZD15ZXMKKysgICAgICBjYXNlICRob3N0 IGluCisrICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKysgICAgICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorKyAgICAgICAgICB3cmFwcGVyc19yZXF1aXJl ZD1ubworKyAgICAgICAgZmkKKysgICAgICAgIDs7CisrICAgICAgKmNlZ2NjKQorKyAgICAgICAg IyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYywgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyBhbnl3 YXkuCisrICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgOzsKKysgICAgICAq KQorKyAgICAgICAgaWYgdGVzdCAiJG5lZWRfcmVsaW5rIiA9IG5vIHx8IHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorKyAgICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1u bworKyAgICAgICAgZmkKKysgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIGlmIHRlc3Qg IiR3cmFwcGVyc19yZXF1aXJlZCIgPSBubzsgdGhlbgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBm aWxlIHNwZWNpZmljYXRpb24uCisrCWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9j b21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwlsaW5rX2Nv bW1hbmQ9IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKysKKysJIyBXZSBoYXZlIG5v IHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBub3cu CisrCWV4aXRfc3RhdHVzPTAKKysJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0 X3N0YXR1cz0kPycKKysKKysJIyBEZWxldGUgdGhlIGdlbmVyYXRlZCBmaWxlcy4KKysJaWYgdGVz dCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IjsgdGhlbgorKwkg IGZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2Jq ZXh0fSInCisrCWZpCisrCisrCWV4aXQgJGV4aXRfc3RhdHVzCisrICAgICAgZmkKKysKKysgICAg ICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhl bgorKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRo JGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29tcGlsZV9jb21tYW5kIgor KyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4K KysJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIkZmluYWxpemVfc2hsaWJwYXRo XCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5kIgorKyAgICAgIGZpCisrCisrICAg ICAgY29tcGlsZV92YXI9CisrICAgICAgZmluYWxpemVfdmFyPQorKyAgICAgIGlmIHRlc3QgLW4g IiRydW5wYXRoX3ZhciI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJHBlcm1fcnBhdGgiOyB0aGVuCisr CSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KKysJICBycGF0aD0KKysJICBmb3Ig ZGlyIGluICRwZXJtX3JwYXRoOyBkbworKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorKwkgIGRv bmUKKysJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJc IiAiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJtX3JwYXRoIjsgdGhlbgorKwkg ICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisrCSAgcnBhdGg9CisrCSAgZm9yIGRp ciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KKysJICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIK KysJICBkb25lCisrCSAgZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5w YXRoX3ZhclwiICIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRub19pbnN0 YWxsIiA9IHllczsgdGhlbgorKwkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBz Y3JpcHQuCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21w aWxlX3JwYXRoIgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisr CWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQ VVRAJSciJG91dHB1dCInJWcnYAorKwkjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlLgorKwkk b3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQKKysJIyBMaW5rIHRoZSBleGVjdXRhYmxlIGFuZCBl eGl0CisrCWZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysJZXhpdCAk RVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0 aW9uIiA9IHJlbGluazsgdGhlbgorKwkjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQKKysJbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVf cnBhdGgiCisrCXJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQk ZmluYWxpemVfcnBhdGgiCisrCisrCWZ1bmNfd2FybmluZyAidGhpcyBwbGF0Zm9ybSBkb2VzIG5v dCBsaWtlIHVuaW5zdGFsbGVkIHNoYXJlZCBsaWJyYXJpZXMiCisrCWZ1bmNfd2FybmluZyAiXGAk b3V0cHV0JyB3aWxsIGJlIHJlbGlua2VkIGR1cmluZyBpbnN0YWxsYXRpb24iCisrICAgICAgZWxz ZQorKwlpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiAhPSBubzsgdGhlbgorKwkgIGxpbmtfY29tbWFu ZD0iJGZpbmFsaXplX3ZhciRjb21waWxlX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisrCSAgaWYg dGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPWAk RUNITyAiWCRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIgfCAkWHNl ZCAtZSAncyVAT1VUUFVUQCVcJHByb2dkaXIvXCRmaWxlJWcnYAorKwkgIGVsc2UKKysJICAgICMg ZmFzdF9pbnN0YWxsIGlzIHNldCB0byBuZWVkbGVzcworKwkgICAgcmVsaW5rX2NvbW1hbmQ9Cisr CSAgZmkKKysJZWxzZQorKwkgIGxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29t bWFuZCRjb21waWxlX3JwYXRoIgorKwkgIHJlbGlua19jb21tYW5kPSIkZmluYWxpemVfdmFyJGZp bmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisrCWZpCisrICAgICAgZmkKKysKKysgICAg ICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrICAgICAgbGlua19j b21tYW5kPWAkRUNITyAiWCRsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIk b3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSInJWcnYAorKworKyAgICAgICMgRGVsZXRlIHRoZSBv bGQgb3V0cHV0IGZpbGVzLgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dCAkb3V0 cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci9sdC0kb3V0cHV0bmFtZQorKwor KyAgICAgIGZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKysKKysgICAg ICAjIE5vdyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0LgorKyAgICAgIGZ1bmNfdmVyYm9zZSAi Y3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBm b3Igc2hpcHBpbmcuCisrICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgor KwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2 aW9yCisrCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbworKwkgIGlm IGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFu ZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFy PTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbGlmIGV2YWwgdmFy X3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KKysJICAgIHJlbGlua19j b21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJICBlbHNlCisr CSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgorKwkgICAgcmVsaW5rX2NvbW1h bmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlu a19jb21tYW5kIgorKwkgIGZpCisrCWRvbmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsg JHJlbGlua19jb21tYW5kKSIKKysJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21t YW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgICBmaQorKworKyAgICAg ICMgUXVvdGUgJEVDSE8gZm9yIHNoaXBwaW5nLgorKyAgICAgIGlmIHRlc3QgIlgkRUNITyIgPSAi WCRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorKwljYXNlICRwcm9ncGF0 aCBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRo IC0tZmFsbGJhY2stZWNobyI7OworKwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAt LWZhbGxiYWNrLWVjaG8iOzsKKysJZXNhYworKwlxZWNobz1gJEVDSE8gIlgkcWVjaG8iIHwgJFhz ZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGVsc2UKKysJcWVjaG89YCRFQ0hPICJY JEVDSE8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGZpCisrCisrICAg ICAgIyBPbmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBub3QgaW4gZHJ5IHJ1biBtb2RlLgorKyAg ICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCSMgd2luMzIgd2lsbCB0aGluayB0aGUgc2NyaXB0IGlz IGEgYmluYXJ5IGlmIGl0IGhhcworKwkjIGEgLmV4ZSBzdWZmaXgsIHNvIHdlIHN0cmlwIGl0IG9m ZiBoZXJlLgorKwljYXNlICRvdXRwdXQgaW4KKysJICAqLmV4ZSkgZnVuY19zdHJpcG5hbWUgJycg Jy5leGUnICIkb3V0cHV0IgorKwkgICAgICAgICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dCA7OworKwllc2FjCisrCSMgdGVzdCBmb3IgY3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5l eGUgZXh0ZW5zaW9ucworKwljYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiopCisrCSAgICBleGVl eHQ9LmV4ZQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0bmFtZSIKKysJ ICAgIG91dHB1dG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworKwkgICopIGV4ZWV4dD0g OzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKysJ ICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRvdXRwdXQiICIiICIuIgorKwkgICAgb3V0 cHV0X25hbWU9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0CisrCSAgICBvdXRwdXRfcGF0aD0kZnVuY19k aXJuYW1lX3Jlc3VsdAorKwkgICAgY3dyYXBwZXJzb3VyY2U9IiRvdXRwdXRfcGF0aC8kb2JqZGly L2x0LSRvdXRwdXRfbmFtZS5jIgorKwkgICAgY3dyYXBwZXI9IiRvdXRwdXRfcGF0aC8kb3V0cHV0 X25hbWUuZXhlIgorKwkgICAgJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKKysJICAgIHRy YXAgIiRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVyOyBleGl0ICRFWElUX0ZBSUxVUkUiIDEg MiAxNQorKworKwkgICAgZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYyA+ICRjd3JhcHBlcnNvdXJj ZQorKworKwkgICAgIyBUaGUgd3JhcHBlciBleGVjdXRhYmxlIGlzIGJ1aWx0IHVzaW5nIHRoZSAk aG9zdCBjb21waWxlciwKKysJICAgICMgYmVjYXVzZSBpdCBjb250YWlucyAkaG9zdCBwYXRocyBh bmQgZmlsZXMuIElmIGNyb3NzLQorKwkgICAgIyBjb21waWxpbmcsIGl0LCBsaWtlIHRoZSB0YXJn ZXQgZXhlY3V0YWJsZSwgbXVzdCBiZQorKwkgICAgIyBleGVjdXRlZCBvbiB0aGUgJGhvc3Qgb3Ig dW5kZXIgYW4gZW11bGF0aW9uIGVudmlyb25tZW50LgorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsK KysJICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1vICRjd3JhcHBlciAkY3dyYXBwZXJzb3VyY2UKKysJ ICAgICAgJFNUUklQICRjd3JhcHBlcgorKwkgICAgfQorKworKwkgICAgIyBOb3csIGNyZWF0ZSB0 aGUgd3JhcHBlciBzY3JpcHQgZm9yIGZ1bmNfc291cmNlIHVzZToKKysJICAgIGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWUgJGN3cmFwcGVyCisrCSAgICAkUk0gJGZ1bmNfbHR3cmFwcGVyX3Njcmlw dG5hbWVfcmVzdWx0CisrCSAgICB0cmFwICIkUk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVf cmVzdWx0OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKwkgICAgJG9wdF9kcnlfcnVuIHx8 IHsKKysJICAgICAgIyBub3RlOiB0aGlzIHNjcmlwdCB3aWxsIG5vdCBiZSBleGVjdXRlZCwgc28g ZG8gbm90IGNobW9kLgorKwkgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkIiA9ICJ4JGhvc3QiIDsgdGhl bgorKwkJJGN3cmFwcGVyIC0tbHQtZHVtcC1zY3JpcHQgPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZV9yZXN1bHQKKysJICAgICAgZWxzZQorKwkJZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkZnVu Y19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJICAgICAgZmkKKysJICAgIH0KKysJICA7 OworKwkgICogKQorKwkgICAgJFJNICRvdXRwdXQKKysJICAgIHRyYXAgIiRSTSAkb3V0cHV0OyBl eGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKwkgICAgZnVuY19lbWl0X3dyYXBwZXIgbm8g PiAkb3V0cHV0CisrCSAgICBjaG1vZCAreCAkb3V0cHV0CisrCSAgOzsKKysJZXNhYworKyAgICAg IH0KKysgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgICA7OworKyAgICBlc2FjCisrCisr ICAgICMgU2VlIGlmIHdlIG5lZWQgdG8gYnVpbGQgYW4gb2xkLWZhc2hpb25lZCBhcmNoaXZlLgor KyAgICBmb3Igb2xkbGliIGluICRvbGRsaWJzOyBkbworKworKyAgICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0gY29udmVuaWVuY2U7IHRoZW4KKysJb2xkb2Jqcz0iJGxpYm9ianNf c2F2ZSAkc3ltZmlsZW9iaiIKKysJYWRkbGlicz0iJGNvbnZlbmllbmNlIgorKwlidWlsZF9saWJ0 b29sX2xpYnM9bm8KKysgICAgICBlbHNlCisrCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0gbW9kdWxlOyB0aGVuCisrCSAgb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSIKKysJICBidWlsZF9s aWJ0b29sX2xpYnM9bm8KKysJZWxzZQorKwkgIG9sZG9ianM9IiRvbGRfZGVwbGlicyAkbm9uX3Bp Y19vYmplY3RzIgorKwkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IHllcyAmJiB0ZXN0IC1mICIkc3lt ZmlsZW9iaiI7IHRoZW4KKysJICAgIG9sZG9ianM9IiRvbGRvYmpzICRzeW1maWxlb2JqIgorKwkg IGZpCisrCWZpCisrCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCisrICAgICAgZmkKKysKKysg ICAgICBpZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KKysJZ2VudG9wPSIkb3V0cHV0X29iamRp ci8ke291dHB1dG5hbWV9eCIKKysJZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisr CWZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRhZGRsaWJzCisrCW9sZG9ianM9IiRvbGRv YmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorKyAgICAgIGZpCisrCisrICAgICAg IyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUgY29tbWFuZHMuCisrICAgICAgaWYgdGVz dCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiID0geWVzOyB0aGVuCisrCWNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKysg ICAgICBlbHNlCisrCisrCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmll bmNlIGxpYnJhcmllcworKwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KKysJICBnZW50 b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVy YXRlZCAkZ2VudG9wIgorKworKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHBy ZWZpbGVzCisrCSAgb2xkb2Jqcz0iJG9sZG9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1 bHQiCisrCWZpCisrCisrCSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGlu IGFyY2hpdmVzLiAgV2UgaGF2ZQorKwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGgg ZHVwbGljYXRlIGJhc2VuYW1lcyBpZiB3ZQorKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVt IGFmdGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcgYQorKwkjIHN0YXRpYyBhcmNoaXZlIG91 dCBvZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4gbGlua2luZworKwkjIHRoZSBlbnRp cmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQorKwkjIG5v dCBzdXBwb3J0ZWQgYnkgbGlidG9vbCkuCisrCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisrCSAg ICBkbworKwkgICAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgorKwkgICAgICAkRUNITyAiJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgorKwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxs IDI+JjEpOyB0aGVuCisrCSAgOgorKwllbHNlCisrCSAgJEVDSE8gImNvcHlpbmcgc2VsZWN0ZWQg b2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIKKysJICBnZW50b3A9 IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRl ZCAkZ2VudG9wIgorKwkgIGZ1bmNfbWtkaXJfcCAiJGdlbnRvcCIKKysJICBzYXZlX29sZG9ianM9 JG9sZG9ianMKKysJICBvbGRvYmpzPQorKwkgIGNvdW50ZXI9MQorKwkgIGZvciBvYmogaW4gJHNh dmVfb2xkb2JqcworKwkgIGRvCisrCSAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgorKwkgICAgb2Jq YmFzZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICAgY2FzZSAiICRvbGRvYmpzICIgaW4K KysJICAgICIgIikgb2xkb2Jqcz0kb2JqIDs7CisrCSAgICAqW1wgL10iJG9iamJhc2UgIiopCisr CSAgICAgIHdoaWxlIDo7IGRvCisrCQkjIE1ha2Ugc3VyZSB3ZSBkb24ndCBwaWNrIGFuIGFsdGVy bmF0ZSBuYW1lIHRoYXQgYWxzbworKwkJIyBvdmVybGFwcy4KKysJCW5ld29iaj1sdCRjb3VudGVy LSRvYmpiYXNlCisrCQlmdW5jX2FyaXRoICRjb3VudGVyICsgMQorKwkJY291bnRlcj0kZnVuY19h cml0aF9yZXN1bHQKKysJCWNhc2UgIiAkb2xkb2JqcyAiIGluCisrCQkqW1wgL10iJG5ld29iaiAi KikgOzsKKysJCSopIGlmIHRlc3QgISAtZiAiJGdlbnRvcC8kbmV3b2JqIjsgdGhlbiBicmVhazsg ZmkgOzsKKysJCWVzYWMKKysJICAgICAgZG9uZQorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAibG4g JG9iaiAkZ2VudG9wLyRuZXdvYmogfHwgY3AgJG9iaiAkZ2VudG9wLyRuZXdvYmoiCisrCSAgICAg IG9sZG9ianM9IiRvbGRvYmpzICRnZW50b3AvJG5ld29iaiIKKysJICAgICAgOzsKKysJICAgICop IG9sZG9ianM9IiRvbGRvYmpzICRvYmoiIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlmaQor KwlldmFsIGNtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCisrCisrCWZ1bmNfbGVuICIgJGNtZHMi CisrCWxlbj0kZnVuY19sZW5fcmVzdWx0CisrCWlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRf bGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgorKwkgIGNtZHM9JG9sZF9h cmNoaXZlX2NtZHMKKysJZWxzZQorKwkgICMgdGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0 byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGluIHBhcnRzCisrCSAgZnVuY192ZXJib3NlICJ1c2lu ZyBwaWVjZXdpc2UgYXJjaGl2ZSBsaW5raW5nLi4uIgorKwkgIHNhdmVfUkFOTElCPSRSQU5MSUIK KysJICBSQU5MSUI9OgorKwkgIG9iamxpc3Q9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgc2F2ZV9v bGRvYmpzPSRvbGRvYmpzCisrCSAgb2xkb2Jqcz0KKysJICAjIElzIHRoZXJlIGEgYmV0dGVyIHdh eSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KKysJICBmb3Igb2JqIGlu ICRzYXZlX29sZG9ianMKKysJICBkbworKwkgICAgbGFzdF9vbGRvYmo9JG9iagorKwkgIGRvbmUK KysJICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICBmdW5jX2xlbiAi ICR0ZXN0X2NtZHMiCisrCSAgbGVuMD0kZnVuY19sZW5fcmVzdWx0CisrCSAgbGVuPSRsZW4wCisr CSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCisrCSAgZG8KKysJICAgIGZ1bmNfbGVuICIgJG9i aiIKKysJICAgIGZ1bmNfYXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1bHQKKysJICAgIGxlbj0k ZnVuY19hcml0aF9yZXN1bHQKKysJICAgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgorKwkg ICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCisrCSAgICAgIDoKKysJ ICAgIGVsc2UKKysJICAgICAgIyB0aGUgYWJvdmUgY29tbWFuZCBzaG91bGQgYmUgdXNlZCBiZWZv cmUgaXQgZ2V0cyB0b28gbG9uZworKwkgICAgICBvbGRvYmpzPSRvYmpsaXN0CisrCSAgICAgIGlm IHRlc3QgIiRvYmoiID0gIiRsYXN0X29sZG9iaiIgOyB0aGVuCisrCQlSQU5MSUI9JHNhdmVfUkFO TElCCisrCSAgICAgIGZpCisrCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0 X2NtZHM9JGNvbmNhdF9jbWRzfgorKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0 X2NtZHN9JG9sZF9hcmNoaXZlX2NtZHNcIgorKwkgICAgICBvYmpsaXN0PQorKwkgICAgICBsZW49 JGxlbjAKKysJICAgIGZpCisrCSAgZG9uZQorKwkgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKKysJICBv bGRvYmpzPSRvYmpsaXN0CisrCSAgaWYgdGVzdCAiWCRvbGRvYmpzIiA9ICJYIiA7IHRoZW4KKysJ ICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHNcIgorKwkgIGVsc2UKKysJICAgIGV2YWwgY21k cz1cIlwkY29uY2F0X2NtZHN+XCRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICBmaQorKwlmaQorKyAg ICAgIGZpCisrICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRjbWRzIiAnZXhpdCAkPycKKysgICAg ZG9uZQorKworKyAgICB0ZXN0IC1uICIkZ2VuZXJhdGVkIiAmJiBcCisrICAgICAgZnVuY19zaG93 X2V2YWwgIiR7Uk19ciRnZW5lcmF0ZWQiCisrCisrICAgICMgTm93IGNyZWF0ZSB0aGUgbGlidG9v bCBhcmNoaXZlLgorKyAgICBjYXNlICRvdXRwdXQgaW4KKysgICAgKi5sYSkKKysgICAgICBvbGRf bGlicmFyeT0KKysgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIG9sZF9saWJy YXJ5PSIkbGlibmFtZS4kbGliZXh0IgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91 dHB1dCIKKysKKysgICAgICAjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0 IGNvbXBpbGVyIGJlaGF2aW9yCisrICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbms7IGRvCisrCWlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisr CSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8ICRsdF91bnNl dCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2NvbW1hbmQiCisr CWVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgor KwkgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIK KysJZWxzZQorKwkgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFsdWUiCisrCSAgcmVsaW5r X2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsg JHJlbGlua19jb21tYW5kIgorKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFF1b3RlIHRoZSBs aW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgorKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3 ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9v bF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKKysgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8g IlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAg IGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgorKwlyZWxpbmtfY29t bWFuZD0KKysgICAgICBmaQorKworKyAgICAgICMgT25seSBjcmVhdGUgdGhlIG91dHB1dCBpZiBu b3QgYSBkcnkgcnVuLgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCWZvciBpbnN0YWxsZWQg aW4gbm8geWVzOyBkbworKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisrCSAg ICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0aGVuCisrCSAgICAgIGJyZWFrCisrCSAg ICBmaQorKwkgICAgb3V0cHV0PSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSJpCisrCSAgICAj IFJlcGxhY2UgYWxsIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzIHdpdGggdGhlIGluc3Rh bGxlZCBvbmVzCisrCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9CisrCSAgICBmb3IgZGVwbGliIGlu ICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICAgIGNhc2UgJGRlcGxpYiBpbgorKwkgICAgICAq LmxhKQorKwkJZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIKKysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKKysJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkk L1wxL3AnICRkZXBsaWJgCisrCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0 YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJ bmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCisr CQk7OworKwkgICAgICAqKSBuZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMg JGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9s aWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgbmV3ZGxmaWxlcz0KKysKKysJICAgIGZv ciBsaWIgaW4gJGRsZmlsZXM7IGRvCisrCSAgICAgIGNhc2UgJGxpYiBpbgorKwkgICAgICAqLmxh KQorKwkgICAgICAgIGZ1bmNfYmFzZW5hbWUgIiRsaWIiCisrCQluYW1lPSIkZnVuY19iYXNlbmFt ZV9yZXN1bHQiCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwp JC9cMS9wJyAkbGliYAorKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICBmdW5jX2ZhdGFs X2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysJCW5ld2Rs ZmlsZXM9IiRuZXdkbGZpbGVzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICAqKSBuZXdk bGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIiA7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisr CSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKKysJICAgIG5ld2RscHJlZmlsZXM9CisrCSAgICBm b3IgbGliIGluICRkbHByZWZpbGVzOyBkbworKwkgICAgICBjYXNlICRsaWIgaW4KKysJICAgICAg Ki5sYSkKKysJCSMgT25seSBwYXNzIHByZW9wZW5lZCBmaWxlcyB0byB0aGUgcHNldWRvLWFyY2hp dmUgKGZvcgorKwkJIyBldmVudHVhbCBsaW5raW5nIHdpdGggdGhlIGFwcC4gdGhhdCBsaW5rcyBp dCkgaWYgd2UKKysJCSMgZGlkbid0IGFscmVhZHkgbGluayB0aGUgcHJlb3BlbmVkIG9iamVjdHMg ZGlyZWN0bHkgaW50bworKwkJIyB0aGUgbGlicmFyeToKKysJCWZ1bmNfYmFzZW5hbWUgIiRsaWIi CisrCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9 IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAorKwkJdGVzdCAteiAiJGxpYmRp ciIgJiYgXAorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxp YnRvb2wgYXJjaGl2ZSIKKysJCW5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIv JG5hbWUiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkbHByZWZpbGVz PSIkbmV3ZGxwcmVmaWxlcyIKKysJICBlbHNlCisrCSAgICBuZXdkbGZpbGVzPQorKwkgICAgZm9y IGxpYiBpbiAkZGxmaWxlczsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBb QS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsK KysJICAgICAgZXNhYworKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgorKwkg ICAgZG9uZQorKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrCSAgICBuZXdkbHByZWZpbGVz PQorKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgICAgY2FzZSAkbGliIGlu CisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1g cHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3 ZGxwcmVmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJl ZmlsZXMiCisrCSAgZmkKKysJICAkUk0gJG91dHB1dAorKwkgICMgcGxhY2UgZGxuYW1lIGluIGNv cnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgorKwkgIHRkbG5hbWU9JGRsbmFtZQorKwkgIGNhc2Ug JGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgorKwkgICAgKmN5Z3dp biosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsIHwgKmNlZ2Nj KiwqbGFpLHllcyxubywqLmRsbCkgdGRsbmFtZT0uLi9iaW4vJGRsbmFtZSA7OworKwkgIGVzYWMK KysJICAkRUNITyA+ICRvdXRwdXQgIlwKKysjICRvdXRwdXRuYW1lIC0gYSBsaWJ0b29sIGxpYnJh cnkgZmlsZQorKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1Q KSAkVkVSU0lPTgorKyMKKysjIFBsZWFzZSBETyBOT1QgZGVsZXRlIHRoaXMgZmlsZSEKKysjIEl0 IGlzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyB0aGUgbGlicmFyeS4KKysKKysjIFRoZSBuYW1lIHRo YXQgd2UgY2FuIGRsb3BlbigzKS4KKytkbG5hbWU9JyR0ZGxuYW1lJworKworKyMgTmFtZXMgb2Yg dGhpcyBsaWJyYXJ5LgorK2xpYnJhcnlfbmFtZXM9JyRsaWJyYXJ5X25hbWVzJworKworKyMgVGhl IG5hbWUgb2YgdGhlIHN0YXRpYyBhcmNoaXZlLgorK29sZF9saWJyYXJ5PSckb2xkX2xpYnJhcnkn CisrCisrIyBMaW5rZXIgZmxhZ3MgdGhhdCBjYW4gbm90IGdvIGluIGRlcGVuZGVuY3lfbGlicy4K Kytpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSckbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MnCisr CisrIyBMaWJyYXJpZXMgdGhhdCB0aGlzIG9uZSBkZXBlbmRzIHVwb24uCisrZGVwZW5kZW5jeV9s aWJzPSckZGVwZW5kZW5jeV9saWJzJworKworKyMgTmFtZXMgb2YgYWRkaXRpb25hbCB3ZWFrIGxp YnJhcmllcyBwcm92aWRlZCBieSB0aGlzIGxpYnJhcnkKKyt3ZWFrX2xpYnJhcnlfbmFtZXM9JyR3 ZWFrX2xpYnMnCisrCisrIyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciAkbGlibmFtZS4KKytjdXJy ZW50PSRjdXJyZW50CisrYWdlPSRhZ2UKKytyZXZpc2lvbj0kcmV2aXNpb24KKysKKysjIElzIHRo aXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8KKytpbnN0YWxsZWQ9JGluc3RhbGxlZAor KworKyMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWlu c3QgLW1vZHVsZXM/Cisrc2hvdWxkbm90bGluaz0kbW9kdWxlCisrCisrIyBGaWxlcyB0byBkbG9w ZW4vZGxwcmVvcGVuCisrZGxvcGVuPSckZGxmaWxlcycKKytkbHByZW9wZW49JyRkbHByZWZpbGVz JworKworKyMgRGlyZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxl ZCBpbjoKKytsaWJkaXI9JyRpbnN0YWxsX2xpYmRpciciCisrCSAgaWYgdGVzdCAiJGluc3RhbGxl ZCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCisrCSAgICAkRUNITyA+ PiAkb3V0cHV0ICJcCisrcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKKysJICBm aQorKwlkb25lCisrICAgICAgfQorKworKyAgICAgICMgRG8gYSBzeW1ib2xpYyBsaW5rIHNvIHRo YXQgdGhlIGxpYnRvb2wgYXJjaGl2ZSBjYW4gYmUgZm91bmQgaW4KKysgICAgICAjIExEX0xJQlJB UllfUEFUSCBiZWZvcmUgdGhlIHByb2dyYW0gaXMgaW5zdGFsbGVkLgorKyAgICAgIGZ1bmNfc2hv d19ldmFsICcoIGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJNICIkb3V0cHV0bmFtZSIgJiYgJExO X1MgIi4uLyRvdXRwdXRuYW1lIiAiJG91dHB1dG5hbWUiICknICdleGl0ICQ/JworKyAgICAgIDs7 CisrICAgIGVzYWMKKysgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrfQorKworK3sgdGVzdCAiJG1v ZGUiID0gbGluayB8fCB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IH0gJiYKKysgICAgZnVuY19tb2Rl X2xpbmsgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21vZGVfdW5pbnN0YWxsIGFyZy4uLgorK2Z1 bmNfbW9kZV91bmluc3RhbGwgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgUk09IiRub25v cHQiCisrICAgIGZpbGVzPQorKyAgICBybWZvcmNlPQorKyAgICBleGl0X3N0YXR1cz0wCisrCisr ICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgdmFy aWFibGVzIHJhdGhlcgorKyAgICAjIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4KKysgICAg bGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCisrCisrICAgIGZvciBhcmcKKysgICAgZG8K KysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtZikgUk09IiRSTSAkYXJnIjsgcm1mb3JjZT15 ZXMgOzsKKysgICAgICAtKikgUk09IiRSTSAkYXJnIiA7OworKyAgICAgICopIGZpbGVzPSIkZmls ZXMgJGFyZyIgOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgdGVzdCAteiAiJFJN IiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHBy b2dyYW0iCisrCisrICAgIHJtZGlycz0KKysKKysgICAgb3JpZ29iamRpcj0iJG9iamRpciIKKysg ICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworKyAgICAgIGZ1bmNfZGlybmFtZSAiJGZpbGUiICIi ICIuIgorKyAgICAgIGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrICAgICAgaWYgdGVzdCAi WCRkaXIiID0gWC47IHRoZW4KKysJb2JqZGlyPSIkb3JpZ29iamRpciIKKysgICAgICBlbHNlCisr CW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKKysgICAgICBmaQorKyAgICAgIGZ1bmNfYmFzZW5h bWUgIiRmaWxlIgorKyAgICAgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysgICAgICB0 ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgorKworKyAgICAgICMgUmVt ZW1iZXIgb2JqZGlyIGZvciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1 cGxpY2F0ZXMKKysgICAgICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgorKwljYXNlICIg JHJtZGlycyAiIGluCisrCSAgKiIgJG9iamRpciAiKikgOzsKKysJICAqKSBybWRpcnM9IiRybWRp cnMgJG9iamRpciIgOzsKKysJZXNhYworKyAgICAgIGZpCisrCisrICAgICAgIyBEb24ndCBlcnJv ciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4KKysgICAgICBp ZiB7IHRlc3QgLUwgIiRmaWxlIjsgfSA+L2Rldi9udWxsIDI+JjEgfHwKKysJIHsgdGVzdCAtaCAi JGZpbGUiOyB9ID4vZGV2L251bGwgMj4mMSB8fAorKwkgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisr CToKKysgICAgICBlbGlmIHRlc3QgLWQgIiRmaWxlIjsgdGhlbgorKwlleGl0X3N0YXR1cz0xCisr CWNvbnRpbnVlCisrICAgICAgZWxpZiB0ZXN0ICIkcm1mb3JjZSIgPSB5ZXM7IHRoZW4KKysJY29u dGludWUKKysgICAgICBmaQorKworKyAgICAgIHJtZmlsZXM9IiRmaWxlIgorKworKyAgICAgIGNh c2UgJG5hbWUgaW4KKysgICAgICAqLmxhKQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNoaXZl LCBzbyB2ZXJpZnkgaXQuCisrCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUiOyB0aGVuCisrCSAgZnVu Y19zb3VyY2UgJGRpci8kbmFtZQorKworKwkgICMgRGVsZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmll cyBhbmQgc3ltbGlua3MuCisrCSAgZm9yIG4gaW4gJGxpYnJhcnlfbmFtZXM7IGRvCisrCSAgICBy bWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuIgorKwkgIGRvbmUKKysJICB0ZXN0IC1uICIkb2xk X2xpYnJhcnkiICYmIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG9sZF9saWJyYXJ5IgorKwor KwkgIGNhc2UgIiRtb2RlIiBpbgorKwkgIGNsZWFuKQorKwkgICAgY2FzZSAiICAkbGlicmFyeV9u YW1lcyAiIGluCisrCSAgICAjICIgICIgaW4gdGhlIGJlZ2lubmluZyBjYXRjaGVzIGVtcHR5ICRk bG5hbWUKKysJICAgICoiICRkbG5hbWUgIiopIDs7CisrCSAgICAqKSBybWZpbGVzPSIkcm1maWxl cyAkb2JqZGlyLyRkbG5hbWUiIDs7CisrCSAgICBlc2FjCisrCSAgICB0ZXN0IC1uICIkbGliZGly IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfWkiCisr CSAgICA7OworKwkgIHVuaW5zdGFsbCkKKysJICAgIGlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVz IjsgdGhlbgorKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdHVuaW5zdGFsbCBj b21tYW5kcy4KKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0dW5pbnN0YWxsX2NtZHMi ICd0ZXN0ICIkcm1mb3JjZSIgPSB5ZXMgfHwgZXhpdF9zdGF0dXM9MScKKysJICAgIGZpCisrCisr CSAgICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCisrCSAgICAgICMgRG8gZWFjaCBj b21tYW5kIGluIHRoZSBvbGRfcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKysJICAgICAgZnVuY19l eGVjdXRlX2NtZHMgIiRvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0g eWVzIHx8IGV4aXRfc3RhdHVzPTEnCisrCSAgICBmaQorKwkgICAgIyBGSVhNRTogc2hvdWxkIHJl aW5zdGFsbCB0aGUgYmVzdCByZW1haW5pbmcgc2hhcmVkIGxpYnJhcnkuCisrCSAgICA7OworKwkg IGVzYWMKKysJZmkKKysJOzsKKysKKysgICAgICAqLmxvKQorKwkjIFBvc3NpYmx5IGEgbGlidG9v bCBvYmplY3QsIHNvIHZlcmlmeSBpdC4KKysJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4K KysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisrCSAgZnVuY19zb3VyY2UgJGRpci8kbmFtZQor KworKwkgICMgQWRkIFBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgor KwkgIGlmIHRlc3QgLW4gIiRwaWNfb2JqZWN0IiAmJgorKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0 IiAhPSBub25lOyB0aGVuCisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZGlyLyRwaWNfb2JqZWN0 IgorKwkgIGZpCisrCisrCSAgIyBBZGQgbm9uLVBJQyBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgZmls ZXMgdG8gcmVtb3ZlLgorKwkgIGlmIHRlc3QgLW4gIiRub25fcGljX29iamVjdCIgJiYKKysJICAg ICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgIHJtZmlsZXM9IiRy bWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgorKwkgIGZpCisrCWZpCisrCTs7CisrCisrICAg ICAgKikKKysJaWYgdGVzdCAiJG1vZGUiID0gY2xlYW4gOyB0aGVuCisrCSAgbm9leGVuYW1lPSRu YW1lCisrCSAgY2FzZSAkZmlsZSBpbgorKwkgICouZXhlKQorKwkgICAgZnVuY19zdHJpcG5hbWUg JycgJy5leGUnICIkZmlsZSIKKysJICAgIGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkg ICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkbmFtZSIKKysJICAgIG5vZXhlbmFtZT0kZnVu Y19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBi ZWVuIGFkZGVkIHRvIHJtZmlsZXMsCisrCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKKysJ ICAgIHJtZmlsZXM9IiRybWZpbGVzICRmaWxlIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgIyBE byBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCisrCSAgaWYgZnVu Y19sdHdyYXBwZXJfcCAiJGZpbGUiOyB0aGVuCisrCSAgICBpZiBmdW5jX2x0d3JhcHBlcl9leGVj dXRhYmxlX3AgIiRmaWxlIjsgdGhlbgorKwkgICAgICBmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1l ICIkZmlsZSIKKysJICAgICAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgICAgIGZ1bmNfc291cmNlICRm dW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAorKwkgICAgICBybWZpbGVzPSIkcm1maWxl cyAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCisrCSAgICBlbHNlCisrCSAgICAg IHJlbGlua19jb21tYW5kPQorKwkgICAgICBmdW5jX3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKKysJ ICAgIGZpCisrCisrCSAgICAjIG5vdGUgJG5hbWUgc3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3 YXMgaW4gJGZpbGUgb3JpZ2luYWxseQorKwkgICAgIyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRm aWxlIHRoYXQgd2FzIGFkZGVkIGludG8gJHJtZmlsZXMKKysJICAgIHJtZmlsZXM9IiRybWZpbGVz ICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9Uy4ke29iamV4dH0iCisrCSAgICBpZiB0ZXN0 ICIkZmFzdF9pbnN0YWxsIiA9IHllcyAmJiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVu CisrCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJG5hbWUiCisrCSAgICBmaQor KwkgICAgaWYgdGVzdCAiWCRub2V4ZW5hbWUiICE9ICJYJG5hbWUiIDsgdGhlbgorKwkgICAgICBy bWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0LSR7bm9leGVuYW1lfS5jIgorKwkgICAgZmkKKysJ ICBmaQorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBmdW5jX3Nob3dfZXZhbCAiJFJN ICRybWZpbGVzIiAnZXhpdF9zdGF0dXM9MScKKysgICAgZG9uZQorKyAgICBvYmpkaXI9IiRvcmln b2JqZGlyIgorKworKyAgICAjIFRyeSB0byByZW1vdmUgdGhlICR7b2JqZGlyfXMgaW4gdGhlIGRp cmVjdG9yaWVzIHdoZXJlIHdlIGRlbGV0ZWQgZmlsZXMKKysgICAgZm9yIGRpciBpbiAkcm1kaXJz OyBkbworKyAgICAgIGlmIHRlc3QgLWQgIiRkaXIiOyB0aGVuCisrCWZ1bmNfc2hvd19ldmFsICJy bWRpciAkZGlyID4vZGV2L251bGwgMj4mMSIKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAg IGV4aXQgJGV4aXRfc3RhdHVzCisrfQorKworK3sgdGVzdCAiJG1vZGUiID0gdW5pbnN0YWxsIHx8 IHRlc3QgIiRtb2RlIiA9IGNsZWFuOyB9ICYmCisrICAgIGZ1bmNfbW9kZV91bmluc3RhbGwgJHsx KyIkQCJ9CisrCisrdGVzdCAteiAiJG1vZGUiICYmIHsKKysgIGhlbHA9IiRnZW5lcmljX2hlbHAi CisrICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFIgorK30KKysKKyt0 ZXN0IC16ICIkZXhlY19jbWQiICYmIFwKKysgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVy YXRpb24gbW9kZSBcYCRtb2RlJyIKKysKKytpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCisr ICBldmFsIGV4ZWMgIiRleGVjX2NtZCIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQorK2ZpCisrCisr ZXhpdCAkZXhpdF9zdGF0dXMKKysKKysKKysjIFRoZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1 Y2ggdGhhdCB3ZSBuZXZlciBnZXQgaW50byBhIHNpdHVhdGlvbgorKyMgaW4gd2hpY2ggd2UgZGlz YWJsZSBib3RoIGtpbmRzIG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCisrIyBjaG9p Y2VzLCB3ZSBnbyBmb3IgYSBzdGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJs ZSwKKysjIHNpbmNlIHdlIGNhbid0IHRlbGwgd2hldGhlciBzaGFyZWQgbGlicmFyaWVzIHdlcmUg ZGlzYWJsZWQgYmVjYXVzZQorKyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0 aGUgcGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0CisrIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFy bHkgaW1wb3J0YW50IG9uIEFJWCwgYmVjYXVzZSB3ZSBkb24ndAorKyMgc3VwcG9ydCBoYXZpbmcg Ym90aCBzdGF0aWMgYW5kIHNoYXJlZCBsaWJyYXJpZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQorKyMg dGltZSBvbiB0aGF0IHBsYXRmb3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29u ZmlndXJhdGlvbi4KKysjIElmIGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBm YWxsYmFjayB0byBhIHN0YXRpYy1vbmx5CisrIyBjb25maWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5l dmVyIGdvIGZyb20gc3RhdGljLW9ubHkgdG8gc2hhcmVkLW9ubHkuCisrCisrIyAjIyMgQkVHSU4g TElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorK2J1aWxkX2xpYnRvb2xfbGlicz1u bworK2J1aWxkX29sZF9saWJzPXllcworKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRp c2FibGUtc2hhcmVkCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxl LXN0YXRpYworK2J1aWxkX29sZF9saWJzPWBjYXNlICRidWlsZF9saWJ0b29sX2xpYnMgaW4geWVz KSBlY2hvIG5vOzsgKikgZWNobyB5ZXM7OyBlc2FjYAorKyMgIyMjIEVORCBMSUJUT09MIFRBRyBD T05GSUc6IGRpc2FibGUtc3RhdGljCisrCisrIyBMb2NhbCBWYXJpYWJsZXM6CisrIyBtb2RlOnNo ZWxsLXNjcmlwdAorKyMgc2gtaW5kZW50YXRpb246MgorKyMgRW5kOgorKyMgdmk6c3c9MgorKwor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2x0fm9ic29sZXRlLm00CistLS0gc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2x0fm9ic29sZXRlLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNAkyMDA5LTA1LTIz IDEwOjAxOjU2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw5MiBAQAorKyMgbHR+b2Jzb2xl dGUubTQgLS0gYWNsb2NhbCBzYXRpc2Z5aW5nIG9ic29sZXRlIGRlZmluaXRpb25zLiAgICAtKi1B dXRvY29uZi0qLQorKyMKKysjICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJl bW5hbnQsIDIwMDQuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKKysjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAorKyMgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNCBs dH5vYnNvbGV0ZS5tNAorKworKyMgVGhlc2UgZXhpc3QgZW50aXJlbHkgdG8gZm9vbCBhY2xvY2Fs IHdoZW4gYm9vdHN0cmFwcGluZyBsaWJ0b29sLgorKyMKKysjIEluIHRoZSBwYXN0IGxpYnRvb2wu bTQgaGFzIHByb3ZpZGVkIG1hY3JvcyB2aWEgQUNfREVGVU4gKG9yIEFVX0RFRlVOKQorKyMgd2hp Y2ggaGF2ZSBsYXRlciBiZWVuIGNoYW5nZWQgdG8gbTRfZGVmaW5lIGFzIHRoZXkgYXJlbid0IHBh cnQgb2YgdGhlCisrIyBleHBvcnRlZCBBUEksIG9yIG1vdmVkIHRvIEF1dG9jb25mIG9yIEF1dG9t YWtlIHdoZXJlIHRoZXkgYmVsb25nLgorKyMKKysjIFRoZSB0cm91YmxlIGlzLCBhY2xvY2FsIGlz IGEgYml0IHRoaWNrLiAgSXQnbGwgc2VlIHRoZSBvbGQgQUNfREVGVU4KKysjIGluIC91c3Ivc2hh cmUvYWNsb2NhbC9saWJ0b29sLm00IGFuZCByZW1lbWJlciBpdCwgdGhlbiB3aGVuIGl0IHNlZXMg dXMKKysjIHVzaW5nIGEgbWFjcm8gd2l0aCB0aGUgc2FtZSBuYW1lIGluIG91ciBsb2NhbCBtNC9s aWJ0b29sLm00IGl0J2xsCisrIyBwdWxsIHRoZSBvbGQgbGlidG9vbC5tNCBpbiAoaXQgZG9lc24n dCBzZWUgb3VyIHNoaW55IG5ldyBtNF9kZWZpbmUKKysjIGFuZCBkb2Vzbid0IGtub3cgYWJvdXQg QXV0b2NvbmYgbWFjcm9zIGF0IGFsbC4pCisrIworKyMgU28gd2UgcHJvdmlkZSB0aGlzIGZpbGUs IHdoaWNoIGhhcyBhIHNpbGx5IGZpbGVuYW1lIHNvIGl0J3MgYWx3YXlzCisrIyBpbmNsdWRlZCBh ZnRlciBldmVyeXRoaW5nIGVsc2UuICBUaGlzIHByb3ZpZGVzIGFjbG9jYWwgd2l0aCB0aGUKKysj IEFDX0RFRlVOcyBpdCB3YW50cywgYnV0IHdoZW4gbTQgcHJvY2Vzc2VzIGl0LCBpdCBkb2Vzbid0 IGRvIGFueXRoaW5nCisrIyBiZWNhdXNlIHRob3NlIG1hY3JvcyBhbHJlYWR5IGV4aXN0LCBvciB3 aWxsIGJlIG92ZXJ3cml0dGVuIGxhdGVyLgorKyMgV2UgdXNlIEFDX0RFRlVOIG92ZXIgQVVfREVG VU4gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBhY2xvY2FsLTEuNi4gCisrIworKyMgQW55dGltZSB3 ZSB3aXRoZHJhdyBhbiBBQ19ERUZVTiBvciBBVV9ERUZVTiwgcmVtZW1iZXIgdG8gYWRkIGl0IGhl cmUuCisrIyBZZXMsIHRoYXQgbWVhbnMgZXZlcnkgbmFtZSBvbmNlIHRha2VuIHdpbGwgbmVlZCB0 byByZW1haW4gaGVyZSB1bnRpbAorKyMgd2UgZ2l2ZSB1cCBjb21wYXRpYmlsaXR5IHdpdGggdmVy c2lvbnMgYmVmb3JlIDEuNywgYXQgd2hpY2ggcG9pbnQKKysjIHdlIG5lZWQgdG8ga2VlcCBvbmx5 IHRob3NlIG5hbWVzIHdoaWNoIHdlIHN0aWxsIHJlZmVyIHRvLgorKworKyMgVGhpcyBpcyB0byBo ZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUu CisrQUNfREVGVU4oW0xUT0JTT0xFVEVfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKKysKKyttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9M SU5LRVJfT1BUSU9OXSldKQorK200X2lmbmRlZihbQUNfUFJPR19FR1JFUF0sCQlbQUNfREVGVU4o W0FDX1BST0dfRUdSRVBdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFT SF0sCVtBQ19ERUZVTihbX0xUX0FDX1BST0dfRUNIT19CQUNLU0xBU0hdKV0pCisrbTRfaWZuZGVm KFtfTFRfQUNfU0hFTExfSU5JVF0sCQlbQUNfREVGVU4oW19MVF9BQ19TSEVMTF9JTklUXSldKQor K200X2lmbmRlZihbX0xUX0FDX1NZU19MSUJQQVRIX0FJWF0sCVtBQ19ERUZVTihbX0xUX0FDX1NZ U19MSUJQQVRIX0FJWF0pXSkKKyttNF9pZm5kZWYoW19MVF9QUk9HX0xUTUFJTl0sCQlbQUNfREVG VU4oW19MVF9QUk9HX0xUTUFJTl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19UQUdWQVJdLAkJW0FD X0RFRlVOKFtfTFRfQUNfVEFHVkFSXSldKQorK200X2lmbmRlZihbQUNfTFRETF9FTkFCTEVfSU5T VEFMTF0sCVtBQ19ERUZVTihbQUNfTFRETF9FTkFCTEVfSU5TVEFMTF0pXSkKKyttNF9pZm5kZWYo W0FDX0xURExfUFJFT1BFTl0sCQlbQUNfREVGVU4oW0FDX0xURExfUFJFT1BFTl0pXSkKKyttNF9p Zm5kZWYoW19MVF9BQ19TWVNfQ09NUElMRVJdLAlbQUNfREVGVU4oW19MVF9BQ19TWVNfQ09NUElM RVJdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTE9DS10sCQlbQUNfREVGVU4oW19MVF9BQ19MT0NL XSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdLAlbQUNfREVGVU4o W0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSldKQorK200X2lmbmRlZihbX0xUX0FDX1RSWV9E TE9QRU5fU0VMRl0sCVtBQ19ERUZVTihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0pXSkKKyttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJP R19DQ19DX09dKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1Nd LCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10pXSkKKyttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfT0JKRElSXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9PQkpESVJdKV0p CisrbTRfaWZuZGVmKFtBQ19MVERMX09CSkRJUl0sCQlbQUNfREVGVU4oW0FDX0xURExfT0JKRElS XSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEhdLCBb QUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIXSldKQorK200X2lm bmRlZihbQUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZ U19MSUJfU1RSSVBdKV0pCisrbTRfaWZuZGVmKFtBQ19QQVRIX01BR0lDXSwJCVtBQ19ERUZVTihb QUNfUEFUSF9NQUdJQ10pXSkKKyttNF9pZm5kZWYoW0FDX1BST0dfTERfR05VXSwJCVtBQ19ERUZV TihbQUNfUFJPR19MRF9HTlVdKV0pCisrbTRfaWZuZGVmKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFH XSwJW0FDX0RFRlVOKFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSldKQorK200X2lmbmRlZihbQUNf REVQTElCU19DSEVDS19NRVRIT0RdLAlbQUNfREVGVU4oW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9E XSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEldLCBbQUNf REVGVU4oW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9OT19SVFRJXSldKQorK200X2lmbmRlZihb QUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09M X1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0df Q09NUElMRVJfUElDXSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSld KQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0xEX1NITElCU10sCVtBQ19ERUZVTihbQUNf TElCVE9PTF9QUk9HX0xEX1NITElCU10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUE9TVERF UF9QUkVERVBdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdKV0pCisrbTRf aWZuZGVmKFtMVF9BQ19QUk9HX0VHUkVQXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19FR1JFUF0p XSkKKyttNF9pZm5kZWYoW0xUX0FDX1BST0dfU0VEXSwJCVtBQ19ERUZVTihbTFRfQUNfUFJPR19T RURdKV0pCisrbTRfaWZuZGVmKFtfTFRfQ0NfQkFTRU5BTUVdLAkJW0FDX0RFRlVOKFtfTFRfQ0Nf QkFTRU5BTUVdKV0pCisrbTRfaWZuZGVmKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAlbQUNf REVGVU4oW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0pXSkKKyttNF9pZm5kZWYoW19MVF9MSU5L RVJfQk9JTEVSUExBVEVdLAlbQUNfREVGVU4oW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdKV0pCisr bTRfaWZuZGVmKFtfQUNfUFJPR19MSUJUT09MXSwJCVtBQ19ERUZVTihbX0FDX1BST0dfTElCVE9P TF0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU0VUVVBdLAkJW0FDX0RFRlVOKFtBQ19MSUJU T09MX1NFVFVQXSldKQorK200X2lmbmRlZihbX0xUX0FDX0NIRUNLX0RMRkNOXSwJCVtBQ19ERUZV TihbX0xUX0FDX0NIRUNLX0RMRkNOXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfRFlO QU1JQ19MSU5LRVJdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSXSld KQorK200X2lmbmRlZihbX0xUX0FDX1RBR0NPTkZJR10sCQlbQUNfREVGVU4oW19MVF9BQ19UQUdD T05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCVtBQ19ERUZV TihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19D WFhdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNf TEFOR19GNzddLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19GNzddKV0pCisrbTRfaWZuZGVmKFtf TFRfQUNfTEFOR19HQ0pdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pdKV0pCisrbTRfaWZu ZGVmKFtBQ19MSUJUT09MX1JDXSwJCVtBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10pXSkKKyttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9M QU5HX0NfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ19DT05GSUddLAlbQUNf REVGVU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9M QU5HX0NYWF9DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHXSld KQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FD X0xBTkdfQ1hYX0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09O RklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10pXSkKKyttNF9pZm5k ZWYoW19MVF9BQ19MQU5HX0Y3N19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N19D T05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10sCVtBQ19E RUZVTihbQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNf TEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSldKQor K200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElC VE9PTF9MQU5HX1JDX0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJ R10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfUkNfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNf TElCVE9PTF9DT05GSUddLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10pXSkKKyttNF9p Zm5kZWYoW19MVF9BQ19GSUxFX0xURExMX0NdLAlbQUNfREVGVU4oW19MVF9BQ19GSUxFX0xURExM X0NdKV0pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0b3B0aW9ucy5tNCBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9sdG9wdGlvbnMubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9ucy5tNAkyMDA5LTA1LTIz IDEwOjAxOjU1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzNjggQEAKKysjIEhlbHBlciBm dW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgIC0qLSBBdXRv Y29uZiAtKi0KKysjCisrIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBHYXJ5IFYuIFZh dWdoYW4sIDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA2IGx0 b3B0aW9ucy5tNAorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNy b3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUT1BUSU9OU19WRVJT SU9OXSwgW200X2lmKFsxXSldKQorKworKworKyMgX0xUX01BTkdMRV9PUFRJT04oTUFDUk8tTkFN RSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyttNF9kZWZpbmUoW19MVF9NQU5HTEVfT1BUSU9OXSwKKytbW19MVF9PUFRJT05fXW00 X2JwYXRzdWJzdCgkMV9fJDIsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBfTFRf U0VUX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2V0IG9wdGlvbiBPUFRJT04tTkFNRSBmb3IgbWFj cm8gTUFDUk8tTkFNRSwgYW5kIGlmIHRoZXJlIGlzIGEKKysjIG1hdGNoaW5nIGhhbmRsZXIgZGVm aW5lZCwgZGlzcGF0Y2ggdG8gaXQuICBPdGhlciBPUFRJT04tTkFNRXMgYXJlCisrIyBzYXZlZCBh cyBhIGZsYWcuCisrbTRfZGVmaW5lKFtfTFRfU0VUX09QVElPTl0sCisrW200X2RlZmluZShfTFRf TUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSlkbmwKKyttNF9pZmRlZihfTFRfTUFOR0xFX0RFRlVO KFskMV0sIFskMl0pLAorKyAgICAgICAgX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwKKysg ICAgW200X3dhcm5pbmcoW1Vua25vd24gJDEgb3B0aW9uIGAkMiddKV0pW11kbmwKKytdKQorKwor KworKyMgX0xUX0lGX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgSUYtU0VULCBbSUYt Tk9ULVNFVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElG LU5PVC1TRVQgb3RoZXJ3aXNlLgorK200X2RlZmluZShbX0xUX0lGX09QVElPTl0sCisrW200X2lm ZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0pLCBbJDNdLCBbJDRdKV0pCisrCisrCisr IyBfTFRfVU5MRVNTX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QsIElGLU5PVC1TRVQp CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrIyBFeGVjdXRlIElGLU5PVC1TRVQgdW5sZXNzIGFsbCBvcHRpb25zIGluIE9QVElPTi1M SVNUIGZvciBNQUNSTy1OQU1FCisrIyBhcmUgc2V0LgorK200X2RlZmluZShbX0xUX1VOTEVTU19P UFRJT05TXSwKKytbbTRfZm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6 ZShbJDJdKSksCisrCSAgICBbbTRfaWZkZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgX0xUX09w dGlvbiksCisrCQkgICAgICBbbTRfZGVmaW5lKFskMF9mb3VuZF0pXSldKVtdZG5sCisrbTRfaWZk ZWYoWyQwX2ZvdW5kXSwgW200X3VuZGVmaW5lKFskMF9mb3VuZF0pXSwgWyQzCisrXSlbXWRubAor K10pCisrCisrCisrIyBfTFRfU0VUX09QVElPTlMoTUFDUk8tTkFNRSwgT1BUSU9OLUxJU1QpCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPUFRJT04tTElT VCBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIExpYnRvb2wgb3B0aW9ucyBhc3NvY2lhdGVk CisrIyB3aXRoIE1BQ1JPLU5BTUUuICBJZiBhbnkgT1BUSU9OIGhhcyBhIG1hdGNoaW5nIGhhbmRs ZXIgZGVjbGFyZWQgd2l0aAorKyMgTFRfT1BUSU9OX0RFRklORSwgZGlzcGF0Y2ggdG8gdGhhdCBt YWNybzsgb3RoZXJ3aXNlIGNvbXBsYWluIGFib3V0CisrIyB0aGUgdW5rbm93biBvcHRpb24gYW5k IGV4aXQuCisrbTRfZGVmdW4oW19MVF9TRVRfT1BUSU9OU10sCisrWyMgU2V0IG9wdGlvbnMKKytt NF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRfc3BsaXQobTRfbm9ybWFsaXplKFskMl0pKSwKKysg ICAgW19MVF9TRVRfT1BUSU9OKFskMV0sIF9MVF9PcHRpb24pXSkKKysKKyttNF9pZihbJDFdLFtM VF9JTklUXSxbCisrICBkbmwKKysgIGRubCBTaW1wbHkgc2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMg KGkuZSBvZmYpIGlmIGJvb2xlYW4gb3B0aW9ucyB3ZXJlIG5vdAorKyAgZG5sIHNwZWNpZmllZDoK KysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtkbG9wZW5dLCBbZW5hYmxlX2Rsb3Bl bj1ubworKyAgXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFt3aW4zMi1kbGxd LCBbZW5hYmxlX3dpbjMyX2RsbD1ubworKyAgXSkKKysgIGRubAorKyAgZG5sIElmIG5vIHJlZmVy ZW5jZSB3YXMgbWFkZSB0byB2YXJpb3VzIHBhaXJzIG9mIG9wcG9zaW5nIG9wdGlvbnMsIHRoZW4K KysgIGRubCB3ZSBydW4gdGhlIGRlZmF1bHQgbW9kZSBoYW5kbGVyIGZvciB0aGUgcGFpci4gIEZv ciBleGFtcGxlLCBpZiBuZWl0aGVyCisrICBkbmwgYHNoYXJlZCcgbm9yIGBkaXNhYmxlLXNoYXJl ZCcgd2FzIHBhc3NlZCwgd2UgZW5hYmxlIGJ1aWxkaW5nIG9mIHNoYXJlZAorKyAgZG5sIGFyY2hp dmVzIGJ5IGRlZmF1bHQ6CisrICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc2hhcmVk IGRpc2FibGUtc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hBUkVEXSkKKysgIF9MVF9VTkxFU1NfT1BU SU9OUyhbTFRfSU5JVF0sIFtzdGF0aWMgZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFU SUNdKQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3BpYy1vbmx5IG5vLXBpY10s IFtfTFRfV0lUSF9QSUNdKQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW2Zhc3Qt aW5zdGFsbCBkaXNhYmxlLWZhc3QtaW5zdGFsbF0sCisrICAJCSAgIFtfTFRfRU5BQkxFX0ZBU1Rf SU5TVEFMTF0pCisrICBdKQorK10pIyBfTFRfU0VUX09QVElPTlMKKysKKysKKysjIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBNYWNyb3MgdG8gaGFuZGxlIExUX0lO SVQgb3B0aW9ucy4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK KysKKysjIF9MVF9NQU5HTEVfREVGVU4oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX0xUX01B TkdMRV9ERUZVTl0sCisrW1tfTFRfT1BUSU9OX0RFRlVOX11tNF9icGF0c3Vic3QobTRfdG91cHBl cihbJDFfXyQyXSksIFtbXkEtWjAtOV9dXSwgW19dKV0pCisrCisrCisrIyBMVF9PUFRJT05fREVG SU5FKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FLCBDT0RFKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW0xUX09QVElPTl9ERUZJ TkVdLAorK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9ERUZVTihbJDFdLCBbJDJdKSwgWyQzXSlbXWRu bAorK10pIyBMVF9PUFRJT05fREVGSU5FCisrCisrCisrIyBkbG9wZW4KKysjIC0tLS0tLQorK0xU X09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJsZV9kbG9wZW49eWVzCisr XSkKKysKKytBVV9ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLAorK1tfTFRfU0VUX09QVElPTihb TFRfSU5JVF0sIFtkbG9wZW5dKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1v dmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQor K3B1dCB0aGUgYGRsb3Blbicgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5d KQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2Ru bCBBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLCBbXSkKKysKKysKKysjIHdpbjMyLWRsbAor KyMgLS0tLS0tLS0tCisrIyBEZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2lu MzIgZGxsJ3MuCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLAorK1tl bmFibGVfd2luMzJfZGxsPXllcworKworK2Nhc2UgJGhvc3QgaW4KKysqLSotY3lnd2luKiB8ICot Ki1taW5ndyogfCAqLSotcHczMiogfCAqLWNlZ2NjKikKKysgIEFDX0NIRUNLX1RPT0woQVMsIGFz LCBmYWxzZSkKKysgIEFDX0NIRUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCisrICBB Q19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQorKyAgOzsKKytlc2FjCisrCisr dGVzdCAteiAiJEFTIiAmJiBBUz1hcworK19MVF9ERUNMKFtdLCBbQVNdLCAgICAgIFswXSwgW0Fz c2VtYmxlciBwcm9ncmFtXSlkbmwKKysKKyt0ZXN0IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1k bGx0b29sCisrX0xUX0RFQ0woW10sIFtETExUT09MXSwgWzBdLCBbRExMIGNyZWF0aW9uIHByb2dy YW1dKWRubAorKworK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRf REVDTChbXSwgW09CSkRVTVBdLCBbMF0sIFtPYmplY3QgZHVtcGVyIHByb2dyYW1dKWRubAorK10p IyB3aW4zMi1kbGwKKysKKytBVV9ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLAorK1tBQ19S RVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRd LCBbd2luMzItZGxsXSkKKytBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorK1skMDogUmVtb3ZlIHRo aXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKKytwdXQg dGhlIGB3aW4zMi1kbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkK KytdKQorKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwg QUNfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwgW10pCisrCisrCisrIyBfTFRfRU5BQkxF X1NIQVJFRChbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBp bXBsZW1lbnQgdGhlIC0tZW5hYmxlLXNoYXJlZCBmbGFnLCBhbmQgc3VwcG9ydHMgdGhlIGBzaGFy ZWQnIGFuZAorKyMgYGRpc2FibGUtc2hhcmVkJyBMVF9JTklUIG9wdGlvbnMuCisrIyBERUZBVUxU IGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYHll cycuCisrbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJFRF0sCisrW200X2RlZmluZShbX0xUX0VO QUJMRV9TSEFSRURfREVGQVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlkbmwKKytBQ19B UkdfRU5BQkxFKFtzaGFyZWRdLAorKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJl ZEA8OkA9UEtHU0A6PkBdLAorKwlbYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1d X0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVFtAOj5AXSldLAorKyAgICBbcD0ke1BBQ0tBR0UtZGVm YXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15 ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFi bGVfc2hhcmVkPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1 c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIk SUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVu YWJsZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJY JHAiOyB0aGVuCisrCSAgZW5hYmxlX3NoYXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhY10sCisrICAgIFtlbmFi bGVfc2hhcmVkPV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUKQorKworKyAgICBfTFRfREVDTChb YnVpbGRfbGlidG9vbF9saWJzXSwgW2VuYWJsZV9zaGFyZWRdLCBbMF0sCisrCVtXaGV0aGVyIG9y IG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKKytdKSMgX0xUX0VOQUJMRV9TSEFSRUQK KysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3NoYXJlZF0sIFtfTFRfRU5BQkxFX1NI QVJFRChbeWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFy ZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgorK0FDX0RF RlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9p ZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzaGFyZWRdKQorK10pCisrCisrQUNfREVGVU4oW0FD X0RJU0FCTEVfU0hBUkVEXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1z aGFyZWRdKQorK10pCisrCisrQVVfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbQUNfRU5BQkxF X1NIQVJFRCgkQCldKQorK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NIQVJFRF0sIFtBQ19ESVNBQkxF X1NIQVJFRCgkQCldKQorKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKKytkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbXSkKKytkbmwgQUNfREVGVU4o W0FNX0RJU0FCTEVfU0hBUkVEXSwgW10pCisrCisrCisrCisrIyBfTFRfRU5BQkxFX1NUQVRJQyhb REVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQg dGhlIC0tZW5hYmxlLXN0YXRpYyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHN0YXRpYycgYW5kCisr IyBgZGlzYWJsZS1zdGF0aWMnIExUX0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVy IGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9k ZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NUQVRJ Q19ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAorK0FDX0FSR19FTkFCTEUo W3N0YXRpY10sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtc3RhdGljQDw6QD1QS0dT QDo+QF0sCisrCVtidWlsZCBzdGF0aWMgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxF X1NUQVRJQ19ERUZBVUxUW0A6PkBdKV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAg ICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAg ICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1u bworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUg Y29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0i JHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRv CisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgor KwkgIGVuYWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0 X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWNdLAorKyAgICBbZW5hYmxlX3N0YXRpYz1d X0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVCkKKysKKysgICAgX0xUX0RFQ0woW2J1aWxkX29sZF9s aWJzXSwgW2VuYWJsZV9zdGF0aWNdLCBbMF0sCisrCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBz dGF0aWMgbGlicmFyaWVzXSkKKytdKSMgX0xUX0VOQUJMRV9TVEFUSUMKKysKKytMVF9PUFRJT05f REVGSU5FKFtMVF9JTklUXSwgW3N0YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJQyhbeWVzXSldKQor K0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJM RV9TVEFUSUMoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgorK0FDX0RFRlVOKFtBQ19FTkFCTEVf U1RBVElDXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBb ZGlzYWJsZS1dKVtzdGF0aWNdKQorK10pCisrCisrQUNfREVGVU4oW0FDX0RJU0FCTEVfU1RBVElD XSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdKQorK10pCisr CisrQVVfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbQUNfRU5BQkxFX1NUQVRJQygkQCldKQor K0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NUQVRJQ10sIFtBQ19ESVNBQkxFX1NUQVRJQygkQCldKQor KworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVG VU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU1RB VElDXSwgW10pCisrCisrCisrCisrIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbREVGQVVMVF0p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhl IC0tZW5hYmxlLWZhc3QtaW5zdGFsbCBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYGZhc3QtaW5zdGFs bCcKKysjIGFuZCBgZGlzYWJsZS1mYXN0LWluc3RhbGwnIExUX0lOSVQgb3B0aW9ucy4KKysjIERF RkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0 byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMXSwKKytbbTRfZGVm aW5lKFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8s IHllcyldKWRubAorK0FDX0FSR19FTkFCTEUoW2Zhc3QtaW5zdGFsbF0sCisrICAgIFtBU19IRUxQ X1NUUklORyhbLS1lbmFibGUtZmFzdC1pbnN0YWxsQDw6QD1QS0dTQDo+QF0sCisrICAgIFtvcHRp bWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24gQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVfRkFTVF9J TlNUQUxMX0RFRkFVTFRbQDo+QF0pXSwKKysgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAg IGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7 CisrICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7CisrICAgICopCisrICAgICAgZW5h YmxlX2Zhc3RfaW5zdGFsbD1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290 LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZl X2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtn IGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBr ZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCisrCWZpCisrICAg ICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWNd LAorKyAgICBbZW5hYmxlX2Zhc3RfaW5zdGFsbD1dX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExfREVG QVVMVCkKKysKKytfTFRfREVDTChbZmFzdF9pbnN0YWxsXSwgW2VuYWJsZV9mYXN0X2luc3RhbGxd LCBbMF0sCisrCSBbV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0 aW9uXSlkbmwKKytdKSMgX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwKKysKKytMVF9PUFRJT05fREVG SU5FKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChb eWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3Rh bGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW25vXSldKQorKworKyMgT2xkIG5hbWVzOgor K0FVX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwKKytbX0xUX1NFVF9PUFRJT04oW0xU X0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtmYXN0LWluc3RhbGxdKQorK0FD X0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUg Y2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKKyt0aGUgYGZhc3QtaW5zdGFsbCcg b3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrQVVfREVG VU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRd LCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQw OiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVu IHlvdSBwdXQKKyt0aGUgYGRpc2FibGUtZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50byBMVF9JTklU J3MgZmlyc3QgcGFyYW1ldGVyLl0pCisrXSkKKysKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRz IGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwg W10pCisrZG5sIEFDX0RFRlVOKFtBTV9ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sIFtdKQorKworKwor KyMgX0xUX1dJVEhfUElDKFtNT0RFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBs ZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBwaWMtb25seScgYW5k IGBuby1waWMnCisrIyBMVF9JTklUIG9wdGlvbnMuCisrIyBNT0RFIGlzIGVpdGhlciBgeWVzJyBv ciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYGJvdGgnLgorK200X2RlZmluZShb X0xUX1dJVEhfUElDXSwKKytbQUNfQVJHX1dJVEgoW3BpY10sCisrICAgIFtBU19IRUxQX1NUUklO RyhbLS13aXRoLXBpY10sCisrCVt0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBA PDpAZGVmYXVsdD11c2UgYm90aEA6PkBdKV0sCisrICAgIFtwaWNfbW9kZT0iJHdpdGh2YWwiXSwK KysgICAgW3BpY19tb2RlPWRlZmF1bHRdKQorKworK3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGlj X21vZGU9bTRfZGVmYXVsdChbJDFdLCBbZGVmYXVsdF0pCisrCisrX0xUX0RFQ0woW10sIFtwaWNf bW9kZV0sIFswXSwgW1doYXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkXSlkbmwKKytdKSMgX0xU X1dJVEhfUElDCisrCisrTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtwaWMtb25seV0sIFtf TFRfV0lUSF9QSUMoW3llc10pXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW25vLXBp Y10sIFtfTFRfV0lUSF9QSUMoW25vXSldKQorKworKyMgT2xkIG5hbWU6CisrQVVfREVGVU4oW0FD X0xJQlRPT0xfUElDTU9ERV0sCisrW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwgW3BpYy1vbmx5 XSkKKytBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBh bmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKKytwdXQgdGhlIGBwaWMtb25s eScgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5s IGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNf TElCVE9PTF9QSUNNT0RFXSwgW10pCisrCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBM VERMX0lOSVQgT3B0aW9ucyAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisrbTRfZGVm aW5lKFtfTFRETF9NT0RFXSwgW10pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW25v bnJlY3Vyc2l2ZV0sCisrCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtub25yZWN1cnNpdmVd KV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3JlY3Vyc2l2ZV0sCisrCQkgW200 X2RlZmluZShbX0xURExfTU9ERV0sIFtyZWN1cnNpdmVdKV0pCisrTFRfT1BUSU9OX0RFRklORShb TFRETF9JTklUXSwgW3N1YnByb2plY3RdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBb c3VicHJvamVjdF0pXSkKKysKKyttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbXSkKKytMVF9PUFRJ T05fREVGSU5FKFtMVERMX0lOSVRdLCBbaW5zdGFsbGFibGVdLAorKwkJIFttNF9kZWZpbmUoW19M VERMX1RZUEVdLCBbaW5zdGFsbGFibGVdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklU XSwgW2NvbnZlbmllbmNlXSwKKysJCSBbbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwgW2NvbnZlbmll bmNlXSldKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00IHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRzdWdhci5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9sdHN1Z2FyLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1Z2FyLm00CTIwMDktMDUtMjMgMTA6MDE6 NTYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDEyMyBAQAorKyMgbHRzdWdhci5tNCAtLSBs aWJ0b29sIG00IGJhc2UgbGF5ZXIuICAgICAgICAgICAgICAgICAgICAgICAgIC0qLUF1dG9jb25m LSotCisrIworKyMgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIw MDQKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA2IGx0c3VnYXIubTQK KysKKysjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBj YW4ndCBzZWUgbTRfZGVmaW5lLgorK0FDX0RFRlVOKFtMVFNVR0FSX1ZFUlNJT05dLCBbbTRfaWYo WzAuMV0pXSkKKysKKysKKysjIGx0X2pvaW4oU0VQLCBBUkcxLCBbQVJHMi4uLl0pCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUHJvZHVjZSBBUkcxU0VQQVJHMi4uLlNFUEFS R24sIG9taXR0aW5nIFtdIGFyZ3VtZW50cyBhbmQgdGhlaXIKKysjIGFzc29jaWF0ZWQgc2VwYXJh dG9yLgorKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2pvaW4gZnJvbSBBdXRvY29u ZiAyLjYyLCBzaW5jZSBhbGwgZWFybGllcgorKyMgdmVyc2lvbnMgaW4gbTRzdWdhciBoYWQgYnVn cy4KKyttNF9kZWZpbmUoW2x0X2pvaW5dLAorK1ttNF9pZihbJCNdLCBbMV0sIFtdLAorKyAgICAg ICBbJCNdLCBbMl0sIFtbJDJdXSwKKysgICAgICAgW200X2lmKFskMl0sIFtdLCBbXSwgW1skMl1f XSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKKyttNF9kZWZpbmUoW19sdF9q b2luXSwKKytbbTRfaWYoWyQjJDJdLCBbMl0sIFtdLAorKyAgICAgICBbbTRfaWYoWyQyXSwgW10s IFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKKysKKysK KysjIGx0X2NhcihMSVNUKQorKyMgbHRfY2RyKExJU1QpCisrIyAtLS0tLS0tLS0tLS0KKysjIE1h bmlwdWxhdGUgbTQgbGlzdHMuCisrIyBUaGVzZSBtYWNyb3MgYXJlIG5lY2Vzc2FyeSBhcyBsb25n IGFzIHdpbGwgc3RpbGwgbmVlZCB0byBzdXBwb3J0CisrIyBBdXRvY29uZi0yLjU5IHdoaWNoIHF1 b3RlcyBkaWZmZXJlbnRseS4KKyttNF9kZWZpbmUoW2x0X2Nhcl0sIFtbJDFdXSkKKyttNF9kZWZp bmUoW2x0X2Nkcl0sCisrW200X2lmKFskI10sIDAsIFttNF9mYXRhbChbJDA6IGNhbm5vdCBiZSBj YWxsZWQgd2l0aG91dCBhcmd1bWVudHNdKV0sCisrICAgICAgIFskI10sIDEsIFtdLAorKyAgICAg ICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKV0pCisrbTRfZGVmaW5lKFtsdF91bnF1b3RlXSwg JDEpCisrCisrCisrIyBsdF9hcHBlbmQoTUFDUk8tTkFNRSwgU1RSSU5HLCBbU0VQQVJBVE9SXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUmVkZWZp bmUgTUFDUk8tTkFNRSB0byBob2xkIGl0cyBmb3JtZXIgY29udGVudCBwbHVzIGBTRVBBUkFUT1In YFNUUklORycuCisrIyBOb3RlIHRoYXQgbmVpdGhlciBTRVBBUkFUT1Igbm9yIFNUUklORyBhcmUg ZXhwYW5kZWQ7IHRoZXkgYXJlIGFwcGVuZGVkCisrIyB0byBNQUNSTy1OQU1FIGFzIGlzIChsZWF2 aW5nIHRoZSBleHBhbnNpb24gZm9yIHdoZW4gTUFDUk8tTkFNRSBpcyBpbnZva2VkKS4KKysjIE5v IFNFUEFSQVRPUiBpcyBvdXRwdXQgaWYgTUFDUk8tTkFNRSB3YXMgcHJldmlvdXNseSB1bmRlZmlu ZWQgKGRpZmZlcmVudAorKyMgdGhhbiBkZWZpbmVkIGFuZCBlbXB0eSkuCisrIworKyMgVGhpcyBt YWNybyBpcyBuZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gQXV0b2NvbmYgMi42Miwgc2luY2Ug ZWFybGllcgorKyMgdmVyc2lvbnMgb2YgbTRzdWdhciBtaXN0YWtlbmx5IGV4cGFuZGVkIFNFUEFS QVRPUiBidXQgbm90IFNUUklORy4KKyttNF9kZWZpbmUoW2x0X2FwcGVuZF0sCisrW200X2RlZmlu ZShbJDFdLAorKwkgICBtNF9pZmRlZihbJDFdLCBbbTRfZGVmbihbJDFdKVskM11dKVskMl0pXSkK KysKKysKKysKKysjIGx0X2NvbWJpbmUoU0VQLCBQUkVGSVgtTElTVCwgSU5GSVgsIFNVRkZJWDEs IFtTVUZGSVgyLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1Y2UgYSBTRVAgZGVsaW1pdGVkIGxpc3Qgb2Yg YWxsIHBhaXJlZCBjb21iaW5hdGlvbnMgb2YgZWxlbWVudHMgb2YKKysjIFBSRUZJWC1MSVNUIHdp dGggU1VGRklYMSB0aHJvdWdoIFNVRkZJWG4uICBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QKKysj IGhhcyB0aGUgZm9ybSBQUkVGSVhtSU5GSVhTVUZGSVhuLgorKyMgTmVlZGVkIHVudGlsIHdlIGNh biByZWx5IG9uIG00X2NvbWJpbmUgYWRkZWQgaW4gQXV0b2NvbmYgMi42Mi4KKyttNF9kZWZpbmUo W2x0X2NvbWJpbmVdLAorK1ttNF9pZihtNF9ldmFsKFskIyA+IDNdKSwgWzFdLAorKyAgICAgICBb bTRfcHVzaGRlZihbX0x0X3NlcF0sIFttNF9kZWZpbmUoW19MdF9zZXBdLCBtNF9kZWZuKFtsdF9j YXJdKSldKV1dZG5sCisrW1ttNF9mb3JlYWNoKFtfTHRfcHJlZml4XSwgWyQyXSwKKysJICAgICBb bTRfZm9yZWFjaChbX0x0X3N1ZmZpeF0sCisrCQldbTRfZHF1b3RlKG00X2RxdW90ZShtNF9zaGlm dChtNF9zaGlmdChtNF9zaGlmdCgkQCkpKSkpWywKKysJW19MdF9zZXAoWyQxXSlbXW00X2RlZm4o W19MdF9wcmVmaXhdKVskM11tNF9kZWZuKFtfTHRfc3VmZml4XSldKV0pXSldKQorKworKworKyMg bHRfaWZfYXBwZW5kX3VuaXEoTUFDUk8tTkFNRSwgVkFSTkFNRSwgW1NFUEFSQVRPUl0sIFtVTklR XSwgW05PVC1VTklRXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBJZmYgTUFDUk8tTkFNRSBkb2Vz IG5vdCB5ZXQgY29udGFpbiBWQVJOQU1FLCB0aGVuIGFwcGVuZCBpdCAoZGVsaW1pdGVkCisrIyBi eSBTRVBBUkFUT1IgaWYgc3VwcGxpZWQpIGFuZCBleHBhbmQgVU5JUSwgZWxzZSBOT1QtVU5JUS4K KyttNF9kZWZpbmUoW2x0X2lmX2FwcGVuZF91bmlxXSwKKytbbTRfaWZkZWYoWyQxXSwKKysJICBb bTRfaWYobTRfaW5kZXgoWyQzXW00X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCisr CQkgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSwKKysJCSBbJDVdKV0sCisrCSAgW2x0 X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSldKQorKworKworKyMgbHRfZGljdF9hZGQoRElD VCwgS0VZLCBWQUxVRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVm aW5lKFtsdF9kaWN0X2FkZF0sCisrW200X2RlZmluZShbJDEoJDIpXSwgWyQzXSldKQorKworKwor KyMgbHRfZGljdF9hZGRfc3Via2V5KERJQ1QsIEtFWSwgU1VCS0VZLCBWQUxVRSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9k aWN0X2FkZF9zdWJrZXldLAorK1ttNF9kZWZpbmUoWyQxKCQyOiQzKV0sIFskNF0pXSkKKysKKysK KysjIGx0X2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VCS0VZXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RpY3RfZmV0Y2hdLAorK1ttNF9p ZnZhbChbJDNdLAorKwltNF9pZmRlZihbJDEoJDI6JDMpXSwgW200X2RlZm4oWyQxKCQyOiQzKV0p XSksCisrICAgIG00X2lmZGVmKFskMSgkMildLCBbbTRfZGVmbihbJDEoJDIpXSldKSldKQorKwor KworKyMgbHRfaWZfZGljdF9mZXRjaChESUNULCBLRVksIFtTVUJLRVldLCBWQUxVRSwgSUYtVFJV RSwgW0lGLUZBTFNFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9pZl9kaWN0X2ZldGNo XSwKKytbbTRfaWYobHRfZGljdF9mZXRjaChbJDFdLCBbJDJdLCBbJDNdKSwgWyQ0XSwKKysJWyQ1 XSwKKysgICAgWyQ2XSldKQorKworKworKyMgbHRfZGljdF9maWx0ZXIoRElDVCwgW1NVQktFWV0s IFZBTFVFLCBbU0VQQVJBVE9SXSwgS0VZLCBbLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFts dF9kaWN0X2ZpbHRlcl0sCisrW200X2lmKFskNV0sIFtdLCBbXSwKKysgIFtsdF9qb2luKG00X3F1 b3RlKG00X2RlZmF1bHQoWyQ0XSwgW1ssIF1dKSksCisrICAgICAgICAgICBsdF91bnF1b3RlKG00 X3NwbGl0KG00X25vcm1hbGl6ZShtNF9mb3JlYWNoKF9MdF9rZXksIGx0X2NhcihbbTRfc2hpZnRu KDQsICRAKV0pLAorKwkJICAgICAgW2x0X2lmX2RpY3RfZmV0Y2goWyQxXSwgX0x0X2tleSwgWyQy XSwgWyQzXSwgW19MdF9rZXkgXSldKSkpKSldKVtdZG5sCisrXSkKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvbHR2ZXJzaW9uLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv bHR2ZXJzaW9uLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0dmVyc2lvbi5tNAkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvbHR2ZXJzaW9uLm00CTIwMDktMDUtMjMgMTA6MDE6NTYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDIzIEBACisrIyBsdHZlcnNpb24ubTQgLS0gdmVyc2lvbiBudW1iZXJzCQkJ LSotIEF1dG9jb25mIC0qLQorKyMKKysjICAgQ29weXJpZ2h0IChDKSAyMDA0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQs IDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEdlbmVyYXRlZCBmcm9tIGx0 dmVyc2lvbi5pbi4KKysKKysjIHNlcmlhbCAzMDEyIGx0dmVyc2lvbi5tNAorKyMgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR05VIExpYnRvb2wKKysKKyttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfVkVSU0lP Tl0sIFsyLjIuNl0pCisrbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzAxMl0p CisrCisrQUNfREVGVU4oW0xUVkVSU0lPTl9WRVJTSU9OXSwKKytbbWFjcm9fdmVyc2lvbj0nMi4y LjYnCisrbWFjcm9fcmV2aXNpb249JzEuMzAxMicKKytfTFRfREVDTCgsIG1hY3JvX3ZlcnNpb24s IDAsIFtXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkKKytfTFRfREVDTCgs IG1hY3JvX3JldmlzaW9uLCAwKQorK10pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29u ZmlnL21pc3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCistLS0gc29jaS0z LjAuMF80LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJMjAwOS0wNS0yMyAx MDowMjowMS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzY3IEBACisrIyEgL2Jpbi9zaAor KyMgQ29tbW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3Rh bGxpbmcuCisrCisrc2NyaXB0dmVyc2lvbj0yMDA2LTA1LTEwLjIzCisrCisrIyBDb3B5cmlnaHQg KEMpIDE5OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYK KysjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEZy YW4sY29pcyBQaW5hcmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZl cnNpb24uCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisr IyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9u IHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRl IHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZp Z3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0 IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0 aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAg ZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgorKyAgZXhp dCAxCisrZmkKKysKKytydW49OgorK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBd KlwpLiovXDEvcCcKKytzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCisrCisr IyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVu IGluIHRoZQorKyMgc3JjZGlyIGFscmVhZHkuCisraWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRo ZW4KKysgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKKytlbHNlCisrICBjb25maWd1cmVfYWM9 Y29uZmlndXJlLmluCisrZmkKKysKKyttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCisrCisr Y2FzZSAkMSBpbgorKy0tcnVuKQorKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBh bmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgorKyAgcnVuPQorKyAgc2hpZnQKKysgICIkQCIg JiYgZXhpdCAwCisrICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhp cyBvZnRlbiBoYXBwZW5zCisrICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50 IHZlcnNpb24gb2YgYSB0b29sIG9uCisrICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11 bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCisrICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBp ZiB0aGUgcHJvZ3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCisrICAjIGlmIC0tcnVuIGhhZG4ndCBi ZWVuIHBhc3NlZC4KKysgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgorKyAgICBydW49OgorKyAgICBt c2c9InByb2JhYmx5IHRvbyBvbGQiCisrICBmaQorKyAgOzsKKysKKysgIC1ofC0taHwtLWhlfC0t aGVsfC0taGVscCkKKysgICAgZWNobyAiXAorKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VN RU5UXS4uLgorKworK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJP R1JBTSBpcyBtaXNzaW5nLCBvciByZXR1cm4gYW4KKytlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMg bm8ga25vd24gaGFuZGxpbmcgZm9yIFBST0dSQU0uCisrCisrT3B0aW9uczoKKysgIC1oLCAtLWhl bHAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgIG91 dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CisrICAtLXJ1biAgICAgICAgICAgdHJ5 IHRvIHJ1biB0aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKKysK KytTdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6CisrICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBc YGFjbG9jYWwubTQnCisrICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKKysg IGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCisrICBhdXRvbTR0ZSAgICAg dG91Y2ggdGhlIG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQorKyAgYXV0b21ha2Ug ICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcworKyAgYmlzb24gICAgICAgIGNyZWF0 ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorKyAgZmxl eCAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3Rpbmcg LmMKKysgIGhlbHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKKysgIGxleCAgICAgICAg ICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisrICBt YWtlaW5mbyAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCisrICB0YXIgICAgICAgICAgdHJ5IHRh ciwgZ251dGFyLCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncworKyAg eWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlz dGluZyAuW2NoXQorKworK1NlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3Jn Pi4iCisrICAgIGV4aXQgJD8KKysgICAgOzsKKysKKysgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVy c3wtLXZlcnNpfC0tdmVyc2lvfC0tdmVyc2lvbikKKysgICAgZWNobyAibWlzc2luZyAkc2NyaXB0 dmVyc2lvbiAoR05VIEF1dG9tYWtlKSIKKysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLSop CisrICAgIGVjaG8gMT4mMiAiJDA6IFVua25vd24gXGAkMScgb3B0aW9uIgorKyAgICBlY2hvIDE+ JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisrICAgIGV4aXQgMQor KyAgICA7OworKworK2VzYWMKKysKKysjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBm YWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCisrIyBkb24ndCBoYXZlIGl0IGFuZCAtLXZlcnNp b24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0ZWN0CisrIyB0aGUgcHJvZ3JhbSkuCisr Y2FzZSAkMSBpbgorKyAgbGV4fHlhY2MpCisrICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBk b24ndCBoYXZlIC0tdmVyc2lvbi4KKysgICAgOzsKKysKKysgIHRhcikKKysgICAgaWYgdGVzdCAt biAiJHJ1biI7IHRoZW4KKysgICAgICAgZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJlcXVpcmVz IC0tcnVuIgorKyAgICAgICBleGl0IDEKKysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNp b24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KKysgICAgICAgZXhpdCAxCisrICAg IGZpCisrICAgIDs7CisrCisrICAqKQorKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12 ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0 IGl0IGZhaWxlZC4KKysgICAgICAgZXhpdCAxCisrICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12 ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCisrICAgICAgICMgQ291bGQg bm90IHJ1biAtLXZlcnNpb24gb3IgLS1oZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21lb25lCisr ICAgICAgICMgcnVubmluZyBgJFRPT0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBj aGVjayB3aGV0aGVyCisrICAgICAgICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9P TCB1c2VzIG1pc3NpbmcuCisrICAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgICA7OworK2VzYWMK KysKKysjIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFu IG91dGRhdGVkIHZlcnNpb24pLAorKyMgdHJ5IHRvIGVtdWxhdGUgaXQuCisrY2FzZSAkMSBpbgor KyAgYWNsb2NhbCopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cu ICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFj aW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAg ICAgICB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdy YWIgdGhlbSBmcm9tCisrICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3Vj aCBhY2xvY2FsLm00CisrICAgIDs7CisrCisrICBhdXRvY29uZikKKysgICAgZWNobyAxPiYyICJc CisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisr ICAgICAgICAgeW91IG1vZGlmaWVkIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50 IHRvIGluc3RhbGwgdGhlCisrICAgICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNr YWdlcy4gIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUKKysgICAgICAgICBhcmNoaXZlIHNpdGUuIgor KyAgICB0b3VjaCBjb25maWd1cmUKKysgICAgOzsKKysKKysgIGF1dG9oZWFkZXIpCisrICAgIGVj aG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVl ZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25m aWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50CisrICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBB dXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQorKyAgICAgICAgIGZy b20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtD TV1fQ09ORklHX0hFQURFUihcKFteKV0qXCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAorKyAg ICB0ZXN0IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcuaCIKKysgICAgdG91Y2hfZmlsZXM9 CisrICAgIGZvciBmIGluICRmaWxlczsgZG8KKysgICAgICBjYXNlICRmIGluCisrICAgICAgKjoq KSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICJgZWNobyAiJGYiIHwKKysJCQkJICAgICAgIHNl ZCAtZSAncy9eW146XSo6Ly8nIC1lICdzLzouKi8vJ2A7OworKyAgICAgICopIHRvdWNoX2ZpbGVz PSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysgICAgdG91 Y2ggJHRvdWNoX2ZpbGVzCisrICAgIDs7CisrCisrICBhdXRvbWFrZSopCisrICAgIGVjaG8gMT4m MiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBp ZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQn IG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KKysgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0 YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4KKysgICAgICAgICBHcmFi IHRoZW0gZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIGZpbmQgLiAtdHlwZSBmIC1u YW1lIE1ha2VmaWxlLmFtIC1wcmludCB8CisrCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8CisrCSAg IHdoaWxlIHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQorKyAgICA7OworKworKyAgYXV0b200 dGUpCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlz ICRtc2cuCisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRo b3V0IGhhdmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxp bmcgdGhlbS4KKysgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2Nv bmYnIGZyb20gYW55IEdOVQorKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9 YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIg JiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3Qg LWYgIiRmaWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRm aWxlIiB8fCBleGVjID4kZmlsZQorKwllY2hvICIjISAvYmluL3NoIgorKwllY2hvICIjIENyZWF0 ZWQgYnkgR05VIEF1dG9tYWtlIG1pc3NpbmcgYXMgYSByZXBsYWNlbWVudCBvZiIKKysJZWNobyAi IyAgJCAkQCIKKysJZWNobyAiZXhpdCAwIgorKwljaG1vZCAreCAkZmlsZQorKwlleGl0IDEKKysg ICAgZmkKKysgICAgOzsKKysKKysgIGJpc29ufHlhY2MpCisrICAgIGVjaG8gMT4mMiAiXAorK1dB Uk5JTkc6IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAg IHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBh Y2thZ2UKKysgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtl IGVmZmVjdC4gIFlvdSBjYW4gZ2V0CisrICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFy Y2hpdmUgc2l0ZS4iCisrICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAorKyAgICBpZiB0ZXN0ICQj IC1uZSAxOyB0aGVuCisrICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKKysJY2FzZSAkTEFT VEFSRyBpbgorKwkqLnkpCisrCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3Mv eSQvYy8nYAorKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCisrCSAgICAgICAgIGNw ICIkU1JDRklMRSIgeS50YWIuYworKwkgICAgZmkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNU QVJHIiB8IHNlZCAncy95JC9oLydgCisrCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4K KysJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5oCisrCSAgICBmaQorKwkgIDs7CisrCWVz YWMKKysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIHkudGFiLmg7IHRoZW4KKysJZWNobyA+eS50 YWIuaAorKyAgICBmaQorKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgorKwllY2hvICdt YWluKCkgeyByZXR1cm4gMDsgfScgPnkudGFiLmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGxl eHxmbGV4KQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91 IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBm aWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKKysgICAgICAgICBpbiBvcmRl ciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0Cisr ICAgICAgICAgXGBGbGV4JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0gLWYg bGV4Lnl5LmMKKysgICAgaWYgdGVzdCAkIyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBMQVNU QVJHPSJcJHskI30iCisrCWNhc2UgJExBU1RBUkcgaW4KKysJKi5sKQorKwkgICAgU1JDRklMRT1g ZWNobyAiJExBU1RBUkciIHwgc2VkICdzL2wkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNG SUxFIjsgdGhlbgorKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCisrCSAgICBmaQor KwkgIDs7CisrCWVzYWMKKysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0aGVu CisrCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKysgICAgZmkKKysgICAg OzsKKysKKysgIGhlbHAybWFuKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBp cyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysJIHlvdSBtb2RpZmllZCBhIGRl cGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKKysJIFxgSGVscDJt YW4nIHBhY2thZ2UgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQorKwkg ZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0 ZS4iCisrCisrICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAg ICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVz byJgCisrICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBl bHNlCisrCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQorKwllY2hvICIuYWIgaGVscDJt YW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlIgorKwlleGl0IDEKKysgICAgZmkK KysgICAgOzsKKysKKysgIG1ha2VpbmZvKQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBc YCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3Ug bW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmls ZQorKyAgICAgICAgIGluZGlyZWN0bHkgYWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhlIG1hbnVh bC4gIFRoZSBzcHVyaW91cworKyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2Vx dWVuY2Ugb2YgdXNpbmcgYSBidWdneSBcYG1ha2UnIChBSVgsCisrICAgICAgICAgRFUsIElSSVgp LiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCisr ICAgICAgICAgdGhlIFxgR05VIG1ha2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBH TlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNp ZmllZCB3aXRoIC1vIC4uLgorKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0 cHV0ImAKKysgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAi JHNlZF9taW51c28iYAorKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKysgICAgICAjIC4u LiBvciBpdCBpcyB0aGUgb25lIHNwZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KKysgICAg ICBpbmZpbGU9YGVjaG8gIiQqIiB8IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKKysgICAg ICBmaWxlPWBzZWQgLW4gJworKwkvXkBzZXRmaWxlbmFtZS97CisrCSAgcy8uKiBcKFteIF0qXCkg KiQvXDEvCisrCSAgcAorKwkgIHEKKysJfScgJGluZmlsZWAKKysgICAgICAjIC4uLiBvciBpdCBp cyBkZXJpdmVkIGZyb20gdGhlIHNvdXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZv KQorKyAgICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAn cywuKi8sLDtzLC5bXi5dKiQsLCdgLmluZm8KKysgICAgZmkKKysgICAgIyBJZiB0aGUgZmlsZSBk b2VzIG5vdCBleGlzdCwgdGhlIHVzZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOworKyAgICAjIGxl dCdzIGZhaWwgd2l0aG91dCB0b3VjaGluZyBhbnl0aGluZy4KKysgICAgdGVzdCAtZiAkZmlsZSB8 fCBleGl0IDEKKysgICAgdG91Y2ggJGZpbGUKKysgICAgOzsKKysKKysgIHRhcikKKysgICAgc2hp ZnQKKysKKysgICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBh cnQuCisrICAgICMgTG9vayBmb3IgZ251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZv aWQgdWdseSBlcnJvcgorKyAgICAjIG1lc3NhZ2VzLgorKyAgICBpZiAoZ251dGFyIC0tdmVyc2lv biA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAK KysgICAgZmkKKysgICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVu CisrICAgICAgIGd0YXIgIiRAIiAmJiBleGl0IDAKKysgICAgZmkKKysgICAgZmlyc3Rhcmc9IiQx IgorKyAgICBpZiBzaGlmdDsgdGhlbgorKwljYXNlICRmaXJzdGFyZyBpbgorKwkqbyopCisrCSAg ICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKKysJICAgIHRhciAiJGZp cnN0YXJnIiAiJEAiICYmIGV4aXQgMAorKwkgICAgOzsKKysJZXNhYworKwljYXNlICRmaXJzdGFy ZyBpbgorKwkqaCopCisrCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gv L2AKKysJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAorKwkgICAgOzsKKysJZXNh YworKyAgICBmaQorKworKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBJIGNhbid0IHNlZW0g dG8gYmUgYWJsZSB0byBydW4gXGB0YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KKysgICAg ICAgICBZb3UgbWF5IHdhbnQgdG8gaW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9y IGNoZWNrIHRoZQorKyAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgorKyAgICBleGl0 IDEKKysgICAgOzsKKysKKysgICopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEn IGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZp ZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMg Zm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKKysg ICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVz IGZvciBpbnN0YWxsaW5nCisrICAgICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBl ZWsgYXQgYW55IEdOVSBhcmNoaXZlIHNpdGUsIGluIGNhc2UKKysgICAgICAgICBzb21lIG90aGVy IHBhY2thZ2Ugd291bGQgY29udGFpbiB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCisrICAg IGV4aXQgMQorKyAgICA7OworK2VzYWMKKysKKytleGl0IDAKKysKKysjIExvY2FsIHZhcmlhYmxl czoKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysj IHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0 OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlndXJlCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlCTIwMDktMDUtMjMgMTM6 Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQky MDA5LTA1LTIzIDEwOjAyOjAwLjAwMDAwMDAwMCArMDIwMAorQEAgLTEsNzIgKzEsMjIxNTAgQEAK Ky0jIS9iaW4vc2gKKysjISAvYmluL3NoCisrIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBl bmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgorKyMgR2VuZXJhdGVkIGJ5IEdO VSBBdXRvY29uZiAyLjYzIGZvciBTT0NJIDMuMC4wLgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxt c29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgorKyMKKysjIENvcHlyaWdodCAoQykgMjAw NC0yMDA5IE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cisr IworKyMgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLAorKyMgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgY29uZmlndXJlIHNj cmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkg aXQuCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlv bi4gICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisgCistaWYgWyAkIyAtZ3QgMCBd CistdGhlbgorLSAgICBpZiBbICQxID0gIi1oZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KKy0gICAg dGhlbgorLSAgICAgICAgZWNobyAnUmVjb2duaXplZCBjb25maWd1cmUgb3B0aW9uczonCistICAg ICAgICBlY2hvICcnCistICAgICAgICBlY2hvICdJbnN0YWxsYXRpb24gb3B0aW9uczonCistICAg ICAgICBlY2hvICctLWluY2x1ZGUtcHJlZml4PS9zb21lL3BhdGggICAgICAtIHBhdGggdG8gaW5z dGFsbCBTT0NJIGhlYWRlciBmaWxlcycKKy0gICAgICAgIGVjaG8gJy0tbGliLXByZWZpeD0vc29t ZS9wYXRoICAgICAgICAgIC0gcGF0aCB0byBpbnN0YWxsIFNPQ0kgbGlicmFyaWVzJworLSAgICAg ICAgZWNobyAnJworLSAgICAgICAgZWNobyAnTXlTUUwgb3B0aW9uczonCistICAgICAgICBlY2hv ICctLW15c3FsLWluY2x1ZGU9L3NvbWUvcGF0aCAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5n IG15c3FsLmgnCistICAgICAgICBlY2hvICctLW15c3FsLWxpYj0vc29tZS9wYXRoICAgICAgICAg ICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYm15c3FsY2xpZW50LlthfHNvXScKKy0gICAgICAg IGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ09yYWNsZSBvcHRpb25zIChpZiBPUkFDTEVfSE9NRSB2 YXJpYWJsZSBpcyBub3Qgc2V0KTonCistICAgICAgICBlY2hvICctLW9yYWNsZS1pbmNsdWRlPS9z b21lL3BhdGggICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIG9jaS5oJworLSAgICAgICAgZWNo byAnLS1vcmFjbGUtbGliPS9zb21lL3BhdGggICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmlu ZyBsaWJjbG50c2guW2F8c29dJworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnUG9z dGdyZVNRTCBvcHRpb25zOicKKy0gICAgICAgIGVjaG8gJy0tcG9zdGdyZXNxbC1pbmNsdWRlPS9z b21lL3BhdGggIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlicHEvbGlicHEtZnMuaCcKKy0gICAg ICAgIGVjaG8gJy0tcG9zdGdyZXNxbC1saWI9L3NvbWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNv bnRhaW5pbmcgbGlicHEuW2F8c29dJworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAn VGVzdCBwcm9ncmFtcyBjb21waWxhdGlvbiBvcHRpb25zIChub3QgbmVlZGVkIGZvciBsaWJyYXJ5 IGJ1aWxkKTonCistICAgICAgICBlY2hvICctLWJvb3N0LWluY2x1ZGU9L3NvbWUvcGF0aCAgICAg ICAtIHJvb3QgaW5jbHVkZSBkaXJlY3Rvcnkgb2YgQm9vc3QnCistICAgICAgICBlY2hvICctLWJv b3N0LWxpYj0vc29tZS9wYXRoICAgICAgICAgICAtIHJvb3QgbGliIGRpcmVjdG9yeSBvZiBCb29z dCcKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGV4aXQKKy0gICAgZmkKKysjIEJlIG1vcmUg Qm91cm5lIGNvbXBhdGlibGUKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtT IHNoCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrICBlbXVsYXRlIHNoCisrICBOVUxMQ01EPToKKysgICMgUHJl LTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGlj aAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4K KysgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QK KytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KKysgICpwb3NpeCopIHNl dCAtbyBwb3NpeCA7OworK2VzYWMKKysKKytmaQorKworKworKworKworKyMgUEFUSCBuZWVkcyBD UgorKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KKythc19jcl9sZXR0 ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKKythc19jcl9MRVRURVJTPSdBQkNERUZH SElKS0xNTk9QUVJTVFVWV1hZWicKKythc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2Ny X0xFVFRFUlMKKythc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCisrYXNfY3JfYWxudW09JGFzX2Ny X0xldHRlcnMkYXNfY3JfZGlnaXRzCisrCisrYXNfbmw9JworKycKKytleHBvcnQgYXNfbmwKKysj IFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRm LgorK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFwnCisrYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCisr YXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8K KytpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYv bnVsbDsgdGhlbgorKyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCisrICBhc19lY2hvX249J3ByaW50 ZiAlcycKKytlbHNlCisrICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hv KSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KKysgICAgYXNfZWNob19ib2R5 PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25sIicKKysgICAgYXNfZWNob19uPScvdXNy L3VjYi9lY2hvIC1uJworKyAgZWxzZQorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQx IiA6ICJYXFwoLipcXCkiJworKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAorKyAgICAgIGFyZz0k MTsKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAqIiRhc19ubCIqKQorKwlleHByICJYJGFy ZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKKysJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxc XCguKlxcKSJgOzsKKysgICAgICBlc2FjOworKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipc XCkiIHwgdHIgLWQgIiRhc19ubCIKKysgICAgJworKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkK KysgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycKKysgIGZpCisr ICBleHBvcnQgYXNfZWNob19ib2R5CisrICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFz X2VjaG8nCisrZmkKKysKKysjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KKytpZiB0ZXN0ICIk e1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorKyAgUEFUSF9TRVBBUkFUT1I9Ogor KyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+ JjEgJiYgeworKyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4v ZGV2L251bGwgMj4mMSB8fAorKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JworKyAgfQorK2ZpCisr CisrIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCisraWYgKCAoTUFJTD02MDsgdW5zZXQg TUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBhc191bnNldD11bnNldAor K2Vsc2UKKysgIGFzX3Vuc2V0PWZhbHNlCisrZmkKKysKKysKKysjIElGUworKyMgV2UgbmVlZCBz cGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5n IGlzCisrIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBz cGFjZS10YWIuCisrIyAoSWYgX0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNl dCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCisrIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8g ZW1wdHkgdmFsdWUuKQorK0lGUz0iICIiCSRhc19ubCIKKysKKysjIEZpbmQgd2hvIHdlIGFyZS4g IExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgor K2Nhc2UgJDAgaW4KKysgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICAgICA7OworK2VzYWMKKysjIFdlIGRpZCBu b3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1B TkQnCisrIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGgu CisraWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgorKyAgYXNfbXlzZWxmPSQwCisrZmkK KytpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCisrICAkYXNfZWNobyAiJGFzX215c2Vs ZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxl IG5hbWUiID4mMgorKyAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkKKysKKysjIFdvcmsgYXJv dW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KKytmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1B SUxQQVRICisrZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vu c2V0ICRhc192YXIKKytkb25lCisrUFMxPSckICcKKytQUzI9Jz4gJworK1BTND0nKyAnCisrCisr IyBOTFMgbnVpc2FuY2VzLgorK0xDX0FMTD1DCisrZXhwb3J0IExDX0FMTAorK0xBTkdVQUdFPUMK KytleHBvcnQgTEFOR1VBR0UKKysKKysjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KKytpZiBl eHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAw MSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNlCisr ICBhc19leHByPWZhbHNlCisrZmkKKysKKytpZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAy PiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisrICBhc19i YXNlbmFtZT1iYXNlbmFtZQorK2Vsc2UKKysgIGFzX2Jhc2VuYW1lPWZhbHNlCisrZmkKKysKKysK KysjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCisrYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAi IHx8CisrJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgi JDAiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251 bGwgfHwKKyskYXNfZWNobyBYLyIkMCIgfAorKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClc LyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97 CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAg ICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrCisrIyBDRFBBVEgu CisrJGFzX3Vuc2V0IENEUEFUSAorKworKworK2lmIHRlc3QgIngkQ09ORklHX1NIRUxMIiA9IHg7 IHRoZW4KKysgIGlmIChldmFsICI6IikgMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX2hhdmVfcmVx dWlyZWQ9eWVzCisrZWxzZQorKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubworK2ZpCisrCisrICBpZiB0 ZXN0ICRhc19oYXZlX3JlcXVpcmVkID0geWVzICYmCSAoZXZhbCAiOgorKyhhc19mdW5jX3JldHVy biAoKSB7CisrICAoZXhpdCBcJDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAoKSB7CisrICBhc19m dW5jX3JldHVybiAwCisrfQorK2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBhc19mdW5jX3JldHVy biAxCisrfQorK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJuIDAKKyt9CisrYXNf ZnVuY19yZXRfZmFpbHVyZSAoKSB7CisrICByZXR1cm4gMQorK30KKysKKytleGl0Y29kZT0wCisr aWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAg ZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19mYWlsdXJl OyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQu CisrZmkKKysKKytpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAg ZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KKytmaQorKwor K2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNf ZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNldCB4OyBhc19mdW5j X3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisrICA6CisrZWxzZQor KyAgZXhpdGNvZGU9MQorKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2 ZWQuCisrZmkKKysKKyt0ZXN0IFwkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7 IH0KKysKKysoCisrICBhc19saW5lbm9fMT1cJExJTkVOTworKyAgYXNfbGluZW5vXzI9XCRMSU5F Tk8KKysgIHRlc3QgXCJ4XCRhc19saW5lbm9fMVwiICE9IFwieFwkYXNfbGluZW5vXzJcIiAmJgor KyAgdGVzdCBcInhcYGV4cHIgXCRhc19saW5lbm9fMSArIDFcYFwiID0gXCJ4XCRhc19saW5lbm9f MlwiKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysiKSAyPiAvZGV2L251bGw7IHRoZW4KKysg IDoKKytlbHNlCisrICBhc19jYW5kaWRhdGVfc2hlbGxzPQorKyAgICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9S L3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgY2FzZSAkYXNfZGlyIGluCisrCSAv KikKKysJICAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworKwkgICAgIGFzX2Nh bmRpZGF0ZV9zaGVsbHM9IiRhc19jYW5kaWRhdGVfc2hlbGxzICRhc19kaXIvJGFzX2Jhc2UiCisr CSAgIGRvbmU7OworKyAgICAgICBlc2FjCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysK KysgICAgICBmb3IgYXNfc2hlbGwgaW4gJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbwor KwkgIyBUcnkgb25seSBzaGVsbHMgdGhhdCBleGlzdCwgdG8gc2F2ZSBzZXZlcmFsIGZvcmtzLgor KwkgaWYgeyB0ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9 ICYmCisrCQl7ICgiJGFzX3NoZWxsIikgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3Qg LW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMg b2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29u dHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAn JHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2Fz ZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsK Kytlc2FjCisrCisrZmkKKysKKysKKys6CisrX0FTRU9GCisrfTsgdGhlbgorKyAgQ09ORklHX1NI RUxMPSRhc19zaGVsbAorKwkgICAgICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKKysJICAgICAgIGlm IHsgIiRhc19zaGVsbCIgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3QgLW4gIiR7WlNI X1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAg ZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRv IHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8g b3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9 Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAt bykgMj4vZGV2L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisr CisrZmkKKysKKysKKys6CisrKGFzX2Z1bmNfcmV0dXJuICgpIHsKKysgIChleGl0ICQxKQorK30K Kythc19mdW5jX3N1Y2Nlc3MgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMAorK30KKythc19mdW5j X2ZhaWx1cmUgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMQorK30KKythc19mdW5jX3JldF9zdWNj ZXNzICgpIHsKKysgIHJldHVybiAwCisrfQorK2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAg cmV0dXJuIDEKKyt9CisrCisrZXhpdGNvZGU9MAorK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgor KyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxl ZC4KKytmaQorKworK2lmIGFzX2Z1bmNfZmFpbHVyZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAg ZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRf c3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVu Y19yZXRfc3VjY2VzcyBmYWlsZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0 aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVk LgorK2ZpCisrCisraWYgKCBzZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9 ICIkMSIgKTsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRp b25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVkLgorK2ZpCisrCisrdGVzdCAkZXhpdGNvZGUg PSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysKKysoCisrICBhc19saW5lbm9fMT0kTElO RU5PCisrICBhc19saW5lbm9fMj0kTElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAi eCRhc19saW5lbm9fMiIgJiYKKysgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAi eCRhc19saW5lbm9fMiIpIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorKworK19BU0VPRgorK307 IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKytmaQorKworKyAgICAgIGRvbmUKKysKKysgICAgICBp ZiB0ZXN0ICJ4JENPTkZJR19TSEVMTCIgIT0geDsgdGhlbgorKyAgZm9yIGFzX3ZhciBpbiBCQVNI X0VOViBFTlYKKysJZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFz X3Vuc2V0ICRhc192YXIKKysJZG9uZQorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCWV4ZWMgIiRD T05GSUdfU0hFTEwiICIkYXNfbXlzZWxmIiAkezErIiRAIn0KKytmaQorKworKworKyAgICBpZiB0 ZXN0ICRhc19oYXZlX3JlcXVpcmVkID0gbm87IHRoZW4KKysgIGVjaG8gVGhpcyBzY3JpcHQgcmVx dWlyZXMgYSBzaGVsbCBtb3JlIG1vZGVybiB0aGFuIGFsbCB0aGUKKysgICAgICBlY2hvIHNoZWxs cyB0aGF0IEkgZm91bmQgb24geW91ciBzeXN0ZW0uICBQbGVhc2UgaW5zdGFsbCBhCisrICAgICAg ZWNobyBtb2Rlcm4gc2hlbGwsIG9yIG1hbnVhbGx5IHJ1biB0aGUgc2NyaXB0IHVuZGVyIHN1Y2gg YQorKyAgICAgIGVjaG8gc2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLgorKyAgICAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfQorK2ZpCisrCisrCisrZmkKKysKKytmaQorKworKworKworKyhldmFsICJh c19mdW5jX3JldHVybiAoKSB7CisrICAoZXhpdCBcJDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAo KSB7CisrICBhc19mdW5jX3JldHVybiAwCisrfQorK2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBh c19mdW5jX3JldHVybiAxCisrfQorK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJu IDAKKyt9CisrYXNfZnVuY19yZXRfZmFpbHVyZSAoKSB7CisrICByZXR1cm4gMQorK30KKysKKytl eGl0Y29kZT0wCisraWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhp dGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNf ZnVuY19mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVy ZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6 CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxl ZC4KKytmaQorKworK2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEK KysgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNl dCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisr ICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMg d2VyZSBub3Qgc2F2ZWQuCisrZmkKKysKKyt0ZXN0IFwkZXhpdGNvZGUgPSAwIikgfHwgeworKyAg ZWNobyBObyBzaGVsbCBmb3VuZCB0aGF0IHN1cHBvcnRzIHNoZWxsIGZ1bmN0aW9ucy4KKysgIGVj aG8gUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdudS5vcmcgYWJvdXQgeW91ciBzeXN0ZW0sCisr ICBlY2hvIGluY2x1ZGluZyBhbnkgZXJyb3IgcG9zc2libHkgb3V0cHV0IGJlZm9yZSB0aGlzIG1l c3NhZ2UuCisrICBlY2hvIFRoaXMgY2FuIGhlbHAgdXMgaW1wcm92ZSBmdXR1cmUgYXV0b2NvbmYg dmVyc2lvbnMuCisrICBlY2hvIENvbmZpZ3VyYXRpb24gd2lsbCBub3cgcHJvY2VlZCB3aXRob3V0 IHNoZWxsIGZ1bmN0aW9ucy4KKyt9CisrCisrCisrCisrICBhc19saW5lbm9fMT0kTElORU5PCisr ICBhc19saW5lbm9fMj0kTElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19s aW5lbm9fMiIgJiYKKysgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19s aW5lbm9fMiIgfHwgeworKworKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2Yg JGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkg dGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorKyAgIyBsaW5lLW51 bWJlciBsaW5lIGFmdGVyIGVhY2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQn CisrICAjIGRvZXMgdGhlIHJlYWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRv IHBhaXIgZWFjaAorKyAgIyBsaW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmlu ZyAkTElORU5PLCBhbmQgYXBwZW5kcworKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1 dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbAorKyAgIyBjYXNlIGF0IGxpbmUg ZW5kLgorKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBF Z2dlcnQgd3JvdGUgdGhlCisrICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9t IFBhb2xvIEJvbnppbmkuICBCbGFtZSBMZWUKKysgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBm b3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisrICBzZWQgLW4gJworKyAgICBwCisrICAgIC9bJF1MSU5F Tk8vPQorKyAgJyA8JGFzX215c2VsZiB8CisrICAgIHNlZCAnCisrICAgICAgcy9bJF1MSU5FTk8u Ki8mLS8KKysgICAgICB0IGxpbmVubworKyAgICAgIGIKKysgICAgICA6bGluZW5vCisrICAgICAg TgorKyAgICAgIDpsb29wCisrICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4q XG5cKVwoLipcKS9cMlwxXDIvCisrICAgICAgdCBsb29wCisrICAgICAgcy8tXG4uKi8vCisrICAg ICcgPiRhc19tZS5saW5lbm8gJiYKKysgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87 IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9CisrCisrICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2lu ZyBhbGwgc29ydCBvZiBwcm9ibGVtcworKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3Qg dGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCisrICAjIG9yaWdpbmFsIGFuZCBzbyBv bi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8k YXNfbWUubGluZW5vIgorKyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1h bmQuCisrICBleGl0CisrfQorKworKworK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVz dCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1k aXJuYW1lCisrZWxzZQorKyAgYXNfZGlybmFtZT1mYWxzZQorK2ZpCisrCisrRUNIT19DPSBFQ0hP X049IEVDSE9fVD0KKytjYXNlIGBlY2hvIC1uIHhgIGluCisrLW4qKQorKyAgY2FzZSBgZWNobyAn eFxjJ2AgaW4KKysgICpjKikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hh cmFjdGVyLgorKyAgKikgICBFQ0hPX0M9J1xjJzs7CisrICBlc2FjOzsKKysqKQorKyAgRUNIT19O PSctbic7OworK2VzYWMKKytpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgor KyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBh c19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytybSAtZiBjb25m JCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgor KyAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQorK2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5k aXIKKysgIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKKytmaQorK2lmIChlY2hvID5jb25m JCQuZmlsZSkgMj4vZGV2L251bGw7IHRoZW4KKysgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYk JCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9zPSdsbiAtcycKKysgICAgIyAuLi4gYnV0 IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKKysgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBm aWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4KKysgICAgIyAyKSBESkdQUCA8IDIuMDQg aGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCisr ICAgICMgSW4gYm90aCBjYXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCisrICAg IGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNv bmYkJC5leGUgfHwKKysgICAgICBhc19sbl9zPSdjcCAtcCcKKysgIGVsaWYgbG4gY29uZiQkLmZp bGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9bG4KKysgIGVsc2UKKysg ICAgYXNfbG5fcz0nY3AgLXAnCisrICBmaQorK2Vsc2UKKysgIGFzX2xuX3M9J2NwIC1wJworK2Zp Cisrcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQu ZmlsZQorK3JtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKKysKKytpZiBta2RpciAtcCAuIDI+ L2Rldi9udWxsOyB0aGVuCisrICBhc19ta2Rpcl9wPToKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAg JiYgcm1kaXIgLi8tcAorKyAgYXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAv ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysg IGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1M CisrICBlbHNlCisrICAgIGFzX2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisr ICAgIGV2YWwgc2ggLWMgJ1wnJworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0 IC1kICIkMS8uIjsKKysgICAgICBlbHNlCisrCWNhc2UgJDEgaW4KKysJLSopc2V0ICIuLyQxIjs7 CisrCWVzYWM7CisrCWNhc2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251 bGxgIGluCisrCT8/P1tzeF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKKysgICAgJ1wnJyBzaAorKyAg JworK2ZpCisrYXNfZXhlY3V0YWJsZV9wPSRhc190ZXN0X3gKKysKKysjIFNlZCBleHByZXNzaW9u IHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCisrYXNfdHJfY3BwPSJldmFs IHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51 bV0lXyVnJyIKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFs aWQgdmFyaWFibGUgbmFtZS4KKythc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFz X2NyX2FsbnVtXSVfJWcnIgorKworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmlu ZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3No fQorKworK2Nhc2UgWCRsdF9FQ0hPIGluCisrWCotLWZhbGxiYWNrLWVjaG8pCisrICAjIFJlbW92 ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgor KyAgRUNITz1gZWNobyAiJGx0X0VDSE8iIHwgc2VkICdzLFxcXFxcJFxcJDAsJyQwJywnYAorKyAg OzsKKytlc2FjCisrCisrRUNITz0ke2x0X0VDSE8tZWNob30KKytpZiB0ZXN0ICJYJDEiID0gWC0t bm8tcmVleGVjOyB0aGVuCisrICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBj b250aW51ZS4KKysgIHNoaWZ0CisrZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsg dGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3Zl cgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdY XHQnIDsgdGhlbgorKyAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQorKyAgOgorK2Vsc2UKKysgICMg UmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KKysgIGV4ZWMgJFNIRUxMICIkMCIgLS1u by1yZWV4ZWMgJHsxKyIkQCJ9CisrZmkKKysKKytpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2st ZWNobzsgdGhlbgorKyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQg PDxfTFRfRU9GCisrJCoKKytfTFRfRU9GCisrICBleGl0IDAKKyBmaQorIAorLW1rZGlyIC1wIGJ1 aWxkL3VuaXgvbG9jYWwKKy1wYXRoPSJidWlsZC91bml4L2xvY2FsL3BhcmFtZXRlcnMiCistcm0g LWYgJHBhdGgKKy10b3VjaCAkcGF0aAorLWZvciBwYXJhbSBpbiAkKgorLWRvCistICAgICAgICBl Y2hvICRwYXJhbSA+PiAkcGF0aAorLWRvbmUKKy0KKy1wcmludGYgJ1RyeWluZyB0byBmaW5kIHRo ZSBUY2wgaW50ZXJwcmV0ZXIuLi4gJworLXRjbF9mb3VuZD0wCistCistZm9yIHBhdGggaW4gIi91 c3IvYmluL3RjbHNoIiBcCistICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC41IiBc CistICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC40IiBcCistICAgICAgICAgICAg Ii91c3IvbG9jYWwvYmluL3RjbHNoOC4zIjsgZG8KKy0gICAgaWYgWyAteCAkcGF0aCBdCistICAg IHRoZW4KKy0gICAgICAgIGVjaG8gJHBhdGggPiBidWlsZC91bml4L2xvY2FsL3RjbAorLSAgICAg ICAgZWNobyAkcGF0aAorLSAgICAgICAgdGNsX2ZvdW5kPTEKKysjIFRoZSBIUC1VWCBrc2ggYW5k IFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYg Q0RQQVRIIGlzIHNldC4KKysodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQg Q0RQQVRICisrCisraWYgdGVzdCAteiAiJGx0X0VDSE8iOyB0aGVuCisrICBpZiB0ZXN0ICJYJHtl Y2hvX3Rlc3Rfc3RyaW5nK3NldH0iICE9IFhzZXQ7IHRoZW4KKysgICAgIyBmaW5kIGEgc3RyaW5n IGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRo IGl0CisrICAgIGZvciBjbWQgaW4gJ3NlZCA1MHEgIiQwIicgJ3NlZCAyMHEgIiQwIicgJ3NlZCAx MHEgIiQwIicgJ3NlZCAycSAiJDAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAgICAjIGV4cGVjdGVk IHNpemVzOiBsZXNzIHRoYW4gMktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgorKyAg ICAgIGlmIHsgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgor KwkgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IH0g Mj4vZGV2L251bGwKKysgICAgICB0aGVuCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAg IGRvbmUKKysgIGZpCisrCisrICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVs bGAiID0gJ1hcdCcgJiYKKysgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hv X3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysgICAgIHRlc3QgIlgkZWNob190ZXN0 aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICA6CisrICBlbHNl CisrICAgICMgVGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8g cHJvZ3JhbXMgdW5xdW90ZQorKyAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBv c3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisrICAgICMgICBlY2hvICIkc29tZXRo aW5nIiB8IHNlZCAncy9cXC9cXFxcL2cnCisrICAgICMKKysgICAgIyBTbywgZmlyc3Qgd2UgbG9v ayBmb3IgYSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorKworKyAgICBsdF9zYXZl X2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGRpciBpbiAkUEFUSCAv dXNyL3VjYjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICBpZiAodGVzdCAt ZiAkZGlyL2VjaG8gfHwgdGVzdCAtZiAkZGlyL2VjaG8kYWNfZXhlZXh0KSAmJgorKyAgICAgICAg IHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAg ICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIp IDI+L2Rldi9udWxsYCAmJgorKyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIg PSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICAgICAgRUNITz0iJGRpci9lY2hvIgor ICAgICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVf aWZzIgorKworKyAgICBpZiB0ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KKysgICAgICAjIFdl IGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysg ICAgICBpZiB0ZXN0ICJYYHsgcHJpbnQgLXIgJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcg JiYKKysgICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0 X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCisrICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICAgICAgICAjIFRoaXMg c2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNrLgorKyAgICAg ICAgRUNITz0ncHJpbnQgLXInCisrICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVz dCAtZiAvYmluL2tzaCRhY19leGVleHQ7IH0gJiYKKysJICAgdGVzdCAiWCRDT05GSUdfU0hFTEwi ICE9IFgvYmluL2tzaDsgdGhlbgorKyAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5p bmcgY29uZmlndXJlIGFnYWluIHdpdGggaXQuCisrICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hF TEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKysgICAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05G SUdfU0hFTEwKKysgICAgICAgIENPTkZJR19TSEVMTD0vYmluL2tzaAorKyAgICAgICAgZXhwb3J0 IENPTkZJR19TSEVMTAorKyAgICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICIkMCIgLS1uby1yZWV4 ZWMgJHsxKyIkQCJ9CisrICAgICAgZWxzZQorKyAgICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgor KyAgICAgICAgRUNITz0ncHJpbnRmICVzXG4nCisrICAgICAgICBpZiB0ZXN0ICJYYHsgJEVDSE8g J1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysJICAgZWNob190ZXN0aW5nX3N0cmlu Zz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgorKwkgICB0 ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4K KysJICAjIENvb2wsIHByaW50ZiB3b3JrcworKwkgIDoKKysgICAgICAgIGVsaWYgZWNob190ZXN0 aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8g J1x0JykgMj4vZGV2L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICdYXHQnICYmCisrCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05G SUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2 L251bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9f dGVzdF9zdHJpbmciOyB0aGVuCisrCSAgQ09ORklHX1NIRUxMPSRPUklHSU5BTF9DT05GSUdfU0hF TEwKKysJICBleHBvcnQgQ09ORklHX1NIRUxMCisrCSAgU0hFTEw9IiRDT05GSUdfU0hFTEwiCisr CSAgZXhwb3J0IFNIRUxMCisrCSAgRUNITz0iJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVj aG8iCisrICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICIk MCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3QgIlgk ZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorKwkgICAgIGVjaG9fdGVzdGluZ19zdHJp bmc9YCgkQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmlu ZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIg PSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgJDAg LS1mYWxsYmFjay1lY2hvIgorKyAgICAgICAgZWxzZQorKwkgICMgbWF5YmUgd2l0aCBhIHNtYWxs ZXIgc3RyaW5nLi4uCisrCSAgcHJldj06CisrCisrCSAgZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAn c2VkIDJxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQgNTBxICIkMCIn OyBkbworKwkgICAgaWYgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21k YCI7IH0gMj4vZGV2L251bGwKKysJICAgIHRoZW4KKysJICAgICAgYnJlYWsKKysJICAgIGZpCisr CSAgICBwcmV2PSIkY21kIgorKwkgIGRvbmUKKysKKysJICBpZiB0ZXN0ICIkcHJldiIgIT0gJ3Nl ZCA1MHEgIiQwIic7IHRoZW4KKysJICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCisr CSAgICBleHBvcnQgZWNob190ZXN0X3N0cmluZworKwkgICAgZXhlYyAke09SSUdJTkFMX0NPTkZJ R19TSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0gIiQwIiAkezErIiRAIn0KKysJICBlbHNl CisrCSAgICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBl Y2hvLgorKwkgICAgRUNITz1lY2hvCisrCSAgZmkKKysgICAgICAgIGZpCisrICAgICAgZmkKKyAg ICAgZmkKKysgIGZpCisrZmkKKysKKysjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3Vp dGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCisrIyB0aGUgTWFrZWZpbGUsIGluc3Rl YWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCisrbHRfRUNI Tz0kRUNITworK2lmIHRlc3QgIlgkbHRfRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgJDAgLS1mYWxs YmFjay1lY2hvIjsgdGhlbgorKyAgIGx0X0VDSE89IiRDT05GSUdfU0hFTEwgXFxcJFwkMCAtLWZh bGxiYWNrLWVjaG8iCisrZmkKKysKKysKKysKKysKKytleGVjIDc8JjAgPC9kZXYvbnVsbCA2PiYx CisrCisrIyBOYW1lIG9mIHRoZSBob3N0LgorKyMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChT VlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCisrIyBzbyB1bmFtZSBn ZXRzIHJ1biB0b28uCisrYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2 L251bGwgfCBzZWQgMXFgCisrCisrIworKyMgSW5pdGlhbGl6YXRpb25zLgorKyMKKythY19kZWZh dWx0X3ByZWZpeD0vdXNyL2xvY2FsCisrYWNfY2xlYW5fZmlsZXM9CisrYWNfY29uZmlnX2xpYm9i al9kaXI9LgorK0xJQk9CSlM9CisrY3Jvc3NfY29tcGlsaW5nPW5vCisrc3ViZGlycz0KKytNRkxB R1M9CisrTUFLRUZMQUdTPQorK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CisrCisrIyBJ ZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCisrUEFDS0FHRV9OQU1FPSdTT0NJJworK1BBQ0tBR0Vf VEFSTkFNRT0nc29jaScKKytQQUNLQUdFX1ZFUlNJT049JzMuMC4wJworK1BBQ0tBR0VfU1RSSU5H PSdTT0NJIDMuMC4wJworK1BBQ0tBR0VfQlVHUkVQT1JUPSdtc29iY3pha0B1c2Vycy5zb3VyY2Vm b3JnZS5uZXQnCisrCisrYWNfdW5pcXVlX2ZpbGU9InNvY2kvY29yZS9lcnJvci5jcHAiCisrIyBG YWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBtb3N0IHRlc3RzLgorK2FjX2luY2x1ZGVzX2Rl ZmF1bHQ9IlwKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAor KyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1lTX1NUQVRf SAorKyMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysjZW5kaWYKKysjaWZkZWYgU1REQ19IRUFERVJT CisrIyBpbmNsdWRlIDxzdGRsaWIuaD4KKysjIGluY2x1ZGUgPHN0ZGRlZi5oPgorKyNlbHNlCisr IyBpZmRlZiBIQVZFX1NURExJQl9ICisrIyAgaW5jbHVkZSA8c3RkbGliLmg+CisrIyBlbmRpZgor KyNlbmRpZgorKyNpZmRlZiBIQVZFX1NUUklOR19ICisrIyBpZiAhZGVmaW5lZCBTVERDX0hFQURF UlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICisrIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CisrIyBl bmRpZgorKyMgaW5jbHVkZSA8c3RyaW5nLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1RSSU5H U19ICisrIyBpbmNsdWRlIDxzdHJpbmdzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfSU5UVFlQ RVNfSAorKyMgaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjZW5kaWYKKysjaWZkZWYgSEFWRV9TVERJ TlRfSAorKyMgaW5jbHVkZSA8c3RkaW50Lmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfVU5JU1RE X0gKKysjIGluY2x1ZGUgPHVuaXN0ZC5oPgorKyNlbmRpZiIKKysKKythY19zdWJzdF92YXJzPSdM VExJQk9CSlMKKytMSUJPQkpTCisrUlVOX1RFU1RTX0ZBTFNFCisrUlVOX1RFU1RTX1RSVUUKKytz ZWRfb2sKKytkaWZmX29rCisrSFRNTF9ET0NfRkFMU0UKKytIVE1MX0RPQ19UUlVFCisrUEVSTAor K2dzX29rCisrZHZpcHNfb2sKKytsYXRleF9vaworK2RveHlnZW5fb2sKKytJTkZPX0RPQ19GQUxT RQorK0lORk9fRE9DX1RSVUUKKytQT1NUR1JFU1FMX0RJUlMKKytIQVZFX1BPU1RHUkVTUUxfRkFM U0UKKytIQVZFX1BPU1RHUkVTUUxfVFJVRQorK1BPU1RHUkVTUUxfTERGTEFHUworK1BPU1RHUkVT UUxfQ0ZMQUdTCisrUE9TVEdSRVNRTF9WRVJTSU9OCisrUEdfQ09ORklHCisrT1JBQ0xFX0RJUlMK KytIQVZFX09SQUNMRV9GQUxTRQorK0hBVkVfT1JBQ0xFX1RSVUUKKytPUkFDTEVfT0NJX0xERkxB R1MKKytPUkFDTEVfT0NJX0NGTEFHUworK09SQUNMRV9PQ0lfVkVSU0lPTgorK01ZU1FMX0RJUlMK KytIQVZFX01ZU1FMX0ZBTFNFCisrSEFWRV9NWVNRTF9UUlVFCisrTVlTUUxfTERGTEFHUworK01Z U1FMX0NGTEFHUworK01ZU1FMX1ZFUlNJT04KKytNWVNRTF9DT05GSUcKKytCT09TVF9WRVJTSU9O CisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIKKytCT09TVF9SRUdFWF9MSUIKKytCT09T VF9EQVRFX1RJTUVfTElCCisrQk9PU1RfU0lHTkFMU19MSUIKKytCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQgorK0JPT1NUX0lPU1RSRUFNU19MSUIKKytC T09TVF9USFJFQURfTElCCisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQgorK0JPT1NUX0ZJTEVT WVNURU1fTElCCisrQk9PU1RfTElCUworK0JPT1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEX1RSVUUKKytTT0NJX0hFQURFUlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklF RF9GQUxTRQorK1NPQ0lfSEVBREVSU19CVVJJRURfVFJVRQorK0NQUAorK09UT09MNjQKKytPVE9P TAorK0xJUE8KKytOTUVESVQKKytEU1lNVVRJTAorK2x0X0VDSE8KKytSQU5MSUIKKytBUgorK09C SkRVTVAKKytMTl9TCisrTk0KKythY19jdF9EVU1QQklOCisrRFVNUEJJTgorK0xECisrRkdSRVAK KytFR1JFUAorK0dSRVAKKytTRUQKKythbV9fZmFzdGRlcENDX0ZBTFNFCisrYW1fX2Zhc3RkZXBD Q19UUlVFCisrQ0NERVBNT0RFCisrYWNfY3RfQ0MKKytDRkxBR1MKKytDQworK0xJQlRPT0wKKytD WFhDUFAKKythbV9fZmFzdGRlcENYWF9GQUxTRQorK2FtX19mYXN0ZGVwQ1hYX1RSVUUKKytDWFhE RVBNT0RFCisrQU1ERVBCQUNLU0xBU0gKKytBTURFUF9GQUxTRQorK0FNREVQX1RSVUUKKythbV9f cXVvdGUKKythbV9faW5jbHVkZQorK0RFUERJUgorK09CSkVYVAorK0VYRUVYVAorK2FjX2N0X0NY WAorK0NQUEZMQUdTCisrTERGTEFHUworK0NYWEZMQUdTCisrQ1hYCisraG9zdF9vcworK2hvc3Rf dmVuZG9yCisraG9zdF9jcHUKKytob3N0CisrYnVpbGRfb3MKKytidWlsZF92ZW5kb3IKKytidWls ZF9jcHUKKytidWlsZAorK1VQTE9BRF9DT01NQU5ECisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04K KytSUE1fUkVMRUFTRQorK0hBVkVfQ1BQVU5JVF9GQUxTRQorK0hBVkVfQ1BQVU5JVF9UUlVFCisr Q1BQVU5JVF9WRVJTSU9OCisrQ1BQVU5JVF9MSUJTCisrQ1BQVU5JVF9DRkxBR1MKKytDUFBVTklU X0NPTkZJRworK2FtX191bnRhcgorK2FtX190YXIKKytBTVRBUgorK2FtX19sZWFkaW5nX2RvdAor K1NFVF9NQUtFCisrQVdLCisrbWtkaXJfcAorK01LRElSX1AKKytJTlNUQUxMX1NUUklQX1BST0dS QU0KKytTVFJJUAorK2luc3RhbGxfc2gKKytNQUtFSU5GTworK0FVVE9IRUFERVIKKytBVVRPTUFL RQorK0FVVE9DT05GCisrQUNMT0NBTAorK1ZFUlNJT04KKytQQUNLQUdFCisrQ1lHUEFUSF9XCisr YW1fX2lzcmMKKytJTlNUQUxMX0RBVEEKKytJTlNUQUxMX1NDUklQVAorK0lOU1RBTExfUFJPR1JB TQorK3RhcmdldF9hbGlhcworK2hvc3RfYWxpYXMKKytidWlsZF9hbGlhcworK0xJQlMKKytFQ0hP X1QKKytFQ0hPX04KKytFQ0hPX0MKKytERUZTCisrbWFuZGlyCisrbG9jYWxlZGlyCisrbGliZGly CisrcHNkaXIKKytwZGZkaXIKKytkdmlkaXIKKytodG1sZGlyCisraW5mb2RpcgorK2RvY2Rpcgor K29sZGluY2x1ZGVkaXIKKytpbmNsdWRlZGlyCisrbG9jYWxzdGF0ZWRpcgorK3NoYXJlZHN0YXRl ZGlyCisrc3lzY29uZmRpcgorK2RhdGFkaXIKKytkYXRhcm9vdGRpcgorK2xpYmV4ZWNkaXIKKytz YmluZGlyCisrYmluZGlyCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZQorK3ByZWZpeAorK2V4ZWNf cHJlZml4CisrUEFDS0FHRV9CVUdSRVBPUlQKKytQQUNLQUdFX1NUUklORworK1BBQ0tBR0VfVkVS U0lPTgorK1BBQ0tBR0VfVEFSTkFNRQorK1BBQ0tBR0VfTkFNRQorK1BBVEhfU0VQQVJBVE9SCisr U0hFTEwnCisrYWNfc3Vic3RfZmlsZXM9JycKKythY191c2VyX29wdHM9JworK2VuYWJsZV9vcHRp b25fY2hlY2tpbmcKKyt3aXRoX2NwcHVuaXRfcHJlZml4Cisrd2l0aF9jcHB1bml0X2V4ZWNfcHJl Zml4CisrZW5hYmxlX3NoYXJlZAorK2VuYWJsZV9zdGF0aWMKKytlbmFibGVfZGVwZW5kZW5jeV90 cmFja2luZworK3dpdGhfcGljCisrZW5hYmxlX2Zhc3RfaW5zdGFsbAorK3dpdGhfZ251X2xkCisr ZW5hYmxlX2xpYnRvb2xfbG9jaworK2VuYWJsZV9leGNlcHRpb25zCisrZW5hYmxlX2luZm9fZG9j CisrZW5hYmxlX2h0bWxfZG9jCisrd2l0aF9kb2NkaXIKKytlbmFibGVfYnVycmllZF9oZWFkZXJz CisrZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycworK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycworK3dpdGhfYm9vc3QKKytlbmFibGVfYmFja2VuZF9teXNxbAorK3dpdGhfbXlz cWwKKytlbmFibGVfYmFja2VuZF9vcmFjbGUKKyt3aXRoX29yYWNsZQorK3dpdGhfb3JhY2xlX2lu Y2x1ZGUKKyt3aXRoX29yYWNsZV9saWIKKytlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsCisrd2l0 aF9wb3N0Z3Jlc3FsCisrJworKyAgICAgIGFjX3ByZWNpb3VzX3ZhcnM9J2J1aWxkX2FsaWFzCisr aG9zdF9hbGlhcworK3RhcmdldF9hbGlhcworK0NYWAorK0NYWEZMQUdTCisrTERGTEFHUworK0xJ QlMKKytDUFBGTEFHUworK0NDQworK0NYWENQUAorK0NDCisrQ0ZMQUdTCisrQ1BQJworKworKwor KyMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KKythY19pbml0X2hl bHA9CisrYWNfaW5pdF92ZXJzaW9uPWZhbHNlCisrYWNfdW5yZWNvZ25pemVkX29wdHM9CisrYWNf dW5yZWNvZ25pemVkX3NlcD0KKysjIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBh cyB0aGUgb3B0aW9ucywgd2l0aAorKyMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KKytj YWNoZV9maWxlPS9kZXYvbnVsbAorK2V4ZWNfcHJlZml4PU5PTkUKKytub19jcmVhdGU9Cisrbm9f cmVjdXJzaW9uPQorK3ByZWZpeD1OT05FCisrcHJvZ3JhbV9wcmVmaXg9Tk9ORQorK3Byb2dyYW1f c3VmZml4PU5PTkUKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAorK3NpbGVudD0KKytz aXRlPQorK3NyY2Rpcj0KKyt2ZXJib3NlPQorK3hfaW5jbHVkZXM9Tk9ORQorK3hfbGlicmFyaWVz PU5PTkUKKysKKysjIEluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgb3B0aW9ucy4KKysjIFRoZXNlIGFy ZSBsZWZ0IHVuZXhwYW5kZWQgc28gdXNlcnMgY2FuICJtYWtlIGluc3RhbGwgZXhlY19wcmVmaXg9 L2ZvbyIKKysjIGFuZCBhbGwgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBi YXNlZCBvbiBleGVjX3ByZWZpeAorKyMgYnkgZGVmYXVsdCB3aWxsIGFjdHVhbGx5IGNoYW5nZS4K KysjIFVzZSBicmFjZXMgaW5zdGVhZCBvZiBwYXJlbnMgYmVjYXVzZSBzaCwgcGVybCwgZXRjLiBh bHNvIGFjY2VwdCB0aGVtLgorKyMgKFRoZSBsaXN0IGZvbGxvd3MgdGhlIHNhbWUgb3JkZXIgYXMg dGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLikKKytiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicK KytzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJworK2xpYmV4ZWNkaXI9JyR7ZXhlY19wcmVm aXh9L2xpYmV4ZWMnCisrZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKKytkYXRhZGlyPSck e2RhdGFyb290ZGlyfScKKytzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJworK3NoYXJlZHN0YXRl ZGlyPScke3ByZWZpeH0vY29tJworK2xvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCisraW5j bHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCisrb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRl JworK2RvY2Rpcj0nJHtkYXRhcm9vdGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScKKytpbmZv ZGlyPScke2RhdGFyb290ZGlyfS9pbmZvJworK2h0bWxkaXI9JyR7ZG9jZGlyfScKKytkdmlkaXI9 JyR7ZG9jZGlyfScKKytwZGZkaXI9JyR7ZG9jZGlyfScKKytwc2Rpcj0nJHtkb2NkaXJ9JworK2xp YmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJworK2xvY2FsZWRpcj0nJHtkYXRhcm9vdGRpcn0vbG9j YWxlJworK21hbmRpcj0nJHtkYXRhcm9vdGRpcn0vbWFuJworKworK2FjX3ByZXY9CisrYWNfZGFz aGRhc2g9CisrZm9yIGFjX29wdGlvbgorK2RvCisrICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24g bmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KKysgIGlmIHRlc3QgLW4gIiRhY19wcmV2Ijsg dGhlbgorKyAgICBldmFsICRhY19wcmV2PVwkYWNfb3B0aW9uCisrICAgIGFjX3ByZXY9CisrICAg IGNvbnRpbnVlCisrICBmaQorKworKyAgY2FzZSAkYWNfb3B0aW9uIGluCisrICAqPSopCWFjX29w dGFyZz1gZXhwciAiWCRhY19vcHRpb24iIDogJ1tePV0qPVwoLipcKSdgIDs7CisrICAqKQlhY19v cHRhcmc9eWVzIDs7CisrICBlc2FjCisrCisrICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50IEN5Z251 cyBjb25maWd1cmUgb3B0aW9ucywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgorKworKyAgY2Fz ZSAkYWNfZGFzaGRhc2gkYWNfb3B0aW9uIGluCisrICAtLSkKKysgICAgYWNfZGFzaGRhc2g9eWVz IDs7CisrCisrICAtYmluZGlyIHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5kIHwgLS1iaW4g fCAtLWJpKQorKyAgICBhY19wcmV2PWJpbmRpciA7OworKyAgLWJpbmRpcj0qIHwgLS1iaW5kaXI9 KiB8IC0tYmluZGk9KiB8IC0tYmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKKysgICAgYmluZGly PSRhY19vcHRhcmcgOzsKKysKKysgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8 IC0tYnUpCisrICAgIGFjX3ByZXY9YnVpbGRfYWxpYXMgOzsKKysgIC1idWlsZD0qIHwgLS1idWls ZD0qIHwgLS1idWlsPSogfCAtLWJ1aT0qIHwgLS1idT0qKQorKyAgICBidWlsZF9hbGlhcz0kYWNf b3B0YXJnIDs7CisrCisrICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmls IHwgLS1jYWNoZS1maSBcCisrICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNoZSB8IC0t Y2FjaCB8IC0tY2FjIHwgLS1jYSB8IC0tYykKKysgICAgYWNfcHJldj1jYWNoZV9maWxlIDs7Cisr ICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNo ZS1maT0qIFwKKysgIHwgLS1jYWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0qIHwgLS1j YWNoPSogfCAtLWNhYz0qIHwgLS1jYT0qIHwgLS1jPSopCisrICAgIGNhY2hlX2ZpbGU9JGFjX29w dGFyZyA7OworKworKyAgLS1jb25maWctY2FjaGUgfCAtQykKKysgICAgY2FjaGVfZmlsZT1jb25m aWcuY2FjaGUgOzsKKysKKysgIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRh dGFkKQorKyAgICBhY19wcmV2PWRhdGFkaXIgOzsKKysgIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9 KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSopCisrICAgIGRhdGFkaXI9JGFjX29wdGFyZyA7Owor KworKyAgLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaSB8IC0tZGF0 YXJvb3RkIHwgLS1kYXRhcm9vdCBcCisrICB8IC0tZGF0YXJvbyB8IC0tZGF0YXJvIHwgLS1kYXRh cikKKysgICAgYWNfcHJldj1kYXRhcm9vdGRpciA7OworKyAgLWRhdGFyb290ZGlyPSogfCAtLWRh dGFyb290ZGlyPSogfCAtLWRhdGFyb290ZGk9KiB8IC0tZGF0YXJvb3RkPSogXAorKyAgfCAtLWRh dGFyb290PSogfCAtLWRhdGFyb289KiB8IC0tZGF0YXJvPSogfCAtLWRhdGFyPSopCisrICAgIGRh dGFyb290ZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKikK KysgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwp J2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxl IG5hbWVzLgorKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVt XSIgPi9kZXYvbnVsbCAmJgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFs aWQgZmVhdHVyZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vyb3B0 PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNhc2Ug JGFjX3VzZXJfb3B0cyBpbgorKyAgICAgICoiCisrImVuYWJsZV8kYWNfdXNlcm9wdCIKKysiKikg OzsKKysgICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRz JGFjX3VucmVjb2duaXplZF9zZXAtLWRpc2FibGUtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3Vu cmVjb2duaXplZF9zZXA9JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCBlbmFibGVfJGFjX3Vz ZXJvcHQ9bm8gOzsKKysKKysgIC1kb2NkaXIgfCAtLWRvY2RpciB8IC0tZG9jZGkgfCAtLWRvYyB8 IC0tZG8pCisrICAgIGFjX3ByZXY9ZG9jZGlyIDs7CisrICAtZG9jZGlyPSogfCAtLWRvY2Rpcj0q IHwgLS1kb2NkaT0qIHwgLS1kb2M9KiB8IC0tZG89KikKKysgICAgZG9jZGlyPSRhY19vcHRhcmcg OzsKKysKKysgIC1kdmlkaXIgfCAtLWR2aWRpciB8IC0tZHZpZGkgfCAtLWR2aWQgfCAtLWR2aSB8 IC0tZHYpCisrICAgIGFjX3ByZXY9ZHZpZGlyIDs7CisrICAtZHZpZGlyPSogfCAtLWR2aWRpcj0q IHwgLS1kdmlkaT0qIHwgLS1kdmlkPSogfCAtLWR2aT0qIHwgLS1kdj0qKQorKyAgICBkdmlkaXI9 JGFjX29wdGFyZyA7OworKworKyAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKKysgICAgYWNfdXNl cm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAorKyAgICAj IFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisr ICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9u dWxsICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJl IG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysg ICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hv ICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9v cHRzIGluCisrICAgICAgKiIKKysiZW5hYmxlXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAg ICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNv Z25pemVkX3NlcC0tZW5hYmxlLSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJlY29nbml6ZWRf c2VwPScsICc7OworKyAgICBlc2FjCisrICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0PVwkYWNf b3B0YXJnIDs7CisrCisrICAtZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXBy ZWZpeCB8IC0tZXhlYy1wcmVmaSBcCisrICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXByZSB8IC0t ZXhlYy1wciB8IC0tZXhlYy1wIHwgLS1leGVjLSBcCisrICB8IC0tZXhlYyB8IC0tZXhlIHwgLS1l eCkKKysgICAgYWNfcHJldj1leGVjX3ByZWZpeCA7OworKyAgLWV4ZWMtcHJlZml4PSogfCAtLWV4 ZWNfcHJlZml4PSogfCAtLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWMtcHJlZmk9KiBcCisrICB8IC0t ZXhlYy1wcmVmPSogfCAtLWV4ZWMtcHJlPSogfCAtLWV4ZWMtcHI9KiB8IC0tZXhlYy1wPSogfCAt LWV4ZWMtPSogXAorKyAgfCAtLWV4ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCisrICAgIGV4ZWNf cHJlZml4PSRhY19vcHRhcmcgOzsKKysKKysgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCisr ICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgtZ2FzLgorKyAgICB3aXRoX2dhcz15ZXMgOzsKKysK KysgIC1oZWxwIHwgLS1oZWxwIHwgLS1oZWwgfCAtLWhlIHwgLWgpCisrICAgIGFjX2luaXRfaGVs cD1sb25nIDs7CisrICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8 IC1ociopCisrICAgIGFjX2luaXRfaGVscD1yZWN1cnNpdmUgOzsKKysgIC1oZWxwPXMqIHwgLS1o ZWxwPXMqIHwgLS1oZWw9cyogfCAtLWhlPXMqIHwgLWhzKikKKysgICAgYWNfaW5pdF9oZWxwPXNo b3J0IDs7CisrCisrICAtaG9zdCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKKysgICAgYWNfcHJl dj1ob3N0X2FsaWFzIDs7CisrICAtaG9zdD0qIHwgLS1ob3N0PSogfCAtLWhvcz0qIHwgLS1obz0q KQorKyAgICBob3N0X2FsaWFzPSRhY19vcHRhcmcgOzsKKysKKysgIC1odG1sZGlyIHwgLS1odG1s ZGlyIHwgLS1odG1sZGkgfCAtLWh0bWxkIHwgLS1odG1sIHwgLS1odG0gfCAtLWh0KQorKyAgICBh Y19wcmV2PWh0bWxkaXIgOzsKKysgIC1odG1sZGlyPSogfCAtLWh0bWxkaXI9KiB8IC0taHRtbGRp PSogfCAtLWh0bWxkPSogfCAtLWh0bWw9KiB8IC0taHRtPSogXAorKyAgfCAtLWh0PSopCisrICAg IGh0bWxkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIg fCAtLWluY2x1ZGVkaSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAorKyAgfCAtLWluY2x1ZCB8 IC0taW5jbHUgfCAtLWluY2wgfCAtLWluYykKKysgICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7Cisr ICAtaW5jbHVkZWRpcj0qIHwgLS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNs dWRlZD0qIHwgLS1pbmNsdWRlPSogXAorKyAgfCAtLWluY2x1ZD0qIHwgLS1pbmNsdT0qIHwgLS1p bmNsPSogfCAtLWluYz0qKQorKyAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1p bmZvZGlyIHwgLS1pbmZvZGlyIHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwgLS1pbmYp CisrICAgIGFjX3ByZXY9aW5mb2RpciA7OworKyAgLWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwg LS1pbmZvZGk9KiB8IC0taW5mb2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKKysgICAgaW5mb2Rp cj0kYWNfb3B0YXJnIDs7CisrCisrICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1s aWJkKQorKyAgICBhY19wcmV2PWxpYmRpciA7OworKyAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8 IC0tbGliZGk9KiB8IC0tbGliZD0qKQorKyAgICBsaWJkaXI9JGFjX29wdGFyZyA7OworKworKyAg LWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAt LWxpYmV4ZWMgXAorKyAgfCAtLWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCisrICAgIGFjX3By ZXY9bGliZXhlY2RpciA7OworKyAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1s aWJleGVjZGk9KiB8IC0tbGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKKysgIHwgLS1saWJleGU9 KiB8IC0tbGliZXg9KiB8IC0tbGliZT0qKQorKyAgICBsaWJleGVjZGlyPSRhY19vcHRhcmcgOzsK KysKKysgIC1sb2NhbGVkaXIgfCAtLWxvY2FsZWRpciB8IC0tbG9jYWxlZGkgfCAtLWxvY2FsZWQg fCAtLWxvY2FsZSkKKysgICAgYWNfcHJldj1sb2NhbGVkaXIgOzsKKysgIC1sb2NhbGVkaXI9KiB8 IC0tbG9jYWxlZGlyPSogfCAtLWxvY2FsZWRpPSogfCAtLWxvY2FsZWQ9KiB8IC0tbG9jYWxlPSop CisrICAgIGxvY2FsZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbG9jYWxzdGF0ZWRpciB8IC0t bG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpIHwgLS1sb2NhbHN0YXRlZCBcCisrICB8IC0t bG9jYWxzdGF0ZSB8IC0tbG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCB8IC0tbG9j YWxzKQorKyAgICBhY19wcmV2PWxvY2Fsc3RhdGVkaXIgOzsKKysgIC1sb2NhbHN0YXRlZGlyPSog fCAtLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3RhdGVkPSog XAorKyAgfCAtLWxvY2Fsc3RhdGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAt LWxvY2Fsc3Q9KiB8IC0tbG9jYWxzPSopCisrICAgIGxvY2Fsc3RhdGVkaXI9JGFjX29wdGFyZyA7 OworKworKyAgLW1hbmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwg LS1tYSB8IC0tbSkKKysgICAgYWNfcHJldj1tYW5kaXIgOzsKKysgIC1tYW5kaXI9KiB8IC0tbWFu ZGlyPSogfCAtLW1hbmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAtLW09KikK KysgICAgbWFuZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1uZnAgfCAtLW5mcCB8IC0tbmYpCisr ICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGhvdXQtZnAuCisrICAgIHdpdGhfZnA9bm8gOzsKKysK KysgIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAt LW5vLWNyZSBcCisrICB8IC0tbm8tY3IgfCAtLW5vLWMgfCAtbikKKysgICAgbm9fY3JlYXRlPXll cyA7OworKworKyAgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNp byB8IC0tbm8tcmVjdXJzaSBcCisrICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8IC0tbm8t cmVjdSB8IC0tbm8tcmVjIHwgLS1uby1yZSB8IC0tbm8tcikKKysgICAgbm9fcmVjdXJzaW9uPXll cyA7OworKworKyAgLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1 ZGVkaSB8IC0tb2xkaW5jbHVkZWQgXAorKyAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8 IC0tb2xkaW5jbHUgfCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCisrICB8IC0tb2xkaW4gfCAtLW9s ZGkgfCAtLW9sZCB8IC0tb2wgfCAtLW8pCisrICAgIGFjX3ByZXY9b2xkaW5jbHVkZWRpciA7Owor KyAgLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9 KiB8IC0tb2xkaW5jbHVkZWQ9KiBcCisrICB8IC0tb2xkaW5jbHVkZT0qIHwgLS1vbGRpbmNsdWQ9 KiB8IC0tb2xkaW5jbHU9KiB8IC0tb2xkaW5jbD0qIHwgLS1vbGRpbmM9KiBcCisrICB8IC0tb2xk aW49KiB8IC0tb2xkaT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQorKyAgICBvbGRpbmNs dWRlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkg fCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCisrICAgIGFjX3ByZXY9cHJlZml4IDs7Cisr ICAtcHJlZml4PSogfCAtLXByZWZpeD0qIHwgLS1wcmVmaT0qIHwgLS1wcmVmPSogfCAtLXByZT0q IHwgLS1wcj0qIHwgLS1wPSopCisrICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJv Z3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpIHwgLS1wcm9n cmFtLXByZWYgXAorKyAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9ncmFt LXApCisrICAgIGFjX3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsKKysgIC1wcm9ncmFtLXByZWZpeD0q IHwgLS1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAorKyAgfCAtLXByb2dy YW0tcHJlZj0qIHwgLS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0t cD0qKQorKyAgICBwcm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJvZ3JhbS1z dWZmaXggfCAtLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1 ZmYgXAorKyAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCisr ICAgIGFjX3ByZXY9cHJvZ3JhbV9zdWZmaXggOzsKKysgIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1w cm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpPSogXAorKyAgfCAtLXByb2dyYW0tc3Vm Zj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQor KyAgICBwcm9ncmFtX3N1ZmZpeD0kYWNfb3B0YXJnIDs7CisrCisrICAtcHJvZ3JhbS10cmFuc2Zv cm0tbmFtZSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSBcCisrICB8IC0tcHJvZ3JhbS10cmFu c2Zvcm0tbmFtIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYSBcCisrICB8IC0tcHJvZ3JhbS10cmFu c2Zvcm0tbiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm9y bSB8IC0tcHJvZ3JhbS10cmFuc2ZvciBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2ZvIHwgLS1wcm9n cmFtLXRyYW5zZiBcCisrICB8IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFuIFwKKysg IHwgLS1wcm9nci10cmEgfCAtLXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKKysgICAgYWNfcHJl dj1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lIDs7CisrICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0q IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3Jt LW5hbT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYT0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLT0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9yPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmbz0q IHwgLS1wcm9ncmFtLXRyYW5zZj0qIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zPSogfCAtLXByb2dy YW0tdHJhbj0qIFwKKysgIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9n cmFtLXQ9KikKKysgICAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7CisrCisr ICAtcGRmZGlyIHwgLS1wZGZkaXIgfCAtLXBkZmRpIHwgLS1wZGZkIHwgLS1wZGYgfCAtLXBkKQor KyAgICBhY19wcmV2PXBkZmRpciA7OworKyAgLXBkZmRpcj0qIHwgLS1wZGZkaXI9KiB8IC0tcGRm ZGk9KiB8IC0tcGRmZD0qIHwgLS1wZGY9KiB8IC0tcGQ9KikKKysgICAgcGRmZGlyPSRhY19vcHRh cmcgOzsKKysKKysgIC1wc2RpciB8IC0tcHNkaXIgfCAtLXBzZGkgfCAtLXBzZCB8IC0tcHMpCisr ICAgIGFjX3ByZXY9cHNkaXIgOzsKKysgIC1wc2Rpcj0qIHwgLS1wc2Rpcj0qIHwgLS1wc2RpPSog fCAtLXBzZD0qIHwgLS1wcz0qKQorKyAgICBwc2Rpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtcSB8 IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorKyAgfCAt c2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCisrICAgIHNpbGVu dD15ZXMgOzsKKysKKysgIC1zYmluZGlyIHwgLS1zYmluZGlyIHwgLS1zYmluZGkgfCAtLXNiaW5k IHwgLS1zYmluIHwgLS1zYmkgfCAtLXNiKQorKyAgICBhY19wcmV2PXNiaW5kaXIgOzsKKysgIC1z YmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49 KiBcCisrICB8IC0tc2JpPSogfCAtLXNiPSopCisrICAgIHNiaW5kaXI9JGFjX29wdGFyZyA7Owor KworKyAgLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVk aSBcCisrICB8IC0tc2hhcmVkc3RhdGVkIHwgLS1zaGFyZWRzdGF0ZSB8IC0tc2hhcmVkc3RhdCB8 IC0tc2hhcmVkc3RhIFwKKysgIHwgLS1zaGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hhcmVkIHwg LS1zaGFyZSB8IC0tc2hhciBcCisrICB8IC0tc2hhIHwgLS1zaCkKKysgICAgYWNfcHJldj1zaGFy ZWRzdGF0ZWRpciA7OworKyAgLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGlyPSog fCAtLXNoYXJlZHN0YXRlZGk9KiBcCisrICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0 YXRlPSogfCAtLXNoYXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAorKyAgfCAtLXNoYXJlZHN0 PSogfCAtLXNoYXJlZHM9KiB8IC0tc2hhcmVkPSogfCAtLXNoYXJlPSogfCAtLXNoYXI9KiBcCisr ICB8IC0tc2hhPSogfCAtLXNoPSopCisrICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRhcmcgOzsK KysKKysgIC1zaXRlIHwgLS1zaXRlIHwgLS1zaXQpCisrICAgIGFjX3ByZXY9c2l0ZSA7OworKyAg LXNpdGU9KiB8IC0tc2l0ZT0qIHwgLS1zaXQ9KikKKysgICAgc2l0ZT0kYWNfb3B0YXJnIDs7Cisr CisrICAtc3JjZGlyIHwgLS1zcmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNkIHwgLS1zcmMgfCAtLXNy KQorKyAgICBhY19wcmV2PXNyY2RpciA7OworKyAgLXNyY2Rpcj0qIHwgLS1zcmNkaXI9KiB8IC0t c3JjZGk9KiB8IC0tc3JjZD0qIHwgLS1zcmM9KiB8IC0tc3I9KikKKysgICAgc3JjZGlyPSRhY19v cHRhcmcgOzsKKysKKysgIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkg fCAtLXN5c2NvbmZkIHwgLS1zeXNjb25mIFwKKysgIHwgLS1zeXNjb24gfCAtLXN5c2NvIHwgLS1z eXNjIHwgLS1zeXMgfCAtLXN5KQorKyAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKKysgIC1zeXNj b25mZGlyPSogfCAtLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSog fCAtLXN5c2NvbmY9KiBcCisrICB8IC0tc3lzY29uPSogfCAtLXN5c2NvPSogfCAtLXN5c2M9KiB8 IC0tc3lzPSogfCAtLXN5PSopCisrICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OworKworKyAg LXRhcmdldCB8IC0tdGFyZ2V0IHwgLS10YXJnZSB8IC0tdGFyZyB8IC0tdGFyIHwgLS10YSB8IC0t dCkKKysgICAgYWNfcHJldj10YXJnZXRfYWxpYXMgOzsKKysgIC10YXJnZXQ9KiB8IC0tdGFyZ2V0 PSogfCAtLXRhcmdlPSogfCAtLXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9KikKKysg ICAgdGFyZ2V0X2FsaWFzPSRhY19vcHRhcmcgOzsKKysKKysgIC12IHwgLXZlcmJvc2UgfCAtLXZl cmJvc2UgfCAtLXZlcmJvcyB8IC0tdmVyYm8gfCAtLXZlcmIpCisrICAgIHZlcmJvc2U9eWVzIDs7 CisrCisrICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVy cyB8IC1WKQorKyAgICBhY19pbml0X3ZlcnNpb249OiA7OworKworKyAgLXdpdGgtKiB8IC0td2l0 aC0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aC1cKFte PV0qXCknYAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFy aWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3Jf YWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjog aW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKysgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3Vz ZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAg Y2FzZSAkYWNfdXNlcl9vcHRzIGluCisrICAgICAgKiIKKysid2l0aF8kYWNfdXNlcm9wdCIKKysi KikgOzsKKysgICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9v cHRzJGFjX3VucmVjb2duaXplZF9zZXAtLXdpdGgtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3Vu cmVjb2duaXplZF9zZXA9JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCB3aXRoXyRhY191c2Vy b3B0PVwkYWNfb3B0YXJnIDs7CisrCisrICAtd2l0aG91dC0qIHwgLS13aXRob3V0LSopCisrICAg IGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCisr ICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1l cy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4v ZGV2L251bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBh Y2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQorKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFz X2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191 c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJ3aXRoXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAg ICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5y ZWNvZ25pemVkX3NlcC0td2l0aG91dC0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25p emVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAgICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9bm8g OzsKKysKKysgIC0teCkKKysgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgorKyAgICB3aXRo X3g9eWVzIDs7CisrCisrICAteC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlcyB8IC0teC1pbmNsdWRl IHwgLS14LWluY2x1ZCB8IC0teC1pbmNsdSBcCisrICB8IC0teC1pbmNsIHwgLS14LWluYyB8IC0t eC1pbiB8IC0teC1pKQorKyAgICBhY19wcmV2PXhfaW5jbHVkZXMgOzsKKysgIC14LWluY2x1ZGVz PSogfCAtLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSogfCAtLXgt aW5jbHU9KiBcCisrICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1p PSopCisrICAgIHhfaW5jbHVkZXM9JGFjX29wdGFyZyA7OworKworKyAgLXgtbGlicmFyaWVzIHwg LS14LWxpYnJhcmllcyB8IC0teC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKKysgIHwgLS14LWxp YnJhciB8IC0teC1saWJyYSB8IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1sKQor KyAgICBhY19wcmV2PXhfbGlicmFyaWVzIDs7CisrICAteC1saWJyYXJpZXM9KiB8IC0teC1saWJy YXJpZXM9KiB8IC0teC1saWJyYXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCisrICB8IC0teC1saWJy YXI9KiB8IC0teC1saWJyYT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwg LS14LWw9KikKKysgICAgeF9saWJyYXJpZXM9JGFjX29wdGFyZyA7OworKworKyAgLSopIHsgJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRpb24KKytU cnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrICAgIDs7CisrCisrICAqPSopCisrICAgIGFjX2VudnZhcj1gZXhw ciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhh dCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX2Vu dnZhciIgOiAiLipbXl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB2YXJpYWJsZSBuYW1lOiAkYWNfZW52dmFyIiA+ JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgZXZhbCAkYWNfZW52dmFyPVwk YWNfb3B0YXJnCisrICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7CisrCisrICAqKQorKyAgICAjIEZJ WE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCisrICAgICRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10YXJnZXQi ID4mMgorKyAgICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4v ZGV2L251bGwgJiYKKysgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnZhbGlkIGhv c3QgdHlwZTogJGFjX29wdGlvbiIgPiYyCisrICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9u fSAke2hvc3RfYWxpYXM9JGFjX29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KKysg ICAgOzsKKysKKysgIGVzYWMKKyBkb25lCisgCistaWYgWyAkdGNsX2ZvdW5kIC1lcSAwIF0KKy10 aGVuCistICAgICAgICBlY2hvICdOT1QgZm91bmQuJworLSAgICAgICAgZWNobyAnSXMgdGhlIFRj bCBpbnN0YWxsZWQ/JworLSAgICAgICAgZXhpdAorK2lmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhl bgorKyAgYWNfb3B0aW9uPS0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAorKyAgeyAk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIiA+ JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorKworK2lmIHRlc3QgLW4gIiRh Y191bnJlY29nbml6ZWRfb3B0cyI7IHRoZW4KKysgIGNhc2UgJGVuYWJsZV9vcHRpb25fY2hlY2tp bmcgaW4KKysgICAgbm8pIDs7CisrICAgIGZhdGFsKSB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9y OiB1bnJlY29nbml6ZWQgb3B0aW9uczogJGFjX3VucmVjb2duaXplZF9vcHRzIiA+JjIKKysgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKKysgICAgKikgICAgICRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4m MiA7OworKyAgZXNhYworK2ZpCisrCisrIyBDaGVjayBhbGwgZGlyZWN0b3J5IGFyZ3VtZW50cyBm b3IgY29uc2lzdGVuY3kuCisrZm9yIGFjX3ZhciBpbglleGVjX3ByZWZpeCBwcmVmaXggYmluZGly IHNiaW5kaXIgbGliZXhlY2RpciBkYXRhcm9vdGRpciBcCisrCQlkYXRhZGlyIHN5c2NvbmZkaXIg c2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBpbmNsdWRlZGlyIFwKKysJCW9sZGluY2x1ZGVk aXIgZG9jZGlyIGluZm9kaXIgaHRtbGRpciBkdmlkaXIgcGRmZGlyIHBzZGlyIFwKKysJCWxpYmRp ciBsb2NhbGVkaXIgbWFuZGlyCisrZG8KKysgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgIyBS ZW1vdmUgdHJhaWxpbmcgc2xhc2hlcy4KKysgIGNhc2UgJGFjX3ZhbCBpbgorKyAgICAqLyApCisr ICAgICAgYWNfdmFsPWBleHByICJYJGFjX3ZhbCIgOiAnWFwoLipbXi9dXCknIFx8ICJYJGFjX3Zh bCIgOiAnWFwoLipcKSdgCisrICAgICAgZXZhbCAkYWNfdmFyPVwkYWNfdmFsOzsKKysgIGVzYWMK KysgICMgQmUgc3VyZSB0byBoYXZlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lcy4KKysgIGNhc2Ug JGFjX3ZhbCBpbgorKyAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSAgY29udGludWU7OworKyAgICBO T05FIHwgJycgKSBjYXNlICRhY192YXIgaW4gKnByZWZpeCApIGNvbnRpbnVlOzsgZXNhYzs7Cisr ICBlc2FjCisrICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0 ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKKysgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KKytkb25lCisrCisrIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUgd2hv IGRlcGVuZCBvbiB0aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JworKyMgdXNlZCB0byBo b2xkIHRoZSBhcmd1bWVudCBvZiAtLWhvc3QgZXRjLgorKyMgRklYTUU6IFRvIHJlbW92ZSBzb21l IGRheS4KKytidWlsZD0kYnVpbGRfYWxpYXMKKytob3N0PSRob3N0X2FsaWFzCisrdGFyZ2V0PSR0 YXJnZXRfYWxpYXMKKysKKysjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCisraWYgdGVzdCAi eCRob3N0X2FsaWFzIiAhPSB4OyB0aGVuCisrICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7 IHRoZW4KKysgICAgY3Jvc3NfY29tcGlsaW5nPW1heWJlCisrICAgICRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IElmIHlvdSB3YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRvbid0IHVz ZSAtLWhvc3QuCisrICAgIElmIGEgY3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9z cyBjb21waWxlIG1vZGUgd2lsbCBiZSB1c2VkLiIgPiYyCisrICBlbGlmIHRlc3QgIngkYnVpbGRf YWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVuCisrICAgIGNyb3NzX2NvbXBpbGluZz15ZXMK KysgIGZpCisrZmkKKysKKythY190b29sX3ByZWZpeD0KKyt0ZXN0IC1uICIkaG9zdF9hbGlhcyIg JiYgYWNfdG9vbF9wcmVmaXg9JGhvc3RfYWxpYXMtCisrCisrdGVzdCAiJHNpbGVudCIgPSB5ZXMg JiYgZXhlYyA2Pi9kZXYvbnVsbAorKworKworK2FjX3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNf cHdkIiAmJgorK2FjX2xzX2RpPWBscyAtZGkgLmAgJiYKKythY19wd2RfbHNfZGk9YGNkICIkYWNf cHdkIiAmJiBscyAtZGkgLmAgfHwKKysgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHdvcmtp bmcgZGlyZWN0b3J5IGNhbm5vdCBiZSBkZXRlcm1pbmVkIiA+JjIKKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKyt0ZXN0ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKKysg IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHB3ZCBkb2VzIG5vdCByZXBvcnQgbmFtZSBvZiB3 b3JraW5nIGRpcmVjdG9yeSIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisr CisrIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVk LgorK2lmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCisrICBhY19zcmNkaXJfZGVmYXVsdGVkPXll cworKyAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIHRo ZSBwYXJlbnQgZGlyZWN0b3J5LgorKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19t eXNlbGYiIHx8CisrJGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8vKlteL11b Xi9dKi8qJCcgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkg WCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgv XCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRhc19teXNlbGYiIHwKKysgICAg c2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAg IHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkg IH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAg cy8uKi8uLzsgcSdgCisrICBzcmNkaXI9JGFjX2NvbmZkaXIKKysgIGlmIHRlc3QgISAtciAiJHNy Y2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCisrICAgIHNyY2Rpcj0uLgorKyAgZmkKKytlbHNl CisrICBhY19zcmNkaXJfZGVmYXVsdGVkPW5vCisrZmkKKytpZiB0ZXN0ICEgLXIgIiRzcmNkaXIv JGFjX3VuaXF1ZV9maWxlIjsgdGhlbgorKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0g eWVzICYmIHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCisrICB7ICRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIi ID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisrYWNfbXNnPSJzb3VyY2Vz IGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgorK2FjX2Fi c19jb25mZGlyPWAoCisrCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlxdWVfZmls ZSIgfHwgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX21zZyIgPiYyCisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrCXB3ZClgCisrIyBXaGVuIGJ1aWxkaW5nIGluIHBsYWNlLCBz ZXQgc3JjZGlyPS4KKytpZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0aGVu CisrICBzcmNkaXI9LgorK2ZpCisrIyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hl cyBmcm9tIHNyY2Rpci4KKysjIERvdWJsZSBzbGFzaGVzIGluIGZpbGUgbmFtZXMgaW4gb2JqZWN0 IGZpbGUgZGVidWdnaW5nIGluZm8KKysjIG1lc3MgdXAgTS14IGdkYiBpbiBFbWFjcy4KKytjYXNl ICRzcmNkaXIgaW4KKysqLykgc3JjZGlyPWBleHByICJYJHNyY2RpciIgOiAnWFwoLipbXi9dXCkn IFx8ICJYJHNyY2RpciIgOiAnWFwoLipcKSdgOzsKKytlc2FjCisrZm9yIGFjX3ZhciBpbiAkYWNf cHJlY2lvdXNfdmFyczsgZG8KKysgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV9zZXQ9XCR7JHthY192 YXJ9K3NldH0KKysgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV92YWx1ZT1cJCR7YWNfdmFyfQorKyAg ZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQorKyAgZXZhbCBh Y19jdl9lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9CisrZG9uZQorKworKyMKKysjIFJl cG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCisrIworK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0g ImxvbmciOyB0aGVuCisrICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25z IHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KKysgICMgVGhpcyBtZXNzYWdlIGlzIHRv byBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KKysgIGNhdCA8PF9BQ0VP RgorK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFNPQ0kgMy4wLjAgdG8gYWRhcHQgdG8gbWFueSBr aW5kcyBvZiBzeXN0ZW1zLgorKworK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4u LgorKworK1RvIGFzc2lnbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4sIENDLCBDRkxBR1Mu Li4pLCBzcGVjaWZ5IHRoZW0gYXMKKytWQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0 aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgorKworK0RlZmF1bHRzIGZvciB0 aGUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIGluIGJyYWNrZXRzLgorKworK0NvbmZpZ3VyYXRpb246 CisrICAtaCwgLS1oZWxwICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAor KyAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRo aXMgcGFja2FnZQorKyAgICAgIC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQg aGVscCBvZiBhbGwgdGhlIGluY2x1ZGVkIHBhY2thZ2VzCisrICAtViwgLS12ZXJzaW9uICAgICAg ICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKysgIC1xLCAtLXF1aWV0 LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcworKyAgICAg IC0tY2FjaGUtZmlsZT1GSUxFICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVk XQorKyAgLUMsIC0tY29uZmlnLWNhY2hlICAgICAgYWxpYXMgZm9yIFxgLS1jYWNoZS1maWxlPWNv bmZpZy5jYWNoZScKKysgIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0 cHV0IGZpbGVzCisrICAgICAgLS1zcmNkaXI9RElSICAgICAgICBmaW5kIHRoZSBzb3VyY2VzIGlu IERJUiBbY29uZmlndXJlIGRpciBvciBcYC4uJ10KKysKKytJbnN0YWxsYXRpb24gZGlyZWN0b3Jp ZXM6CisrICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRl cGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKKysgICAgICAgICAgICAgICAgICAgICAgICAgIFskYWNf ZGVmYXVsdF9wcmVmaXhdCisrICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxsIGFyY2hp dGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaW4gRVBSRUZJWAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgW1BSRUZJWF0KKysKKytCeSBkZWZhdWx0LCBcYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0 YWxsIGFsbCB0aGUgZmlsZXMgaW4KKytcYCRhY19kZWZhdWx0X3ByZWZpeC9iaW4nLCBcYCRhY19k ZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeQorK2FuIGluc3RhbGxhdGlv biBwcmVmaXggb3RoZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZp eCcsCisrZm9yIGluc3RhbmNlIFxgLS1wcmVmaXg9XCRIT01FJy4KKysKKytGb3IgYmV0dGVyIGNv bnRyb2wsIHVzZSB0aGUgb3B0aW9ucyBiZWxvdy4KKysKKytGaW5lIHR1bmluZyBvZiB0aGUgaW5z dGFsbGF0aW9uIGRpcmVjdG9yaWVzOgorKyAgLS1iaW5kaXI9RElSICAgICAgICAgICAgdXNlciBl eGVjdXRhYmxlcyBbRVBSRUZJWC9iaW5dCisrICAtLXNiaW5kaXI9RElSICAgICAgICAgICBzeXN0 ZW0gYWRtaW4gZXhlY3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KKysgIC0tbGliZXhlY2Rpcj1ESVIg ICAgICAgIHByb2dyYW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KKysgIC0tc3lzY29u ZmRpcj1ESVIgICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRj XQorKyAgLS1zaGFyZWRzdGF0ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5k ZXBlbmRlbnQgZGF0YSBbUFJFRklYL2NvbV0KKysgIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgIG1v ZGlmaWFibGUgc2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL3Zhcl0KKysgIC0tbGliZGlyPURJ UiAgICAgICAgICAgIG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCisrICAtLWlu Y2x1ZGVkaXI9RElSICAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCisrICAt LW9sZGluY2x1ZGVkaXI9RElSICAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBbL3Vzci9p bmNsdWRlXQorKyAgLS1kYXRhcm9vdGRpcj1ESVIgICAgICAgcmVhZC1vbmx5IGFyY2guLWluZGVw ZW5kZW50IGRhdGEgcm9vdCBbUFJFRklYL3NoYXJlXQorKyAgLS1kYXRhZGlyPURJUiAgICAgICAg ICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUl0K KysgIC0taW5mb2Rpcj1ESVIgICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RE SVIvaW5mb10KKysgIC0tbG9jYWxlZGlyPURJUiAgICAgICAgIGxvY2FsZS1kZXBlbmRlbnQgZGF0 YSBbREFUQVJPT1RESVIvbG9jYWxlXQorKyAgLS1tYW5kaXI9RElSICAgICAgICAgICAgbWFuIGRv Y3VtZW50YXRpb24gW0RBVEFST09URElSL21hbl0KKysgIC0tZG9jZGlyPURJUiAgICAgICAgICAg IGRvY3VtZW50YXRpb24gcm9vdCBbREFUQVJPT1RESVIvZG9jL3NvY2ldCisrICAtLWh0bWxkaXI9 RElSICAgICAgICAgICBodG1sIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KKysgIC0tZHZpZGlyPURJ UiAgICAgICAgICAgIGR2aSBkb2N1bWVudGF0aW9uIFtET0NESVJdCisrICAtLXBkZmRpcj1ESVIg ICAgICAgICAgICBwZGYgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQorKyAgLS1wc2Rpcj1ESVIgICAg ICAgICAgICAgcHMgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQorK19BQ0VPRgorKworKyAgY2F0IDw8 XF9BQ0VPRgorKworK1Byb2dyYW0gbmFtZXM6CisrICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCAg ICAgICAgICAgIHByZXBlbmQgUFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCisrICAt LXByb2dyYW0tc3VmZml4PVNVRkZJWCAgICAgICAgICAgIGFwcGVuZCBTVUZGSVggdG8gaW5zdGFs bGVkIHByb2dyYW0gbmFtZXMKKysgIC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT1QUk9HUkFNICAg cnVuIHNlZCBQUk9HUkFNIG9uIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCisrCisrU3lzdGVtIHR5 cGVzOgorKyAgLS1idWlsZD1CVUlMRCAgICAgY29uZmlndXJlIGZvciBidWlsZGluZyBvbiBCVUlM RCBbZ3Vlc3NlZF0KKysgIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQg cHJvZ3JhbXMgdG8gcnVuIG9uIEhPU1QgW0JVSUxEXQorK19BQ0VPRgorK2ZpCisrCisraWYgdGVz dCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KKysgIGNhc2UgJGFjX2luaXRfaGVscCBpbgorKyAg ICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFNPQ0kgMy4wLjA6 Ijs7CisrICAgZXNhYworKyAgY2F0IDw8XF9BQ0VPRgorKworK09wdGlvbmFsIEZlYXR1cmVzOgor KyAgLS1kaXNhYmxlLW9wdGlvbi1jaGVja2luZyAgaWdub3JlIHVucmVjb2duaXplZCAtLWVuYWJs ZS8tLXdpdGggb3B0aW9ucworKyAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1 ZGUgRkVBVFVSRSAoc2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQorKyAgLS1lbmFibGUtRkVB VFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQorKyAgLS1lbmFibGUtc2hhcmVk Wz1QS0dTXSAgYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBbZGVmYXVsdD1ub10KKysgIC0tZW5hYmxl LXN0YXRpY1s9UEtHU10gIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMgW2RlZmF1bHQ9eWVzXQorKyAg LS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAor KyAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBl bmRlbmN5IGV4dHJhY3RvcnMKKysgIC0tZW5hYmxlLWZhc3QtaW5zdGFsbFs9UEtHU10KKysgICAg ICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBbZGVm YXVsdD15ZXNdCisrICAtLWRpc2FibGUtbGlidG9vbC1sb2NrICBhdm9pZCBsb2NraW5nIChtaWdo dCBicmVhayBwYXJhbGxlbCBidWlsZHMpCisrICAtLWVuYWJsZS1leGNlcHRpb25zICAgICBlbmFi bGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc20KKysgIC0tZGlzYWJsZS1pbmZvLWRvYyAg ICAgIGRvIG5vdCBnZW5lcmF0ZSBJbmZvIGRvY3VtZW50YXRpb24KKysgIC0tZGlzYWJsZS1odG1s LWRvYyAgICAgIGRvIG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb24KKysgIC0tZW5hYmxl LWJ1cnJpZWQtaGVhZGVycworKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBoZWFk ZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmUKKysgIC0tZW5hYmxlLW15c3FsLWJ1 cnJpZWQtaGVhZGVycworKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBNeVNRTCBo ZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0dXJlCisrICAtLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxlcyBmcm9t IGEgZGlyZWN0b3J5CisrICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKKysgIC0t ZW5hYmxlLWJhY2tlbmQtbXlzcWwgIGJ1aWxkLWluIE15U1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVm YXVsdD1ub10KKysgIC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIGJ1aWxkLWluIE9SQUNMRSBiYWNr ZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCisrICAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBz dXBwb3J0IFtkZWZhdWx0PW5vXQorKworK09wdGlvbmFsIFBhY2thZ2VzOgorKyAgLS13aXRoLVBB Q0tBR0VbPUFSR10gICAgdXNlIFBBQ0tBR0UgW0FSRz15ZXNdCisrICAtLXdpdGhvdXQtUEFDS0FH RSAgICAgICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCisr ICAtLXdpdGgtY3BwdW5pdC1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5z dGFsbGVkIChvcHRpb25hbCkKKysgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhl YyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQorKyAgLS13aXRo LXBpYyAgICAgICAgICAgICAgdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVjdHMgW2Rl ZmF1bHQ9dXNlCisrICAgICAgICAgICAgICAgICAgICAgICAgICBib3RoXQorKyAgLS13aXRoLWdu dS1sZCAgICAgICAgICAgYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIFtkZWZhdWx0 PW5vXQorKyAgLS13aXRoLWRvY2Rpcj1ESVIgICAgICAgc2V0IGRvY3VtZW50YXRpb24gZGlyZWN0 b3J5IHRvIERJUgorKyAgLS13aXRoLWJvb3N0PURJUiAgICAgICAgdXNlIGJvb3N0IChkZWZhdWx0 IGlzIE5PKSAsIHNwZWNpZnkgdGhlIHJvb3QKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRp cmVjdG9yeSBmb3IgYm9vc3QgbGlicmFyeSAob3B0aW9uYWwpCisrICAtLXdpdGgtbXlzcWw9W0FS R10gICAgICB1c2UgTXlTUUwgY2xpZW50IGxpYnJhcnkgW2RlZmF1bHQ9eWVzXSwgb3B0aW9uYWxs eQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmeSBwYXRoIHRvIG15c3FsX2NvbmZp ZworKyAgLS13aXRoLW9yYWNsZT1bRElSXSAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGZyb20gZ2l2 ZW4gcGF0aCB0byBPcmFjbGUgaG9tZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0 b3J5CisrICAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9W0RJUl0KKysgICAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBPcmFjbGUgT0NJIEFQSSBoZWFkZXJzIGZyb20gZ2l2ZW4gcGF0aAorKyAgLS13 aXRoLW9yYWNsZS1saWI9W0RJUl0gdXNlIE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdp dmVuIHBhdGgKKysgIC0td2l0aC1wb3N0Z3Jlc3FsPVtBUkddIHVzZSBQb3N0Z3JlU1FMIGxpYnJh cnkgW2RlZmF1bHQ9eWVzXSwgb3B0aW9uYWxseQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg c3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZpZworKworK1NvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1l bnQgdmFyaWFibGVzOgorKyAgQ1hYICAgICAgICAgQysrIGNvbXBpbGVyIGNvbW1hbmQKKysgIENY WEZMQUdTICAgIEMrKyBjb21waWxlciBmbGFncworKyAgTERGTEFHUyAgICAgbGlua2VyIGZsYWdz LCBlLmcuIC1MPGxpYiBkaXI+IGlmIHlvdSBoYXZlIGxpYnJhcmllcyBpbiBhCisrICAgICAgICAg ICAgICBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGxpYiBkaXI+CisrICBMSUJTICAgICAgICBsaWJy YXJpZXMgdG8gcGFzcyB0byB0aGUgbGlua2VyLCBlLmcuIC1sPGxpYnJhcnk+CisrICBDUFBGTEFH UyAgICBDL0MrKy9PYmplY3RpdmUgQyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVk ZSBkaXI+IGlmCisrICAgICAgICAgICAgICB5b3UgaGF2ZSBoZWFkZXJzIGluIGEgbm9uc3RhbmRh cmQgZGlyZWN0b3J5IDxpbmNsdWRlIGRpcj4KKysgIENYWENQUCAgICAgIEMrKyBwcmVwcm9jZXNz b3IKKysgIENDICAgICAgICAgIEMgY29tcGlsZXIgY29tbWFuZAorKyAgQ0ZMQUdTICAgICAgQyBj b21waWxlciBmbGFncworKyAgQ1BQICAgICAgICAgQyBwcmVwcm9jZXNzb3IKKysKKytVc2UgdGhl c2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScg b3IgdG8gaGVscAorK2l0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0 YW5kYXJkIG5hbWVzL2xvY2F0aW9ucy4KKysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNl cnMuc291cmNlZm9yZ2UubmV0Pi4KKytfQUNFT0YKKythY19zdGF0dXM9JD8KKytmaQorKworK2lm IHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKysgICMgSWYgdGhlcmUg YXJlIHN1YmRpcnMsIHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCisrICBmb3IgYWNfZGly IGluIDogJGFjX3N1YmRpcnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51 ZQorKyAgICB0ZXN0IC1kICIkYWNfZGlyIiB8fAorKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFj X3B3ZD1gcHdkYCAmJiBzcmNkaXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAorKyAgICAg IGNvbnRpbnVlCisrICAgIGFjX2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBpbgorKy4p IGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4 PSA7OworKyopCisrICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdz fF5cLltcXC9dfHwnYAorKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJf c3VmZml4LgorKyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4 IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3BfYnVpbGRk aXJfc3ViIGluCisrICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVm aXg9IDs7CisrICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8g OzsKKysgIGVzYWMgOzsKKytlc2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCisrYWNf YWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJkIGNvbXBh dGliaWxpdHk6CisrYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CisrCisrY2Fz ZSAkc3JjZGlyIGluCisrICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisrICAgIGFj X3NyY2Rpcj0uCisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKKysgICAg YWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBB YnNvbHV0ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworKyAg ICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7 OworKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9w cmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1 aWxkX3ByZWZpeCRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGly IDs7CisrZXNhYworK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZm aXgKKysKKysgICAgY2QgIiRhY19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQor KyAgICAjIENoZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZS4KKysgICAgaWYgdGVzdCAtZiAiJGFj X3NyY2Rpci9jb25maWd1cmUuZ251IjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hF TEwgIiRhY19zcmNkaXIvY29uZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAgICBlbGlm IHRlc3QgLWYgIiRhY19zcmNkaXIvY29uZmlndXJlIjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysg ICAgICAkU0hFTEwgIiRhY19zcmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCisrICAg IGVsc2UKKysgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9u IGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIiID4mMgorKyAgICBmaSB8fCBhY19zdGF0dXM9JD8K KysgICAgY2QgIiRhY19wd2QiIHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQorKyAgZG9uZQor K2ZpCisrCisrdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCisraWYg JGFjX2luaXRfdmVyc2lvbjsgdGhlbgorKyAgY2F0IDw8XF9BQ0VPRgorK1NPQ0kgY29uZmlndXJl IDMuMC4wCisrZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzCisrCisrQ29weXJpZ2h0IChD KSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAor KzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisrCisrQ29weXJpZ2h0IChDKSAy MDA0LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4K KytfQUNFT0YKKysgIGV4aXQKKyBmaQorK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgorK1RoaXMg ZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCisr cnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEg bWlzdGFrZS4KKysKKytJdCB3YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2gg d2FzCisrZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5k IGxpbmUgd2FzCisrCisrICAkICQwICRACisrCisrX0FDRU9GCisrZXhlYyA1Pj5jb25maWcubG9n CisreworK2NhdCA8PF9BU1VOQU1FCisrIyMgLS0tLS0tLS0tICMjCisrIyMgUGxhdGZvcm0uICMj CisrIyMgLS0tLS0tLS0tICMjCisrCisraG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1u KSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKKyt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9u dWxsIHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxs IHx8IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8 IGVjaG8gdW5rbm93bmAKKyt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVj aG8gdW5rbm93bmAKKysKKysvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXAp IDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKysvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jp bi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKKysKKysvYmluL2Fy Y2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8 fCBlY2hvIHVua25vd25gCisrL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJj aCAtaykgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvY29udmV4L2dl dHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8g dW5rbm93bmAKKysvdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9ob3N0aW5mbykg Mj4vZGV2L251bGwgICAgICB8fCBlY2hvIHVua25vd25gCisrL2Jpbi9tYWNoaW5lICAgICAgICAg ICA9IGAoL2Jpbi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3du YAorKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9u dWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgv YmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisrCisr X0FTVU5BTUUKKysKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgJGFzX2VjaG8gIlBBVEg6ICRhc19kaXIiCisrZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKyt9ID4mNQorKworK2NhdCA+JjUgPDxfQUNFT0YKKysKKysK KysjIyAtLS0tLS0tLS0tLSAjIworKyMjIENvcmUgdGVzdHMuICMjCisrIyMgLS0tLS0tLS0tLS0g IyMKKysKKytfQUNFT0YKKysKKysKKysjIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5l LgorKyMgU3RyaXAgb3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRv IG5vdCBwaWxlIHVwLgorKyMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2Fu dCB0byByZWNvcmQgaXQgZm9yIGZ1dHVyZSBydW5zLgorKyMgQWxzbyBxdW90ZSBhbnkgYXJncyBj b250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KKysjIE1ha2UgdHdvIHBhc3NlcyB0byBh bGxvdyBmb3IgcHJvcGVyIGR1cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KKythY19jb25m aWd1cmVfYXJncz0KKythY19jb25maWd1cmVfYXJnczA9CisrYWNfY29uZmlndXJlX2FyZ3MxPQor K2FjX211c3Rfa2VlcF9uZXh0PWZhbHNlCisrZm9yIGFjX3Bhc3MgaW4gMSAyCisrZG8KKysgIGZv ciBhY19hcmcKKysgIGRvCisrICAgIGNhc2UgJGFjX2FyZyBpbgorKyAgICAtbm8tY3JlYXRlIHwg LS1uby1jKiB8IC1uIHwgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tciopIGNvbnRpbnVlIDs7CisrICAg IC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisr ICAgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQorKyAg ICAgIGNvbnRpbnVlIDs7CisrICAgICpcJyopCisrICAgICAgYWNfYXJnPWAkYXNfZWNobyAiJGFj X2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBjYXNl ICRhY19wYXNzIGluCisrICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9h cmdzMCAnJGFjX2FyZyciIDs7CisrICAgIDIpCisrICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIk YWNfY29uZmlndXJlX2FyZ3MxICckYWNfYXJnJyIKKysgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tl ZXBfbmV4dCA9IHRydWU7IHRoZW4KKysJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFs dWUsIGJhY2sgdG8gbm9ybWFsLgorKyAgICAgIGVsc2UKKysJY2FzZSAkYWNfYXJnIGluCisrCSAg Kj0qIHwgLS1jb25maWctY2FjaGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCisr CSAgfCAtZW5hYmxlLSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiog XAorKwkgIHwgLXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZl cmIqIFwKKysJICB8IC13aXRoLSogfCAtLXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQt KiB8IC0teCkKKysJICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgorKwkgICAgICAi JGFjX2NvbmZpZ3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OworKwkgICAg ZXNhYworKwkgICAgOzsKKysJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKKysJZXNh YworKyAgICAgIGZpCisrICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJn cyAnJGFjX2FyZyciCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorK2RvbmUKKyskYXNf dW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3Nl dH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVf YXJnczA7IH0KKyskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29u ZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9y dCBhY19jb25maWd1cmVfYXJnczE7IH0KKysKKysjIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdk LCBjbGVhbnVwIHRlbXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCisrIyBjb25maWcubG9nLiAg V2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKKysj IHdvdWxkIGNhdXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KKysjIFdBUk5JTkc6IFVzZSAnXCcn IHRvIHJlcHJlc2VudCBhbiBhcG9zdHJvcGhlIHdpdGhpbiB0aGUgdHJhcC4KKysjIFdBUk5JTkc6 IERvIG5vdCBzdGFydCB0aGUgdHJhcCBjb2RlIHdpdGggYSBuZXdsaW5lLCBkdWUgdG8gYSBGcmVl QlNEIDQuMCBidWcuCisrdHJhcCAnZXhpdF9zdGF0dXM9JD8KKysgICMgU2F2ZSBpbnRvIGNvbmZp Zy5sb2cgc29tZSBpbmZvcm1hdGlvbiB0aGF0IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5nLgorKyAg eworKyAgICBlY2hvCisrCisrICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0t ICMjCisrIyMgQ2FjaGUgdmFyaWFibGVzLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKKytf QVNCT1gKKysgICAgZWNobworKyAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhl IGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKygKKysgIGZvciBhY192YXIg aW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ1wnJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwp PS4qL1wxL3AnXCcnYDsgZG8KKysgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgIGNhc2Ug JGFjX3ZhbCBpbiAjKAorKyAgICAqJHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAj KAorKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNh Y2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGlu ZSIgPiYyO30gOzsKKysgICAgICBlc2FjCisrICAgICAgY2FzZSAkYWNfdmFyIGluICMoCisrICAg ICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAorKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNF KSBldmFsICRhY192YXI9IDs7ICMoCisrICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKKysg ICAgICBlc2FjIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysgIChzZXQpIDI+JjEgfAorKyAgICBj YXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGluICMoCisrICAgICok e2FzX25sfWFjX3NwYWNlPVwgKikKKysgICAgICBzZWQgLW4gXAorKwkicy8nXCcnLydcJydcXFxc J1wnJydcJycvZzsKKysJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVt XSpcXCk9XFwoLipcXCkvXFwxPSdcJydcXDInXCcnL3AiCisrICAgICAgOzsgIygKKysgICAgKikK KysgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9w IgorKyAgICAgIDs7CisrICAgIGVzYWMgfAorKyAgICBzb3J0CisrKQorKyAgICBlY2hvCisrCisr ICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE91dHB1dCB2 YXJpYWJsZXMuICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgZWNo bworKyAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF92YXJzCisrICAgIGRvCisrICAgICAgZXZh bCBhY192YWw9XCQkYWNfdmFyCisrICAgICAgY2FzZSAkYWNfdmFsIGluCisrICAgICAgKlwnXCcn KikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwn XCcnJ1wnJy9nImA7OworKyAgICAgIGVzYWMKKysgICAgICAkYXNfZWNobyAiJGFjX3Zhcj0nXCcn JGFjX3ZhbCdcJyciCisrICAgIGRvbmUgfCBzb3J0CisrICAgIGVjaG8KKysKKysgICAgaWYgdGVz dCAtbiAiJGFjX3N1YnN0X2ZpbGVzIjsgdGhlbgorKyAgICAgIGNhdCA8PFxfQVNCT1gKKysjIyAt LS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgRmlsZSBzdWJzdGl0dXRpb25zLiAjIworKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAgZm9yIGFj X3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKKysgICAgICBkbworKwlldmFsIGFjX3ZhbD1cJCRhY192 YXIKKysJY2FzZSAkYWNfdmFsIGluCisrCSpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192 YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKKysJZXNhYworKwkk YXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCisrICAgICAgZG9uZSB8IHNvcnQKKysg ICAgICBlY2hvCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgor KyAgICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLSAjIworKyMjIGNvbmZkZWZzLmgu ICMjCisrIyMgLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAgY2F0 IGNvbmZkZWZzLmgKKysgICAgICBlY2hvCisrICAgIGZpCisrICAgIHRlc3QgIiRhY19zaWduYWwi ICE9IDAgJiYKKysgICAgICAkYXNfZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWdu YWwiCisrICAgICRhc19lY2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgorKyAgfSA+JjUK KysgIHJtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiAmJgorKyAgICBybSAtZiAtciBj b25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCisrICAgIGV4aXQg JGV4aXRfc3RhdHVzCisrJyAwCisrZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCisrICB0 cmFwICdhY19zaWduYWw9JyRhY19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19z aWduYWwKKytkb25lCisrYWNfc2lnbmFsPTAKKysKKysjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNv bW1hbmQgbGluZSBsZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgorK3JtIC1mIC1y IGNvbmZ0ZXN0KiBjb25mZGVmcy5oCisrCisrIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJp YWJsZXMuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9O QU1FICIkUEFDS0FHRV9OQU1FIgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxf QUNFT0YKKysjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKKytfQUNF T0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIiRQQUNLQUdFX1ZFUlNJT04iCisrX0FDRU9GCisrCisrCisrY2F0ID4+Y29uZmRlZnMu aCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKKytf QUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiJFBBQ0tBR0VfQlVHUkVQT1JUIgorK19BQ0VPRgorKworKworKyMgTGV0IHRo ZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRv LgorKyMgUHJlZmVyIGFuIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5 IHNlbGVjdGVkIG9uZXMuCisrYWNfc2l0ZV9maWxlMT1OT05FCisrYWNfc2l0ZV9maWxlMj1OT05F CisraWYgdGVzdCAtbiAiJENPTkZJR19TSVRFIjsgdGhlbgorKyAgYWNfc2l0ZV9maWxlMT0kQ09O RklHX1NJVEUKKytlbGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgorKyAgYWNfc2l0 ZV9maWxlMT0kcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRwcmVm aXgvZXRjL2NvbmZpZy5zaXRlCisrZWxzZQorKyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9w cmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKKysgIGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJl Zml4L2V0Yy9jb25maWcuc2l0ZQorK2ZpCisrZm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVf ZmlsZTEiICIkYWNfc2l0ZV9maWxlMiIKKytkbworKyAgdGVzdCAieCRhY19zaXRlX2ZpbGUiID0g eE5PTkUgJiYgY29udGludWUKKysgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19z aXRlX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFj X3NpdGVfZmlsZSIgPiY2O30KKysgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1 CisrICAgIC4gIiRhY19zaXRlX2ZpbGUiCisrICBmaQorK2RvbmUKKysKKytpZiB0ZXN0IC1yICIk Y2FjaGVfZmlsZSI7IHRoZW4KKysgICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0 byBzb3VyY2UgL2Rldi9udWxsIChzcGVjaWFsCisrICAjIGZpbGVzIGFjdHVhbGx5KSwgc28gd2Ug YXZvaWQgZG9pbmcgdGhhdC4KKysgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30K KysgICAgY2FzZSAkY2FjaGVfZmlsZSBpbgorKyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAi JGNhY2hlX2ZpbGUiOzsKKysgICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIuLyRjYWNo ZV9maWxlIjs7CisrICAgIGVzYWMKKysgIGZpCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgID4kY2FjaGVfZmlsZQor K2ZpCisrCisrIyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhl IGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQorKyMgdmFsdWUuCisrYWNfY2FjaGVfY29ycnVwdGVk PWZhbHNlCisrZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KKysgIGV2YWwgYWNf b2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0CisrICBldmFsIGFjX25ld19zZXQ9XCRh Y19lbnZfJHthY192YXJ9X3NldAorKyAgZXZhbCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52XyR7YWNf dmFyfV92YWx1ZQorKyAgZXZhbCBhY19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQor KyAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgorKyAgICBzZXQsKQorKyAgICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxg JGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZp b3VzIHJ1biIgPiYyO30KKysgICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OworKyAgICAsc2V0 KQorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3 YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQor KyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CisrICAgICwpOzsKKysgICAgKikKKysgICAg ICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCisrCSMgZGlm ZmVyZW5jZXMgaW4gd2hpdGVzcGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgorKwlhY19vbGRf dmFsX3c9YGVjaG8geCAkYWNfb2xkX3ZhbGAKKysJYWNfbmV3X3ZhbF93PWBlY2hvIHggJGFjX25l d192YWxgCisrCWlmIHRlc3QgIiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhl bgorKwkgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMg Y2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4m Mjt9CisrCSAgYWNfY2FjaGVfY29ycnVwdGVkPToKKysJZWxzZQorKwkgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAk YWNfdmFyJyBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog d2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2Ug dGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9CisrCSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xkX3ZhbAor KwlmaQorKwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICBcYCRh Y19vbGRfdmFsJyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICBcYCRh Y19vbGRfdmFsJyIgPiYyO30KKysJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVu dCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVu dCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mMjt9CisrICAgICAgZmk7OworKyAgZXNhYworKyAg IyBQYXNzIHByZWNpb3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgorKyAgaWYgdGVzdCAi JGFjX25ld19zZXQiID0gc2V0OyB0aGVuCisrICAgIGNhc2UgJGFjX25ld192YWwgaW4KKysgICAg KlwnKikgYWNfYXJnPSRhY192YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8n XFxcXFxcXFwnJy9nImAgOzsKKysgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsK KysgICAgZXNhYworKyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KKysgICAgICAq IiAnJGFjX2FyZycgIiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBh Y2N1cmFjeS4KKysgICAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdz ICckYWNfYXJnJyIgOzsKKysgICAgZXNhYworKyAgZmkKKytkb25lCisraWYgJGFjX2NhY2hlX2Nv cnJ1cHRlZDsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBc YCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjI7fQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGlu IHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlz ZSB0aGUgYnVpbGQiID4mMjt9CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3Rh cnQgb3ZlciIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNs ZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9CisrICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKythY19leHQ9 YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVz dCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKwor K2FjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgc29jaS9jb25maWcuaCIKKysK KysKKythY19hdXhfZGlyPQorK2ZvciBhY19kaXIgaW4gY29uZmlnICIkc3JjZGlyIi9jb25maWc7 IGRvCisrICBpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwtc2giOyB0aGVuCisrICAgIGFjX2F1 eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNo IC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0 aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4 X2Rpci9pbnN0YWxsLnNoIC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGly L3NodG9vbCI7IHRoZW4KKysgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisrICAgIGFjX2luc3RhbGxf c2g9IiRhY19hdXhfZGlyL3NodG9vbCBpbnN0YWxsIC1jIgorKyAgICBicmVhaworKyAgZmkKKytk b25lCisraWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNo IGluIGNvbmZpZyBcIiRzcmNkaXJcIi9jb25maWciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNy Y2RpclwiL2NvbmZpZyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQor KworKyMgVGhlc2UgdGhyZWUgdmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9y dGVkLAorKyMgYW5kIGFyZSBpbnRlbmRlZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0 b2NvbmYgcmVsZWFzZS4KKysjIFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBi dWlsZGVyJ3Mgc291cmNlIHRyZWUgaXMgaW4gYSBkaXJlY3RvcnkKKysjIHdob3NlIGZ1bGwgbmFt ZSBjb250YWlucyB1bnVzdWFsIGNoYXJhY3RlcnMuCisrYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwg JGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgor K2FjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2Ug ZG9uJ3QgdXNlIHRoaXMgdmFyLgorK2FjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2Nv bmZpZ3VyZSIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKysKKysKKythbV9fYXBpX3Zl cnNpb249JzEuMTAnCisrCisrIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVm ZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCisrIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMg YW5vdGhlci4gIEJ1dCBhdm9pZCB0aGUgYnJva2VuIG9yCisrIyBpbmNvbXBhdGlibGUgdmVyc2lv bnM6CisrIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKysjIFN1bk9TIC91 c3IvZXRjL2luc3RhbGwKKysjIElSSVggL3NiaW4vaW5zdGFsbAorKyMgQUlYIC9iaW4vaW5zdGFs bAorKyMgQW1pZ2FPUyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZs b3BweSBkaXNjcworKyMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3 b3JrIHdpdGhvdXQgYSAtZyBmbGFnCisrIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hp Y2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCisrIyBTVlI0IC91c3IvdWNiL2luc3RhbGws IHdoaWNoIHRyaWVzIHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgorKyMgT1Mv MidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1h bnRpYworKyMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBt YWtlIGZyb20gLi9pbnN0YWxsLnNoLgorKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBj YW5ub3QgaW5zdGFsbCBtdWx0aXBsZSBmaWxlcy4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQorK2lm IHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbgorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxs K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNo ZXMgaW4gUEFUSCBlbGVtZW50cy4KKytjYXNlICRhc19kaXIvIGluCisrICAuLyB8IC4vLyB8IC9j Qy8qIHwgXAorKyAgL2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8 IC91c3IvYWZzd3MvYmluLyogfCBcCisrICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9P UzJcXC9JTlNUQUxMXFwvKiB8IFwKKysgIC91c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBP U0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysg ICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVm ZiBhcyByb290CisrICAgICMgYnkgZGVmYXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3Rh bGwgc2NvaW5zdCBpbnN0YWxsOyBkbworKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3By b2ckYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19l eHQiOyB9OyB0aGVuCisrCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdy ZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysJICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxp bmcgY29udmVudGlvbi4KKysJICAgIDoKKysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxs ICYmCisrCSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3Jp cHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAg ICBybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVj aG8gb25lID4gY29uZnRlc3Qub25lCisrCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkg ICAgbWtkaXIgY29uZnRlc3QuZGlyCisrCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVj X2V4dCIgLWMgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAm JgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAm JgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAg dGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFj X2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAg ICAgYnJlYWsgMworKwkgICAgZmkKKysJICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9u ZQorKyAgICA7OworK2VzYWMKKysKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK3JtIC1y ZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgorKworK2ZpCisrICBpZiB0 ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgICBJTlNUQUxM PSRhY19jdl9wYXRoX2luc3RhbGwKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1 c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZv ciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisr ICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0 b3J5IGlzCisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFt ZS4KKysgICAgSU5TVEFMTD0kYWNfaW5zdGFsbF9zaAorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAiJElOU1RB TEwiID4mNjsgfQorKworKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxl cyBicmFjZXMgaW4gJHt2YXItdmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJh Y2UgZW5kcyB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNUQUxMX1BS T0dSQU0iICYmIElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5T VEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rlc3QgLXog IiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJv bm1lbnQgaXMgc2FuZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBl bnZpcm9ubWVudCBpcyBzYW5lLi4uICIgPiY2OyB9CisrIyBKdXN0IGluIGNhc2UKKytzbGVlcCAx CisrZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCisrIyBEbyBgc2V0JyBpbiBhIHN1YnNo ZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworKyMgYXJndW1lbnRz LiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQorKyMg c3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUg b2Ygc3ltbGlua3MKKysjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBz eW1saW5rJ3MgY29udGFpbmluZworKyMgZGlyZWN0b3J5KS4KKytpZiAoCisrICAgc2V0IFggYGxz IC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBp ZiB0ZXN0ICIkKiIgPSAiWCI7IHRoZW4KKysgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorKyAgICAg IHNldCBYIGBscyAtdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAorKyAgIGZpCisr ICAgcm0gLWYgY29uZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2Nv bmZpZ3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0 ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBuZWl0aGVy IG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorKyAg ICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVy aXRzIGEKKysgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRo aXMgaGFzIGFjdHVhbGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQg bm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorKyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMg bm90IGEgYnJva2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBp cyBub3QgYSBicm9rZW4KKythbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgIGZpCisrCisrICAgdGVzdCAiJDIiID0gY29uZnRl c3QuZmlsZQorKyAgICkKKyt0aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAgIHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xk ZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0 aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKyt0ZXN0ICIk cHJvZ3JhbV9wcmVmaXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMm XiYkcHJvZ3JhbV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgVXNlIGEgZG91 YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0LgorK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9O RSAmJgorKyAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRw cm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgRG91YmxlIGFueSBcIG9yICQuCisrIyBCeSBkZWZh dWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KKythY19zY3JpcHQ9J3MvW1xc JF0vJiYvZztzLztzLHgseCwkLy8nCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8g IiRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrCisrIyBleHBh bmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNkICRhY19h dXhfZGlyICYmIHB3ZGAKKysKKyt0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNT SU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKKysjIFVzZSBldmFsIHRvIGV4cGFu ZCAkU0hFTEwKKytpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgorKyAgYW1fbWlz c2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKKytlbHNlCisrICBhbV9taXNzaW5nX3J1bj0KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBp cyB0b28gb2xkIG9yIG1pc3NpbmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxg bWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KKytmaQorKworK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2Rp ciAtcCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIg LXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIkTUtESVJfUCI7IHRoZW4KKysgIGlmIHRlc3Qg IiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX3Byb2cgaW4gbWtkaXIgZ21rZGlyOyBkbworKwkgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrCSAgIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRh Y19leGVjX2V4dCI7IH0gfHwgY29udGludWUKKysJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ck YWNfZXhlY19leHQiIC0tdmVyc2lvbiAyPiYxYCBpbiAjKAorKwkgICAgICdta2RpciAoR05VIGNv cmV1dGlscykgJyogfCBcCisrCSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAorKwkgICAg ICdta2RpciAoZmlsZXV0aWxzKSAnNC4xKikKKysJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFz X2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dAorKwkgICAgICAgYnJlYWsgMzs7CisrCSAgIGVzYWMK KysJIGRvbmUKKysgICAgICAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkK KysKKysgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAg ICBNS0RJUl9QPSIkYWNfY3ZfcGF0aF9ta2RpciAtcCIKKysgIGVsc2UKKysgICAgIyBBcyBhIGxh c3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAg ICAjIHZhbHVlIGZvciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2Ug dGhhdCB3aWxsCisrICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlm IHRoYXQgZGlyZWN0b3J5IGlzCisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEg cmVsYXRpdmUgbmFtZS4KKysgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVy c2lvbgorKyAgICBNS0RJUl9QPSIkYWNfaW5zdGFsbF9zaCAtZCIKKysgIGZpCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUtESVJfUCIgPiY1CisrJGFzX2VjaG8g IiRNS0RJUl9QIiA+JjY7IH0KKysKKytta2Rpcl9wPSIkTUtESVJfUCIKKytjYXNlICRta2Rpcl9w IGluCisrICBbXFwvJF0qIHwgPzpbXFwvXSopIDs7CisrICAqLyopIG1rZGlyX3A9IlwkKHRvcF9i dWlsZGRpcikvJG1rZGlyX3AiIDs7CisrZXNhYworKworK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3 ayBuYXdrIGF3aworK2RvCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9n Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFj X3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRBV0si OyB0aGVuCisrICBhY19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK Kytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKytBV0s9JGFjX2N2X3Byb2dfQVdLCisraWYgdGVzdCAtbiAiJEFXSyI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBV0siID4mNQorKyRh c19lY2hvICIkQVdLIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAg dGVzdCAtbiAiJEFXSyIgJiYgYnJlYWsKKytkb25lCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSku Li4gIiA+JjY7IH0KKytzZXQgeCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNobyAiJDIi IHwgc2VkICdzLysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKytpZiB7IGFzX3Zhcj1hY19j dl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1c IiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgorK1NIRUxMID0gL2Jpbi9zaAorK2FsbDoK KysJQGVjaG8gJ0BAQCUlJT0kKE1BS0UpPUBAQCUlJScKKytfQUNFT0YKKysjIEdOVSBtYWtlIHNv bWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVz ZSB1cy4KKytjYXNlIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAg aW4KKysgICpAQEAlJSU9Pyo9QEBAJSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHth Y19tYWtlfV9zZXQ9eWVzOzsKKysgICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNf bWFrZX1fc2V0PW5vOzsKKytlc2FjCisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZh bCB0ZXN0IFwkYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5 ZXMiID4mNjsgfQorKyAgU0VUX01BS0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICBTRVRfTUFL RT0iTUFLRT0ke01BS0UtbWFrZX0iCisrZmkKKysKKytybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAor K21rZGlyIC50c3QgMj4vZGV2L251bGwKKytpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KKysgIGFtX19s ZWFkaW5nX2RvdD0uCisrZWxzZQorKyAgYW1fX2xlYWRpbmdfZG90PV8KKytmaQorK3JtZGlyIC50 c3QgMj4vZGV2L251bGwKKysKKytpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3 ZGAiOyB0aGVuCisrICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4s IHNvIHRoYXQgbWFrZSdzIG91dHB1dAorKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRl ZCAiLUkuIgorKyAgYW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKKysgICMgdGVzdCB0byBzZWUgaWYg c3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAorKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5z dGF0dXM7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNv dXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwi IHRoZXJlIGZpcnN0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVj dG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmly c3QiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2ZpCisrCisr IyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCisraWYgdGVzdCAteiAiJENZR1BBVEhfVyI7 IHRoZW4KKysgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsg dGhlbgorKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisrICBlbHNlCisrICAgIENZR1BBVEhf Vz1lY2hvCisrICBmaQorK2ZpCisrCisrCisrIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBw YWNrYWdlLgorKyBQQUNLQUdFPSdzb2NpJworKyBWRVJTSU9OPSczLjAuMCcKKysKKysKKytjYXQg Pj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKKytfQUNF T0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBWRVJTSU9OICIk VkVSU0lPTiIKKytfQUNFT0YKKysKKysjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCisrCisr QUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVy c2lvbn0ifQorKworKworK0FVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0 b2NvbmYifQorKworKworK0FVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0 b21ha2UtJHthbV9fYXBpX3ZlcnNpb259In0KKysKKysKKytBVVRPSEVBREVSPSR7QVVUT0hFQURF Ui0iJHthbV9taXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KKysKKysKKytNQUtFSU5GTz0ke01BS0VJ TkZPLSIke2FtX21pc3NpbmdfcnVufW1ha2VpbmZvIn0KKysKKytpbnN0YWxsX3NoPSR7aW5zdGFs bF9zaC0iXCQoU0hFTEwpICRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQorKworKyMgSW5zdGFsbGVk IGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNl cgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5v dCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmly b25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVu dmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytpZiB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQg ZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19T VFJJUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX1NUUklQPSIk U1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytm aQorK1NUUklQPSRhY19jdl9wcm9nX1NUUklQCisraWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKKyskYXNf ZWNobyAiJFNUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2Zp CisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCisrICBhY19jdF9TVFJJUD0k U1RSSVAKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0k MgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAi OyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRo ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9 InN0cmlwIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25l CisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNfY3ZfcHJv Z19hY19jdF9TVFJJUAorK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1CisrJGFzX2Vj aG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysg IGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgorKyAgICBTVFJJUD0iOiIKKysgIGVs c2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczop CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgU1RSSVA9JGFjX2N0 X1NUUklQCisrICBmaQorK2Vsc2UKKysgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKKytmaQor KworK2ZpCisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKKysK KysjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2si IGlzIGJhZCBvbgorKyMgc29tZSBwbGF0Zm9ybXMuCisrIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZv ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorKworK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2lu Z19ydW59dGFyIn0KKysKKythbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFt X191bnRhcj0nJHtBTVRBUn0geGYgLScKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNr IHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dp dGhfY3BwdW5pdF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfY3Bw dW5pdF9wcmVmaXg7IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCisrZWxzZQorKyAg Y3BwdW5pdF9jb25maWdfcHJlZml4PSIiCisrZmkKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13 aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9jcHB1 bml0X2V4ZWNfcHJlZml4K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2NwcHVu aXRfZXhlY19wcmVmaXg7IGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIKKytl bHNlCisrICBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIgorK2ZpCisrCisrCisrICBpZiB0 ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVu aXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVu aXRfY29uZmlnX2V4ZWNfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytz ZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25m aWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysgIGlm IHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRf Y29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZp Z19wcmVmaXgiCisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7 IHRoZW4KKysgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmlu L2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysKKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiY3BwdW5pdC1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSBjcHB1bml0LWNvbmZpZzsgYWNfd29yZD0kMgorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfcGF0aF9DUFBVTklUX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRDUFBVTklUX0NPTkZJRyBpbgorKyAgW1xc L10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQVU5JVF9D T05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAg OzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBV TklUX0NPTkZJRyIgJiYgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCisrICA7OworK2Vz YWMKKytmaQorK0NQUFVOSVRfQ09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCisraWYg dGVzdCAtbiAiJENQUFVOSVRfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJENQUFVOSVRfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJENQUFVOSVRf Q09ORklHIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgY3BwdW5p dF92ZXJzaW9uX21pbj0xLjEwCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRf dmVyc2lvbl9taW4uLi4gIiA+JjY7IH0KKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3QgIiRD UFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgbm9fY3Bw dW5pdD15ZXMKKysgIGVsc2UKKysgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAt LWNmbGFnc2AKKysgICAgQ1BQVU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAorKyAg ICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25gCisrCisrICAgIGNw cHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAg ICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisrICAgIGNw cHVuaXRfbWlub3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAg ICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wyLydgCisrICAgIGNw cHVuaXRfbWljcm9fdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAg ICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wzLydgCisrCisrICAg IGNwcHVuaXRfbWFqb3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAg ICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisrICAg IGlmIHRlc3QgIngke2NwcHVuaXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNw cHVuaXRfbWFqb3JfbWluPTAKKysgICAgZmkKKysKKysgICAgY3BwdW5pdF9taW5vcl9taW49YGVj aG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpc KS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9t aW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taW5vcl9taW49MAorKyAg ICBmaQorKworKyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21p biB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpc KS9cMy8nYAorKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhl bgorKyAgICAgICBjcHB1bml0X21pY3JvX21pbj0wCisrICAgIGZpCisrCisrICAgIGNwcHVuaXRf dmVyc2lvbl9wcm9wZXI9YGV4cHIgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBc PiAkY3BwdW5pdF9tYWpvcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lv biBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVy c2lvbiBcPiAkY3BwdW5pdF9taW5vcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3Jf dmVyc2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlu b3JfdmVyc2lvbiBcPSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRf bWljcm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKKysKKysgICAgaWYgdGVzdCAi JGNwcHVuaXRfdmVyc2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgorKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRf bWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uIiA+JjUKKyskYXNfZWNobyAiJGNw cHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3Jv X3ZlcnNpb24iID4mNjsgfQorKyAgICBlbHNlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgbm9f Y3BwdW5pdD15ZXMKKysgICAgZmkKKysgIGZpCisrCisrICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQi ID0geCA7IHRoZW4KKysgICAgIDoKKysgIGVsc2UKKysgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCisr ICAgICBDUFBVTklUX0xJQlM9IiIKKysgICAgIDoKKysgIGZpCisrCisrCisrCisrCisrCisrIGlm IHRlc3QgIngkQ1BQVU5JVF9MSUJTIiAhPSB4OyB0aGVuCisrICBIQVZFX0NQUFVOSVRfVFJVRT0K KysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX0NQUFVOSVRfVFJVRT0n IycKKysgIEhBVkVfQ1BQVU5JVF9GQUxTRT0KKytmaQorKworKworKyMgUlBNIHJlbGVhc2UgbnVt YmVyCisrUlBNX1JFTEVBU0U9IjEzIgorKworKworKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmlu ZworK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAgICAgICAgICAgICAg ICAgICAgfCB8IHwKKysjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCisrIyAgICAg ICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2 aXNpb246YWdlCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAg ICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUg YmVlbiBhZGRlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8g emVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbgorKyMgICAgICAgICAgICAgICAgIHwgICAgICAg IHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAg ICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKKysjICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCisr IyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFk ZGVkLCByZW1vdmVkCisrIyAgICAgICAgICAgICAgICAgICAgb3IgY2hhbmdlZAorKworKworKyMg VXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCisrVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0 IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgorKworKworKyMgQ2hlY2sgZm9y IGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCisr IyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgorKyRTSEVMTCAiJGFjX2F1eF9kaXIv Y29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKKysgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcu c3ViIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biAkU0hFTEwgJGFj X2F1eF9kaXIvY29uZmlnLnN1YiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K KysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5 cGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxp YXMKKyt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKKysgIGFjX2J1aWxkX2FsaWFzPWAk U0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyJgCisrdGVzdCAieCRhY19idWlsZF9hbGlh cyIgPSB4ICYmCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90 IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkg b25lIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2FjX2N2X2J1aWxkPWAk U0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRhY19idWlsZF9hbGlhc2AgfHwKKysgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29u ZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGFjX2J1aWxkX2FsaWFzIGZhaWxl ZCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1CisrJGFzX2VjaG8g IiRhY19jdl9idWlsZCIgPiY2OyB9CisrY2FzZSAkYWNfY3ZfYnVpbGQgaW4KKysqLSotKikgOzsK KysqKSB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBv ZiBjYW5vbmljYWwgYnVpbGQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlk IHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH07OworK2VzYWMKKytidWlsZD0kYWNfY3ZfYnVpbGQKKythY19zYXZlX0lGUz0kSUZTOyBJ RlM9Jy0nCisrc2V0IHggJGFjX2N2X2J1aWxkCisrc2hpZnQKKytidWlsZF9jcHU9JDEKKytidWls ZF92ZW5kb3I9JDIKKytzaGlmdDsgc2hpZnQKKysjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFj dGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKKysjIGV4Y2VwdCB3aXRoIG9sZCBzaGVs bHM6CisrYnVpbGRfb3M9JCoKKytJRlM9JGFjX3NhdmVfSUZTCisrY2FzZSAkYnVpbGRfb3MgaW4g KlwgKikgYnVpbGRfb3M9YGVjaG8gIiRidWlsZF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMK KysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0g dHlwZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0g eDsgdGhlbgorKyAgYWNfY3ZfaG9zdD0kYWNfY3ZfYnVpbGQKKytlbHNlCisrICBhY19jdl9ob3N0 PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFzYCB8fAorKyAgICB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2Nv bmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1CisrJGFzX2VjaG8gIiRh Y19jdl9ob3N0IiA+JjY7IH0KKytjYXNlICRhY19jdl9ob3N0IGluCisrKi0qLSopIDs7CisrKikg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fu b25pY2FsIGhvc3QiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVl IG9mIGNhbm9uaWNhbCBob3N0IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7 CisrZXNhYworK2hvc3Q9JGFjX2N2X2hvc3QKKythY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCisr c2V0IHggJGFjX2N2X2hvc3QKKytzaGlmdAorK2hvc3RfY3B1PSQxCisraG9zdF92ZW5kb3I9JDIK KytzaGlmdDsgc2hpZnQKKysjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBp cyB1c2VkIHRvIGNyZWF0ZSAkKiwKKysjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6CisraG9zdF9v cz0kKgorK0lGUz0kYWNfc2F2ZV9JRlMKKytjYXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9 YGVjaG8gIiRob3N0X29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYworKworKworK2Nhc2UgJGhv c3QgaW4KKysgICotKi1tc2RvcyogfCAqLSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3ln d2luKiB8ICotKi13aW5kb3dzKikKKysgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJl ZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVu CisrICBlbmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAg IGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7CisrICAg IG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7CisrICAgICopCisrICAgICAgZW5hYmxlX3NoYXJlZD1u bworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUg Y29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0i JHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRv CisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgor KwkgIGVuYWJsZV9zaGFyZWQ9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0 X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc2hhcmVk PW5vCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAgIyBDaGVjayB3aGV0aGVy IC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3Nl dH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9zdGF0aWM7IHA9JHtQQUNLQUdF LWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zdGF0 aWM9eWVzIDs7CisrICAgIG5vKSBlbmFibGVfc3RhdGljPW5vIDs7CisrICAgICopCisrICAgICBl bmFibGVfc3RhdGljPW5vCisrICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBX ZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZz PSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4g JGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9 ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX3N0YXRpYz15ZXMKKysJZmkKKysgICAgICBkb25lCisr ICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysg IGVuYWJsZV9zdGF0aWM9eWVzCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAg OzsKKysgICopCisrICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFyZWQgd2FzIGdpdmVu LgorK2lmIHRlc3QgIiR7ZW5hYmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxl dmFsPSRlbmFibGVfc2hhcmVkOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFi bGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxl X3NoYXJlZD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAj IExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0 IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRI X1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRs dF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVf c2hhcmVkPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIK KysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3NoYXJlZD15ZXMKKytmaQor KworKworKworKworKworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysg IGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2Fz ZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysgICAgbm8p IGVuYWJsZV9zdGF0aWM9bm8gOzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9bm8KKysg ICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1v biBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZT fSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJ RlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBl bmFibGVfc3RhdGljPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZl X2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3N0YXRpYz1ubwor K2ZpCisrCisrCisrCisrCisrCisrCisrICAgIDs7CisrZXNhYworKworKyMgQ2hlY2tzIGZvciBw cm9ncmFtcworK3NhdmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIKKythY19leHQ9Y3BwCisrYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKytpZiB0 ZXN0IC16ICIkQ1hYIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJENDQyI7IHRoZW4KKysgICAgQ1hY PSRDQ0MKKysgIGVsc2UKKysgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgor KyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0Mg S0NDIFJDQyB4bENfciB4bEMKKysgIGRvCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0k MgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KKysgIGFjX2N2 X3Byb2dfQ1hYPSIkQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrZmkKKytmaQorK0NYWD0kYWNfY3ZfcHJvZ19DWFgKKytpZiB0ZXN0IC1uICIkQ1hYIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWCIgPiY1CisrJGFz X2VjaG8gIiRDWFgiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAg IHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkQ1hY IjsgdGhlbgorKyAgYWNfY3RfQ1hYPSRDWFgKKysgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3Bw IGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCisrZG8KKysgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KKysg IGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlk ZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNf ZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX3Byb2ciCisrICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0NYWD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKKytp ZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfQ1hY IiAmJiBicmVhaworK2RvbmUKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4K KysgICAgQ1hYPSJnKysiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytl c2FjCisrICAgIENYWD0kYWNfY3RfQ1hYCisrICBmaQorK2ZpCisrCisrICBmaQorK2ZpCisrIyBQ cm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgorKyRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKKytz ZXQgWCAkYWNfY29tcGlsZQorK2FjX2NvbXBpbGVyPSQyCisreyAoYWNfdHJ5PSIkYWNfY29tcGls ZXIgLS12ZXJzaW9uID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlciAtLXZlcnNpb24gPiY1IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0KKyt7IChhY190cnk9IiRhY19jb21waWxlciAtdiA+JjUiCisrY2FzZSAiKCgkYWNfdHJ5 IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKKysgIChldmFsICIkYWNfY29tcGlsZXIgLXYgPiY1IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/ CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0KKyt7IChhY190cnk9IiRhY19jb21waWxlciAtViA+JjUiCisr Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KKysKKytjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7 CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xl YW5fZmlsZXMKKythY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEub3V0LmRT WU0gYS5leGUgYi5vdXQiCisrIyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAt byBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgorKyMgSXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJy b2tlbiBjb21waWxlcnMsIGFuZCBmaW5kaW5nIG91dCBhbiBpbnR1aXRpb24KKysjIG9mIGV4ZWV4 dC4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxl ciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBDKysgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICIgPiY2OyB9CisrYWNf bGlua19kZWZhdWx0PWAkYXNfZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3Rb XiBdKi8vJ2AKKysKKysjIFRoZSBwb3NzaWJsZSBvdXRwdXQgZmlsZXM6CisrYWNfZmlsZXM9ImEu b3V0IGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBhLmV4ZSBhX291dC5leGUgYi5vdXQgY29uZnRlc3Qu KiIKKysKKythY19ybWZpbGVzPQorK2ZvciBhY19maWxlIGluICRhY19maWxlcworK2RvCisrICBj YXNlICRhY19maWxlIGluCisrICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8 ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8 ICoubyB8ICoub2JqICkgOzsKKysgICAgKiApIGFjX3JtZmlsZXM9IiRhY19ybWZpbGVzICRhY19m aWxlIjs7CisrICBlc2FjCisrZG9uZQorK3JtIC1mICRhY19ybWZpbGVzCisrCisraWYgeyAoYWNf dHJ5PSIkYWNfbGlua19kZWZhdWx0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmtfZGVmYXVsdCIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 OyB0aGVuCisrICAjIEF1dG9jb25mLTIuMTMgY291bGQgc2V0IHRoZSBhY19jdl9leGVleHQgdmFy aWFibGUgdG8gYG5vJy4KKysjIFNvIGlnbm9yZSBhIHZhbHVlIG9mIGBubycsIG90aGVyd2lzZSB0 aGlzIHdvdWxkIGxlYWQgdG8gYEVYRUVYVCA9IG5vJworKyMgaW4gYSBNYWtlZmlsZS4gIFdlIHNo b3VsZCBub3Qgb3ZlcnJpZGUgYWNfY3ZfZXhlZXh0IGlmIGl0IHdhcyBjYWNoZWQsCisrIyBzbyB0 aGF0IHRoZSB1c2VyIGNhbiBzaG9ydC1jaXJjdWl0IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJzIHVu a25vd24gdG8KKysjIEF1dG9jb25mLgorK2ZvciBhY19maWxlIGluICRhY19maWxlcyAnJworK2Rv CisrICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKKysgIGNhc2UgJGFjX2ZpbGUgaW4K KysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0g fCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKQor Kwk7OworKyAgICBbYWJdLm91dCApCisrCSMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJs ZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0CisrCSMgY2VydGFpbmx5IHJpZ2h0LgorKwlicmVhazs7 CisrICAgICouKiApCisrICAgICAgICBpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNl dCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAhPSBubzsKKysJdGhlbiA6OyBlbHNlCisrCSAgIGFj X2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAorKwlmaQorKwkj IFdlIHNldCBhY19jdl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBp cyBub3QKKysJIyBzYWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBp ZiBnaXZlbiBhbiBgLW8nCisrCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQg YXQgdGhhdCBwb2ludCBhbHJlYWR5LgorKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNy dWZ0eTogaXQgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YKKysJIyBhY3R1YWxseSB3b3JraW5nLgorKwli cmVhazs7CisrICAgICogKQorKwlicmVhazs7CisrICBlc2FjCisrZG9uZQorK3Rlc3QgIiRhY19j dl9leGVleHQiID0gbm8gJiYgYWNfY3ZfZXhlZXh0PQorKworK2Vsc2UKKysgIGFjX2ZpbGU9JycK KytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+ JjUKKyskYXNfZWNobyAiJGFjX2ZpbGUiID4mNjsgfQorK2lmIHRlc3QgLXogIiRhY19maWxlIjsg dGhlbgorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworK3sgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBDKysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogQysrIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKKytTZWUgXGBjb25m aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDc3KTsgZXhpdCA3 NzsgfTsgfTsgfQorK2ZpCisrCisrYWNfZXhlZXh0PSRhY19jdl9leGVleHQKKysKKysjIENoZWNr IHRoYXQgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBu b3QsIGVpdGhlcgorKyMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGls ZS4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysr IGNvbXBpbGVyIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBD KysgY29tcGlsZXIgd29ya3MuLi4gIiA+JjY7IH0KKysjIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21w aWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4wCisrIyBJZiBub3Qg Y3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4K KytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KKysgIGlmIHsgYWNfdHJ5 PScuLyRhY19maWxlJworKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfdHJ5 IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysg ICAgY3Jvc3NfY29tcGlsaW5nPW5vCisrICBlbHNlCisrICAgIGlmIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0gbWF5YmU7IHRoZW4KKysJY3Jvc3NfY29tcGlsaW5nPXllcworKyAgICBlbHNlCisr CXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMrKyBjb21waWxlZCBw cm9ncmFtcy4KKytJZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4K KytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBpbGVkIHByb2dyYW1zLgorK0lmIHlvdSBt ZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgorK1NlZSBcYGNvbmZpZy5sb2cn IGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsg fQorKyAgICBmaQorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrcm0gLWYgLXIgYS5vdXQg YS5vdXQuZFNZTSBhLmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKKythY19jbGVhbl9m aWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQorKyMgQ2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJv ZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCisrIyB0aGUgY29t cGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAi ID4mNjsgfQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcm9zc19jb21w aWxpbmciID4mNQorKyRhc19lY2hvICIkY3Jvc3NfY29tcGlsaW5nIiA+JjY7IH0KKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxl cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4u LiAiID4mNjsgfQorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK KysgIChldmFsICIkYWNfbGluayIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9OyB0aGVuCisrICAjIElmIGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcg YXJlIGBwcmVzZW50JyAod2VsbCwgb2JzZXJ2YWJsZSkKKysjIGNhdGNoIGBjb25mdGVzdC5leGUn LiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdpbGwKKysjIHdvcmsg cHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qg d2l0aAorKyMgYHJtJy4KKytmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5leGUgY29uZnRlc3QgY29u ZnRlc3QuKjsgZG8KKysgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQorKyAgY2FzZSAk YWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBk YiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8g fCAqLm9iaiApIDs7CisrICAgICouKiApIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDog J1teLl0qXChcLi4qXCknYAorKwkgIGJyZWFrOzsKKysgICAgKiApIGJyZWFrOzsKKysgIGVzYWMK Kytkb25lCisrZWxzZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBj b21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKKytT ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNv bXBpbGUgYW5kIGxpbmsKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYy O30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKytmaQorKworK3JtIC1mIGNvbmZ0 ZXN0JGFjX2N2X2V4ZWV4dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19jdl9leGVleHQiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KKysKKyty bSAtZiBjb25mdGVzdC4kYWNfZXh0CisrRVhFRVhUPSRhY19jdl9leGVleHQKKythY19leGVleHQ9 JEVYRUVYVAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4 IG9mIG9iamVjdCBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBv ZiBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNF T0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4g KCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRl c3QubyBjb25mdGVzdC5vYmoKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigo JGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8K KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgZm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QubyBj b25mdGVzdC5vYmogY29uZnRlc3QuKjsgZG8KKysgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250 aW51ZTsKKysgIGNhc2UgJGFjX2ZpbGUgaW4KKysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICou dGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5m IHwgKi5kU1lNICkgOzsKKysgICAgKikgYWNfY3Zfb2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAn LipcLlwoLipcKSdgCisrICAgICAgIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQor K1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90 IGNvbXBpbGUKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LiRh Y19jdl9vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X29iamV4dCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9vYmpl eHQiID4mNjsgfQorK09CSkVYVD0kYWNfY3Zfb2JqZXh0CisrYWNfb2JqZXh0PSRPQkpFWFQKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcg dGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg d2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9jeHhfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysjaWZuZGVmIF9fR05VQ19fCisr ICAgICAgIGNob2tlIG1lCisrI2VuZGlmCisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2NvbXBpbGVyX2dudT15ZXMKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2NvbXBpbGVyX2dudT1ubworK2Zp CisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0CisrYWNfY3ZfY3h4X2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251CisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBp bGVyX2dudSIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0K KytpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KKysgIEdYWD15ZXMKKytlbHNl CisrICBHWFg9CisrZmkKKythY190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQorK2FjX3Nh dmVfQ1hYRkxBR1M9JENYWEZMQUdTCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyICRDWFggYWNjZXB0cyAtZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19jeHhfZytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBhY19zYXZlX2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCisr ICAgYWNfY3h4X3dlcnJvcl9mbGFnPXllcworKyAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KKysgICBD WFhGTEFHUz0iLWciCisrICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29u ZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9wcm9nX2N4eF9nPXllcworK2Vs c2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJQ1hYRkxBR1M9IiIKKysgICAgICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNF T0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4g KCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFj X2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKKysJIENYWEZMQUdTPSIt ZyIKKysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50 CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAor KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorKworK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2Zp CisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0CisrICAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxh ZworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2df Y3h4X2ciID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2OyB9CisraWYgdGVz dCAiJGFjX3Rlc3RfQ1hYRkxBR1MiID0gc2V0OyB0aGVuCisrICBDWFhGTEFHUz0kYWNfc2F2ZV9D WFhGTEFHUworK2VsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsgdGhlbgorKyAgaWYg dGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgQ1hYRkxBR1M9Ii1nIC1PMiIKKysgIGVsc2UK KysgICAgQ1hYRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR1hYIiA9IHll czsgdGhlbgorKyAgICBDWFhGTEFHUz0iLU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFHUz0KKysg IGZpCisrZmkKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGls ZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2Nv bXBpbGVyX2dudQorK0RFUERJUj0iJHthbV9fbGVhZGluZ19kb3R9ZGVwcyIKKysKKythY19jb25m aWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMgZGVwZmlsZXMiCisrCisrCisrYW1fbWFr ZT0ke01BS0UtbWFrZX0KKytjYXQgPiBjb25maW5jIDw8ICdFTkQnCisrYW1fX2RvaXQ6CisrCUBl Y2hvIGRvbmUKKysuUEhPTlk6IGFtX19kb2l0CisrRU5ECisrIyBJZiB3ZSBkb24ndCBmaW5kIGFu IGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5 ICRhbV9tYWtlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVk ZSB1c2VkIGJ5ICRhbV9tYWtlLi4uICIgPiY2OyB9CisrYW1fX2luY2x1ZGU9IiMiCisrYW1fX3F1 b3RlPQorK19hbV9yZXN1bHQ9bm9uZQorKyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1 ZGUuCisrZWNobyAiaW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgorKyMgV2UgZ3JlcCBvdXQgYEVu dGVyaW5nIGRpcmVjdG9yeScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKKysjIG1lc3NhZ2VzIHdo aWNoIGNhbiBvY2N1ciBpZiBgdycgZW5kcyB1cCBpbiBNQUtFRkxBR1MuCisrIyBJbiBwYXJ0aWN1 bGFyIHdlIGRvbid0IGxvb2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAorKyMg YmUgaW52b2tlZCB1bmRlciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdo aWNoCisrIyBjYXNlIGl0IHByaW50cyBpdHMgbmV3IG5hbWUgaW5zdGVhZCBvZiBgbWFrZScuCisr aWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdp bmcgZGlyZWN0b3J5J2AiID0gImRvbmUiOyB0aGVuCisrICAgYW1fX2luY2x1ZGU9aW5jbHVkZQor KyAgIGFtX19xdW90ZT0KKysgICBfYW1fcmVzdWx0PUdOVQorK2ZpCisrIyBOb3cgdHJ5IEJTRCBt YWtlIHN0eWxlIGluY2x1ZGUuCisraWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgor KyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKKysgICBpZiB0ZXN0ICJgJGFt X21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAiID0gImRvbmUiOyB0aGVuCisrICAgICAg YW1fX2luY2x1ZGU9LmluY2x1ZGUKKysgICAgICBhbV9fcXVvdGU9IlwiIgorKyAgICAgIF9hbV9y ZXN1bHQ9QlNECisrICAgZmkKKytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRfYW1fcmVzdWx0IiA+JjUKKyskYXNfZWNobyAiJF9hbV9yZXN1bHQiID4mNjsg fQorK3JtIC1mIGNvbmZpbmMgY29uZm1mCisrCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRl cGVuZGVuY3ktdHJhY2tpbmcgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVu Y3lfdHJhY2tpbmcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVu ZGVuY3lfdHJhY2tpbmc7CisrZmkKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAi CisrICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRl bmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIEFNREVQX1RSVUU9CisrICBBTURFUF9GQUxT RT0nIycKKytlbHNlCisrICBBTURFUF9UUlVFPScjJworKyAgQU1ERVBfRkFMU0U9CisrZmkKKysK KysKKysKKytkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9CisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4K KysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNl IHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25v dyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisrICAjIGluc3RhbmNlIGl0IHdhcyByZXBv cnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAorKyAgIyBtYWtpbmcg YSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91 dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAgIyBDb3B5IGRlcGNv bXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUK KysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisrICBjcCAiJGFtX2RlcGNvbXAiIGNv bmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3QuZGlyCisrICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0 cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKKysgICMgaXQgaGVs cHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNl CisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBl bmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3 aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisrICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3 aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKKysgICMgZGlyZWN0b3J5Lgor KyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9 bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFt X2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAu L2RlcGNvbXBgCisrICBmaQorKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRv CisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBz b21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3Rz IG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2Ug YSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAj IFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNv bXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdp dGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3 aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZv ciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRp Jy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3Qk aS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4 J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRv bmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBv JHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICBjYXNlICRkZXBtb2RlIGluCisrICAgIG5v c2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3Qg Ynkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4 cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90 cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhawor KyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAg ICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNo bXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysg Y29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdl IG5lZWQgdG8gZGV0ZWN0IHRoaXMuCisrICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAorKyAgICAg ICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBc CisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0 LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVz dC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCisrICAgICAgICAgPi9kZXYvbnVsbCAyPmNv bmZ0ZXN0LmVyciAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5Q byA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2Nv bmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRlc3Qu JHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAg JHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAg IyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1 ZSB3YXJuaW5ncworKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28g d2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCisrICAgICAgIyB0aGF0IHNheXMgYW4gb3B0 aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCisrICAgICAgIyBXaGVuIGdpdmVuIC1N UCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKKysgICAgICAjICAgaWNjOiBDb21t YW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVp cmVkCisrICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKysgICAgICAj ICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAor KyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAorKyAgICAg ICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsg dGhlbiA6OyBlbHNlCisrICAgICAgICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGU9JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisrICAgICAgZmkKKysgICAgZmkKKysgIGRvbmUK KysKKysgIGNkIC4uCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrZWxzZQorKyAgYW1fY3ZfQ1hY X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKytmaQorKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZSIgPiY1CisrJGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVy X3R5cGUiID4mNjsgfQorK0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlCisrCisrIGlmCisrICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nIiAhPSB4bm8gXAorKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCisrICBhbV9fZmFzdGRlcENYWF9UUlVFPQorKyAgYW1f X2Zhc3RkZXBDWFhfRkFMU0U9JyMnCisrZWxzZQorKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycK KysgIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFPQorK2ZpCisrCisrCisrYWNfZXh0PWNwcAorK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVw cm9jZXNzb3IiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBw cmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgorKyAg aWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWENQUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1 c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4cGFuZGVkCisrICAgIGZvciBDWFhDUFAgaW4gIiRDWFgg LUUiICIvbGliL2NwcCIKKysgICAgZG8KKysgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCisrZm9y IGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBoZWFk ZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAgIyB3 aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRzLmg+ IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxpbWl0 cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0aGUg TmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwK KysgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0 Y2ggdGhpcyBjYXNlLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29u ZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisrIyBp bmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAgU3ludGF4IGVycm9yCisrX0FDRU9G CisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVy MQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9w cmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGlu dWUKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAj IE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQg aGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+ CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAi JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNjZXNz IG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2Jy ZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2Rv bmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcg Y29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAor K2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICBicmVhaworK2ZpCisrCisrICAgIGRvbmUKKysg ICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAorKworK2ZpCisrICBDWFhDUFA9JGFjX2N2X3By b2dfQ1hYQ1BQCisrZWxzZQorKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAorK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWENQUCIgPiY1CisrJGFzX2VjaG8g IiRDWFhDUFAiID4mNjsgfQorK2FjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXBy 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 b2Nfb2s7IHRoZW4KKysgIDoKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiYyO30KKyt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytTZWUg XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IEMrKyBwcmVwcm9jZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCisr U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9OyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFH UyIKKysjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3Jh bSAoZmFzdGVyKSwKKysjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0 IGF2b2lkIHRoZSBicm9rZW4gb3IKKysjIGluY29tcGF0aWJsZSB2ZXJzaW9uczoKKysjIFN5c1Yg L2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFsbAorKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFs bAorKyMgSVJJWCAvc2Jpbi9pbnN0YWxsCisrIyBBSVggL2Jpbi9pbnN0YWxsCisrIyBBbWlnYU9T IC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCisr IyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBh IC1nIGZsYWcKKysjIEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVz IG5vbmV4aXN0ZW50IGFyZ3MKKysjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMg dG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCisrIyBPUy8yJ3Mgc3lzdGVtIGlu c3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljCisrIyAuL2lu c3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2lu c3RhbGwuc2guCisrIyBSZWplY3QgaW5zdGFsbCBwcm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxs IG11bHRpcGxlIGZpbGVzLgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICIgPiY2OyB9CisraWYgdGVzdCAteiAiJElO U1RBTEwiOyB0aGVuCisraWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbwor KyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysg ICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVs ZW1lbnRzLgorK2Nhc2UgJGFzX2Rpci8gaW4KKysgIC4vIHwgLi8vIHwgL2NDLyogfCBcCisrICAv ZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9i aW4vKiB8IFwKKysgID86XFwvb3MyXFwvaW5zdGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExc XC8qIHwgXAorKyAgL3Vzci91Y2IvKiApIDs7CisrICAqKQorKyAgICAjIE9TRjEgYW5kIFNDTyBP RFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgorKyAgICAjIERvbid0IHVz ZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKKysg ICAgIyBieSBkZWZhdWx0LgorKyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGlu c3RhbGw7IGRvCisrICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrCWlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4K KysJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorKwkgICAgZ3JlcCBkc3Btc2cgIiRh c19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkgICAg IyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9u LgorKwkgICAgOgorKwkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdy ZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQ IHB3cGx1cy0tZG9uJ3QgdXNlLgorKwkgICAgOgorKwkgIGVsc2UKKysJICAgIHJtIC1yZiBjb25m dGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgorKwkgICAgZWNobyBvbmUgPiBjb25m dGVzdC5vbmUKKysJICAgIGVjaG8gdHdvID4gY29uZnRlc3QudHdvCisrCSAgICBta2RpciBjb25m dGVzdC5kaXIKKysJICAgIGlmICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25m dGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdkYC9jb25mdGVzdC5kaXIiICYmCisrCSAgICAgIHRl c3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3QgLXMgY29uZnRlc3QudHdvICYmCisrCSAgICAgIHRl c3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm9uZSAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0 ZXN0LmRpci9jb25mdGVzdC50d28KKysJICAgIHRoZW4KKysJICAgICAgYWNfY3ZfcGF0aF9pbnN0 YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgorKwkgICAgICBicmVhayAzCisr CSAgICBmaQorKwkgIGZpCisrCWZpCisrICAgICAgZG9uZQorKyAgICBkb25lCisrICAgIDs7Cisr ZXNhYworKworK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrcm0gLXJmIGNvbmZ0ZXN0Lm9u ZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCisrCisrZmkKKysgIGlmIHRlc3QgIiR7YWNfY3Zf cGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisrICAgIElOU1RBTEw9JGFjX2N2X3BhdGhf aW5zdGFsbAorKyAgZWxzZQorKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBz aGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCisrICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0 aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBv dGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAg IyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICBJTlNU QUxMPSRhY19pbnN0YWxsX3NoCisrICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJElOU1RBTEwiID4mNQorKyRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Cisr CisrIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAk e3Zhci12YWx9LgorKyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2 YXJpYWJsZSBzdWJzdGl0dXRpb24uCisrdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5T VEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIg JiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCisrCisrdGVzdCAteiAiJElOU1RBTExfREFU QSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKKysKKytjYXNlIGBwd2RgIGlu CisrICAqXCAqIHwgKlwJKikKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6IExpYnRvb2wgZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBcYHB3ZFxg IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBMaWJ0b29sIGRvZXMgbm90IGNvcGUg d2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gXGBwd2RcYCIgPiYyO30gOzsKKytlc2FjCisrCisrCisr CisrbWFjcm9fdmVyc2lvbj0nMi4yLjYnCisrbWFjcm9fcmV2aXNpb249JzEuMzAxMicKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytsdG1haW49IiRhY19hdXhfZGlyL2x0 bWFpbi5zaCIKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29t cGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2Fj X2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9j X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJl Zml4fWdjYzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ0Mi OyB0aGVuCisrICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr Zm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi OyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2ZpCisrZmkKKytDQz0kYWNfY3ZfcHJvZ19DQworK2lmIHRlc3QgLW4gIiRD QyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1 CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysK KytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgorKyAgYWNfY3RfQ0M9JEND CisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBhY19j dl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImdjYyIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKKytpZiB0ZXN0IC1uICIkYWNf Y3RfQ0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfQ0MiID4mNQorKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KKysgICAgQ0M9 IiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBp bgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ0M9 JGFjX2N0X0NDCisrICBmaQorK2Vsc2UKKysgIENDPSIkYWNfY3ZfcHJvZ19DQyIKKytmaQorKwor K2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKysgICAgICAgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IjsgdGhlbgorKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3Nl dCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWNjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0ND K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNf c2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190 b29sX3ByZWZpeH1jYyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25l CisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ0M9JGFjX2N2X3Byb2df Q0MKKytpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkQ0MiID4mNQorKyRhc19lY2hvICIkQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8i ID4mNjsgfQorK2ZpCisrCisrCisrICBmaQorK2ZpCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorKyAgYWNfcHJvZ19yZWpl Y3RlZD1ubworK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91 Y2IvY2MiOyB0aGVuCisrICAgICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCisrICAgICAgIGNvbnRp bnVlCisrICAgICBmaQorKyAgICBhY19jdl9wcm9nX0NDPSJjYyIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytp ZiB0ZXN0ICRhY19wcm9nX3JlamVjdGVkID0geWVzOyB0aGVuCisrICAjIFdlIGZvdW5kIGEgYm9n b24gaW4gdGhlIHBhdGgsIHNvIG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2UgaXQuCisrICBzZXQgZHVt bXkgJGFjX2N2X3Byb2dfQ0MKKysgIHNoaWZ0CisrICBpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKysg ICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCisr ICAgICMgSG93ZXZlciwgaXQgaGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2ls bCBiZSBjaG9zZW4KKysgICAgIyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5h bWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5hbWUuCisrICAgIHNoaWZ0CisrICAgIGFjX2N2X3Byb2df Q0M9IiRhc19kaXIvJGFjX3dvcmQkezErJyAnfSRAIgorKyAgZmkKKytmaQorK2ZpCisrZmkKKytD Qz0kYWNfY3ZfcHJvZ19DQworK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQor KyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7 IHRoZW4KKysgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgIGZvciBhY19w cm9nIGluIGNsLmV4ZQorKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk YWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIGFjX2N2X3Byb2df Q0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisr ZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u CisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K KysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3Zf cHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytm aQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+ JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgICB0ZXN0IC1uICIkQ0Mi ICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisrICBhY19j dF9DQz0kQ0MKKysgIGZvciBhY19wcm9nIGluIGNsLmV4ZQorK2RvCisrICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2df YWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19h Y19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytl bHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgor KyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAg YnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQor K2ZpCisrYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKKytpZiB0ZXN0IC1uICIkYWNfY3Rf Q0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Rf Q0MiID4mNQorKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCisrZG9uZQorKwor KyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCisrICAgIENDPSIiCisrICBlbHNlCisr ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIENDPSRhY19jdF9DQworKyAg ZmkKKytmaQorKworK2ZpCisrCisrCisrdGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKyt7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAor K1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAorK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfTsgfQorKworKyMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBjb21waWxlci4KKyskYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNv bXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIK Kyt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12 ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUi KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0i JGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19j b21waWxlciAtViA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFy ZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfY19jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18K KysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2NvbXBpbGVyX2dudT15ZXMKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2NvbXBpbGVyX2dudT1ubworK2Zp CisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0CisrYWNfY3ZfY19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQorKworK2Zp CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJf Z251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KKytpZiB0 ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KKysgIEdDQz15ZXMKKytlbHNlCisrICBH Q0M9CisrZmkKKythY190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9CisrYWNfc2F2ZV9DRkxBR1M9 JENGTEFHUworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRD QyBhY2NlcHRzIC1nIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2Nl cHRzIC1nLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfc2F2 ZV9jX3dlcnJvcl9mbGFnPSRhY19jX3dlcnJvcl9mbGFnCisrICAgYWNfY193ZXJyb3JfZmxhZz15 ZXMKKysgICBhY19jdl9wcm9nX2NjX2c9bm8KKysgICBDRkxBR1M9Ii1nIgorKyAgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sK KysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K KysgIGFjX2N2X3Byb2dfY2NfZz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrCUNGTEFHUz0iIgorKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3Jf ZmxhZworKwkgQ0ZMQUdTPSItZyIKKysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY2NfZz15ZXMK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytm aQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9j X3dlcnJvcl9mbGFnCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfcHJvZ19jY19nIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfZyIgPiY2OyB9 CisraWYgdGVzdCAiJGFjX3Rlc3RfQ0ZMQUdTIiA9IHNldDsgdGhlbgorKyAgQ0ZMQUdTPSRhY19z YXZlX0NGTEFHUworK2VsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCisrICBp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBDRkxBR1M9Ii1nIC1PMiIKKysgIGVsc2UK KysgICAgQ0ZMQUdTPSItZyIKKysgIGZpCisrZWxzZQorKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysgICAgQ0ZMQUdTPSItTzIiCisrICBlbHNlCisrICAgIENGTEFHUz0KKysgIGZpCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24g dG8gYWNjZXB0IElTTyBDODkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0 aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9n X2NjX2M4OStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBhY19jdl9wcm9nX2NjX2M4OT1ubworK2FjX3NhdmVfQ0M9JENDCisrY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkYXJnLmg+ CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKyNpbmNsdWRl IDxzeXMvc3RhdC5oPgorKy8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVu IGZyb20gUkNTIDUuNydzIHNyYy9jb25mLnNoLiAgKi8KKytzdHJ1Y3QgYnVmIHsgaW50IHg7IH07 CisrRklMRSAqICgqcmNzb3BlbikgKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsK KytzdGF0aWMgY2hhciAqZSAocCwgaSkKKysgICAgIGNoYXIgKipwOworKyAgICAgaW50IGk7Cisr eworKyAgcmV0dXJuIHBbaV07CisrfQorK3N0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hh ciAqKiwgaW50KSwgY2hhciAqKnAsIC4uLikKKyt7CisrICBjaGFyICpzOworKyAgdmFfbGlzdCB2 OworKyAgdmFfc3RhcnQgKHYscCk7CisrICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOworKyAg dmFfZW5kICh2KTsKKysgIHJldHVybiBzOworK30KKysKKysvKiBPU0YgNC4wIENvbXBhcSBjYyBp cyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcworKyAgIGZ1bmN0 aW9uIHByb3RvdHlwZXMgYW5kIHN0dWZmLCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNv bnN0YW50cy4KKysgICBUaGVzZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHks IGluc3RlYWQgYXJlIHNpbGVudGx5IHRyZWF0ZWQKKysgICBhcyAneCcuICBUaGUgZm9sbG93aW5n IGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQgaXMgYWRkZWQgdG8gZ2V0CisrICAgcHJvcGVy IEFOU0kgbW9kZS4gIEN1cmlvdXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUs IGZvciBhbgorKyAgIGFycmF5IHNpemUgYXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0 ZSAnXHgwMCc9PTAgdG8gZ2V0IHNvbWV0aGluZworKyAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAt c3RkLiAgKi8KKytpbnQgb3NmNF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOworKwor Ky8qIElCTSBDIDYgZm9yIEFJWCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVw bGFjZXMgbWFjcm8gcGFyYW1ldGVycworKyAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIg Y29uc3RhbnRzLiAgKi8KKysjZGVmaW5lIEZPTyh4KSAneCcKKytpbnQgeGxjNl9jY19hcnJheVtG T08oYSkgPT0gJ3gnID8gMSA6IC0xXTsKKysKKytpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsK KytzdHJ1Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsKKytzdHJ1Y3QgczIge2ludCAoKmYpIChk b3VibGUgYSk7fTsKKytpbnQgcGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1 Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCksIGludCwgaW50KTsKKytpbnQgYXJnYzsKKytj aGFyICoqYXJndjsKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBmIChlLCBhcmd2LCAwKSAh PSBhcmd2WzBdICB8fCAgZiAoZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytmb3IgYWNfYXJnIGluICcnIC1xbGFuZ2x2bD1leHRjODkgLXFs YW5nbHZsPWFuc2kgLXN0ZCBcCisrCS1BZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19F WFRFTlNJT05TX18iCisrZG8KKysgIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgorKyAgcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCisrICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dAorKyAgdGVzdCAieCRhY19jdl9wcm9nX2NjX2M4OSIgIT0g InhubyIgJiYgYnJlYWsKKytkb25lCisrcm0gLWYgY29uZnRlc3QuJGFjX2V4dAorK0NDPSRhY19z YXZlX0NDCisrCisrZmkKKysjIEFDX0NBQ0hFX1ZBTAorK2Nhc2UgIngkYWNfY3ZfcHJvZ19jY19j ODkiIGluCisrICB4KQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu b25lIG5lZWRlZCIgPiY1CisrJGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKKysgIHhu bykKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogdW5zdXBwb3J0ZWQi ID4mNQorKyRhc19lY2hvICJ1bnN1cHBvcnRlZCIgPiY2OyB9IDs7CisrICAqKQorKyAgICBDQz0i JENDICRhY19jdl9wcm9nX2NjX2M4OSIKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2df Y2NfYzg5IiA+JjY7IH0gOzsKKytlc2FjCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytkZXBjYz0iJENDIiAgIGFtX2Nv bXBpbGVyX2xpc3Q9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRl cGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBkZXBl bmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YW1fY3ZfQ0Nf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYm IHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgorKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBk byB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAorKyAgIyBtYWtpbmcg Ym9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBG b3IKKysgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0 ZXN0IHdpbGwgZW5kIHVwCisrICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJl Y2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0CisrICAjIGluIEQnLgorKyAgbWtkaXIg Y29uZnRlc3QuZGlyCisrICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndp c2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQorKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVj dG9yeS4KKysgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisrICBjZCBjb25mdGVzdC5k aXIKKysgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJk aXJlY3RvcnkgYmVjYXVzZQorKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRl cGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKKysgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJ Q0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisrICAjIHNpZGUgZWZm ZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4K KysgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4g dGhlIG9iamVjdAorKyAgIyBkaXJlY3RvcnkuCisrICBta2RpciBzdWIKKysKKysgIGFtX2N2X0ND X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRhbV9jb21waWxl cl9saXN0IiA9ICIiOyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMq XChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGZvciBkZXBt b2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbworKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGgg bWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKysgICAgIyBsaWtlIHRv IHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAor KyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1 c2VkIGJ5IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZp bGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKKysgICAgIyBvdmVyd3JpdGUg c29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KKysg ICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisrICAg IDogPiBzdWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KKysgICAg ICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisrICAg ICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0 MS5oIHdpdGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgorKyAgICAgIHRv dWNoIHN1Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisrICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9 ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKKysKKysg ICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBub3NpZGVlZmZlY3QpCisrICAgICAgIyBhZnRlciB0 aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisr ICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAorKyAgICAgIGlm IHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgorKwljb250 aW51ZQorKyAgICAgIGVsc2UKKysJYnJlYWsKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIG5v bmUpIGJyZWFrIDs7CisrICAgIGVzYWMKKysgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAt bycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCisrICAgICMgbW9kZS4gIEl0IHR1 cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Cisr ICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgorKyAgICBp ZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVj dD1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gXAorKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVz dC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorKyAgICAgICAkU0hFTEwgLi9kZXBj b21wICRkZXBjYyAtYyAtbyBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMg XAorKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKKysgICAgICAgZ3JlcCBz dWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAg ICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm CisrICAgICAgIGdyZXAgc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5QbyA+ IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAv ZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93 biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFy a3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2Fn ZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9y dGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0 aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9w dGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBj aGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazog b3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0 aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29u ZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3Zf Q0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisr ICAgICAgZmkKKysgICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAtcmYgY29uZnRl c3QuZGlyCisrZWxzZQorKyAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9u ZQorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1f Y3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQorKyRhc19lY2hvICIkYW1fY3Zf Q0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQorK0NDREVQTU9ERT1kZXBtb2Rl PSRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZQorKworKyBpZgorKyAgdGVzdCAi eCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9j dl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCisrICBhbV9fZmFz dGRlcENDX1RSVUU9CisrICBhbV9fZmFzdGRlcENDX0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19m YXN0ZGVwQ0NfVFJVRT0nIycKKysgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9CisrZmkKKysKKysKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBu b3QgdHJ1bmNhdGUgb3V0cHV0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQg dGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3BhdGhfU0VEK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgICAgICAgICAgICBhY19zY3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYS9iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIvCisrICAg ICBmb3IgYWNfaSBpbiAxIDIgMyA0IDUgNiA3OyBkbworKyAgICAgICBhY19zY3JpcHQ9IiRhY19z Y3JpcHQkYXNfbmwkYWNfc2NyaXB0IgorKyAgICAgZG9uZQorKyAgICAgZWNobyAiJGFjX3Njcmlw dCIgMj4vZGV2L251bGwgfCBzZWQgOTlxID5jb25mdGVzdC5zZWQKKysgICAgICRhc191bnNldCBh Y19zY3JpcHQgfHwgYWNfc2NyaXB0PQorKyAgICAgaWYgdGVzdCAteiAiJFNFRCI7IHRoZW4KKysg IGFjX3BhdGhfU0VEX2ZvdW5kPWZhbHNlCisrICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBh dGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAorKyAgYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19wcm9nIGluIHNlZCBnc2VkOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX1NFRD0iJGFzX2Rpci8kYWNf cHJvZyRhY19leGVjX2V4dCIKKysgICAgICB7IHRlc3QgLWYgIiRhY19wYXRoX1NFRCIgJiYgJGFz X3Rlc3RfeCAiJGFjX3BhdGhfU0VEIjsgfSB8fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBh Y19wYXRoX1NFRCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3Ig R05VICRhY19wYXRoX1NFRAorK2Nhc2UgYCIkYWNfcGF0aF9TRUQiIC0tdmVyc2lvbiAyPiYxYCBp bgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIgYWNfcGF0aF9TRURf Zm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIg ImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNv bmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFz X2VjaG8gJycgPj4gImNvbmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfU0VEIiAtZiBjb25mdGVz dC5zZWQgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVh aworKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYx IHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRl c3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfU0VEX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVz dCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQor KyAgICAgIGFjX2N2X3BhdGhfU0VEPSIkYWNfcGF0aF9TRUQiCisrICAgICAgYWNfcGF0aF9TRURf bWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBz ZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVh aworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5s IGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX1NFRF9mb3VuZCAmJiBi cmVhayAzCisrICAgIGRvbmUKKysgIGRvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKyAg aWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfU0VEIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4g XCRQQVRIIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBzZWQg Y291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKyAgZmkKKytlbHNlCisrICBhY19jdl9wYXRoX1NFRD0kU0VECisrZmkKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX1NFRCIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX1NFRCIgPiY2OyB9CisrIFNFRD0iJGFjX2N2X3BhdGhf U0VEIgorKyAgcm0gLWYgY29uZnRlc3Quc2VkCisrCisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNl ZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBo YW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig Z3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X3BhdGhfR1JFUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkR1JFUCI7IHRoZW4KKysgIGFjX3Bh dGhfR1JFUF9mb3VuZD1mYWxzZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFu ZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz ci94cGc0L2JpbgorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX3Byb2cgaW4gZ3JlcCBnZ3JlcDsgZG8KKysgICAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAg YWNfcGF0aF9HUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVz dCAtZiAiJGFjX3BhdGhfR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfR1JFUCI7IH0gfHwg Y29udGludWUKKysjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9HUkVQIGFuZCBzZWxlY3QgaXQgaWYg aXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfR1JFUAorK2Nhc2UgYCIk YWNfcGF0aF9HUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KKysqR05VKikKKysgIGFjX2N2X3BhdGhf R1JFUD0iJGFjX3BhdGhfR1JFUCIgYWNfcGF0aF9HUkVQX2ZvdW5kPTo7OworKyopCisrICBhY19j b3VudD0wCisrICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKKysgIHdoaWxl IDoKKysgIGRvCisrICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVz dC50bXAiCisrICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKKysgICAgY3AgImNv bmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCisrICAgICRhc19lY2hvICdHUkVQJyA+PiAiY29uZnRl c3QubmwiCisrICAgICIkYWNfcGF0aF9HUkVQIiAtZSAnR1JFUCQnIC1lICctKGNhbm5vdCBtYXRj aCktJyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFr CisrICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEg fHwgYnJlYWsKKysgICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKKysgICAgaWYgdGVz dCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9HUkVQX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVz dCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQor KyAgICAgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIKKysgICAgICBhY19wYXRoX0dS RVBfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1 dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBi cmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0 Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX0dSRVBfZm91bmQg JiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0dSRVAiOyB0aGVuCisrICAgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91 bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRI JFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9HUkVQPSRHUkVQCisrZmkKKysK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX0dS RVAiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9HUkVQIiA+JjY7IH0KKysgR1JFUD0iJGFj X2N2X3BhdGhfR1JFUCIKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIGVncmVwIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZWdyZXAuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfRUdSRVArc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgZWNobyBhIHwgJEdSRVAg LUUgJyhhfGIpJyA+L2Rldi9udWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRUdSRVA9IiRH UkVQIC1FIgorKyAgIGVsc2UKKysgICAgIGlmIHRlc3QgLXogIiRFR1JFUCI7IHRoZW4KKysgIGFj X3BhdGhfRUdSRVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0 aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRP Ui91c3IveHBnNC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGVncmVwOyBkbworKyAgICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBh Y19wYXRoX0VHUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVz dCAtZiAiJGFjX3BhdGhfRUdSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0VHUkVQIjsgfSB8 fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0VHUkVQIGFuZCBzZWxlY3QgaXQg aWYgaXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRUdSRVAKKytjYXNl IGAiJGFjX3BhdGhfRUdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3Zf cGF0aF9FR1JFUD0iJGFjX3BhdGhfRUdSRVAiIGFjX3BhdGhfRUdSRVBfZm91bmQ9Ojs7CisrKikK KysgIGFjX2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgor KyAgd2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAg ICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0VHUkVQJyA+ PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0aF9FR1JFUCIgJ0VHUkVQJCcgPCAiY29uZnRl c3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJj b25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAg IGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1n dCAke2FjX3BhdGhfRUdSRVBfbWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIs IHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3Zf cGF0aF9FR1JFUD0iJGFjX3BhdGhfRUdSRVAiCisrICAgICAgYWNfcGF0aF9FR1JFUF9tYXg9JGFj X2NvdW50CisrICAgIGZpCisrICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1v cmUgdGhhbiBlbm91Z2gKKysgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBk b25lCisrICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRl c3Qub3V0OzsKKytlc2FjCisrCisrICAgICAgJGFjX3BhdGhfRUdSRVBfZm91bmQgJiYgYnJlYWsg MworKyAgICBkb25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRl c3QgLXogIiRhY19jdl9wYXRoX0VHUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAk UEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBubyBhY2NlcHRhYmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhf U0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9FR1JFUD0kRUdSRVAKKytmaQorKworKyAg IGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0 aF9FR1JFUCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0VHUkVQIiA+JjY7IH0KKysgRUdS RVA9IiRhY19jdl9wYXRoX0VHUkVQIgorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgZmdyZXAiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBmZ3Jl cC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9GR1JFUCtzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiBlY2hvICdh YipjJyB8ICRHUkVQIC1GICdhYipjJyA+L2Rldi9udWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3Bh dGhfRkdSRVA9IiRHUkVQIC1GIgorKyAgIGVsc2UKKysgICAgIGlmIHRlc3QgLXogIiRGR1JFUCI7 IHRoZW4KKysgIGFjX3BhdGhfRkdSRVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRo ZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQ QVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGZncmVwOyBk bworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgICAgICBhY19wYXRoX0ZHUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0Igor KyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfRkdSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRo X0ZHUkVQIjsgfSB8fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0ZHUkVQIGFu ZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhf RkdSRVAKKytjYXNlIGAiJGFjX3BhdGhfRkdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUq KQorKyAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3BhdGhfRkdSRVAiIGFjX3BhdGhfRkdSRVBfZm91 bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAKKysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNv bmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNv bmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0 ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2Vj aG8gJ0ZHUkVQJyA+PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0aF9GR1JFUCIgRkdSRVAg PCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAg ICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJy ZWFrCisrICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFj X2NvdW50IC1ndCAke2FjX3BhdGhfRkdSRVBfbWF4LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9u ZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAg ICAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3BhdGhfRkdSRVAiCisrICAgICAgYWNfcGF0aF9GR1JF UF9tYXg9JGFjX2NvdW50CisrICAgIGZpCisrICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0 IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKKysgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJy ZWFrCisrICBkb25lCisrICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3Qu bmwgY29uZnRlc3Qub3V0OzsKKytlc2FjCisrCisrICAgICAgJGFjX3BhdGhfRkdSRVBfZm91bmQg JiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0ZHUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBiZSBm b3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQ QVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0aF9GR1JFUD0kRkdSRVAKKytm aQorKworKyAgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfcGF0aF9GR1JFUCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX0ZHUkVQIiA+JjY7 IH0KKysgRkdSRVA9IiRhY19jdl9wYXRoX0ZHUkVQIgorKworKworK3Rlc3QgLXogIiRHUkVQIiAm JiBHUkVQPWdyZXAKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisr aWYgdGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0 aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcworK2Vsc2UK KysgIHdpdGhfZ251X2xkPW5vCisrZmkKKysKKythY19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMg YSBwYXRoLgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1 c2VkIGJ5ICRDQyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJEND Li4uICIgPiY2OyB9CisrICBjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICAjIGdj YyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Cisr ICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1 J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4m NWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1 dGUgcGF0aHMuCisrICAgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1te L11bXi9dKi9cLlwuLycKKysgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQK KysgICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysg ICAgICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9u dWxsIDI+JjE7IGRvCisrCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJl bHQlLyUiYAorKyAgICAgIGRvbmUKKysgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJv ZyIKKysgICAgICA7OworKyAgIiIpCisrICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3 ZSBhcmVuJ3QgdXNpbmcgR0NDLgorKyAgICBhY19wcm9nPWxkCisrICAgIDs7CisrICAqKQorKyAg ICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBB VEguCisrICAgIHdpdGhfZ251X2xkPXVua25vd24KKysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig R05VIGxkLi4uICIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bm9uLUdOVSBsZC4uLiAiID4mNjsgfQorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLXogIiRMRCI7IHRoZW4KKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRI X1NFUEFSQVRPUgorKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KKysgICAgSUZTPSIkbHRfc2F2 ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3Qg LWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhl ZXh0IjsgdGhlbgorKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCisrICAg ICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1 c2UgLS12ZXJzaW9uLAorKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBH TlUgbGQgb25seSBhY2NlcHQgLXYuCisrICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUg R05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIuCisrICAgICAgY2FzZSBgIiRsdF9jdl9wYXRo X0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyop CisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKKysJOzsKKysgICAgICAqKQor Kwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhaworKwk7OworKyAgICAgIGVzYWMK KysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorK2Vsc2UKKysgIGx0X2N2 X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBh dGguCisrZmkKKytmaQorKworK0xEPSIkbHRfY3ZfcGF0aF9MRCIKKytpZiB0ZXN0IC1uICIkTEQi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQor KyRhc19lY2hvICIkTEQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrdGVzdCAt eiAiJExEIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0 YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBu byBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhl IGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRo ZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9w cm9nX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJl bnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCisrY2FzZSBgJExEIC12IDI+JjEgPC9k ZXYvbnVsbGAgaW4KKysqR05VKiB8ICond2l0aCBCRkQnKikKKysgIGx0X2N2X3Byb2dfZ251X2xk PXllcworKyAgOzsKKysqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KKysgIDs7CisrZXNhYwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251 X2xkIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KKyt3aXRoX2du dV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJs ZSBuYW1lIGxpc3RlciAobm0pIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgQlNELSBv ciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2x0X2N2X3BhdGhfTk0rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE5NIjsgdGhlbgorKyAgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrICBsdF9jdl9wYXRoX05NPSIkTk0iCisrZWxzZQorKyAg bHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVmaXh9bm0iCisrICBpZiB0ZXN0IC1uICIkYWNf dG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCisrICAgIGx0X25t X3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0iCisrICBmaQorKyAgZm9yIGx0X3RtcF9ubSBp biAkbHRfbm1fdG9fY2hlY2s7IGRvCisrICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRI X1NFUEFSQVRPUgorKyAgICBmb3IgYWNfZGlyIGluICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vz ci9jY3MvYmluIC91c3IvdWNiIC9iaW47IGRvCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisr ICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgICB0bXBfbm09IiRhY19k aXIvJGx0X3RtcF9ubSIKKysgICAgICBpZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIk dG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCisrCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2Nl cHRzIGEgQlNELWNvbXBhdCBmbGFnLgorKwkjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMg ZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGljaCBzYXlzOgorKwkjICAgbm06IHVua25vd24g b3B0aW9uICJCIiBpZ25vcmVkCisrCSMgVHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251 bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQorKwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9u dWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBv ciBvYmplY3QgdHlwZScqKQorKwkgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCisrCSAgYnJl YWsKKysJICA7OworKwkqKQorKwkgIGNhc2UgYCIkdG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8 IHNlZCAnMXEnYCBpbgorKwkgICovZGV2L251bGwqKQorKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRt cF9ubSAtcCIKKysJICAgIGJyZWFrCisrCSAgICA7OworKwkgICopCisrCSAgICBsdF9jdl9wYXRo X05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1 dAorKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBz dXBwb3J0cyBCU0QgZmxhZ3MKKysJICAgIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysg ICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgZG9uZQorKyAg OiAke2x0X2N2X3BhdGhfTk09bm99CisrZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9jdl9wYXRoX05NIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3BhdGhf Tk0iID4mNjsgfQorK2lmIHRlc3QgIiRsdF9jdl9wYXRoX05NIiAhPSAibm8iOyB0aGVuCisrICBO TT0iJGx0X2N2X3BhdGhfTk0iCisrZWxzZQorKyAgIyBEaWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBh dGlibGUgbmFtZSBsaXN0ZXIsIGxvb2sgZm9yIGR1bXBiaW4uCisrICBpZiB0ZXN0IC1uICIkYWNf dG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIg ImxpbmsgLWR1bXAgLXN5bWJvbHMiCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfRFVNUEJJTitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJERVTVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJGFjX3Rvb2xfcHJlZml4 JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2Rv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0RVTVBCSU49JGFjX2N2X3Byb2df RFVNUEJJTgorK2lmIHRlc3QgLW4gIiREVU1QQklOIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJERVTVBCSU4iID4mNQorKyRhc19lY2hvICIkRFVNUEJJTiIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJERV TVBCSU4iICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkRFVNUEJJTiI7IHRo ZW4KKysgIGFjX2N0X0RVTVBCSU49JERVTVBCSU4KKysgIGZvciBhY19wcm9nIGluICJkdW1wYmlu IC1zeW1ib2xzIiAibGluayAtZHVtcCAtc3ltYm9scyIKKytkbworKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2Fj X2N0X0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCisrICBhY19j dl9wcm9nX2FjX2N0X0RVTVBCSU49IiRhY19jdF9EVU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU49IiRhY19wcm9n IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZT PSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9EVU1QQklOPSRhY19jdl9wcm9nX2Fj X2N0X0RVTVBCSU4KKytpZiB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9EVU1QQklOIiA+JjUKKyskYXNf ZWNobyAiJGFjX2N0X0RVTVBCSU4iID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisr CisrCisrICB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiIgJiYgYnJlYWsKKytkb25lCisrCisrICBp ZiB0ZXN0ICJ4JGFjX2N0X0RVTVBCSU4iID0geDsgdGhlbgorKyAgICBEVU1QQklOPSI6IgorKyAg ZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVz OikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBEVU1QQklOPSRh Y19jdF9EVU1QQklOCisrICBmaQorK2ZpCisrCisrCisrICBpZiB0ZXN0ICIkRFVNUEJJTiIgIT0g IjoiOyB0aGVuCisrICAgIE5NPSIkRFVNUEJJTiIKKysgIGZpCisrZmkKKyt0ZXN0IC16ICIkTk0i ICYmIE5NPW5tCisrCisrCisrCisrCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2x0X2N2X25tX2ludGVyZmFjZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9ubV9pbnRlcmZhY2U9IkJT RCBubSIKKysgIGVjaG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4 dAorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjU1NTQ6ICRhY19jb21waWxlXCIiID4mNSkKKysg IChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjU1NTc6ICROTSBcXFwiY29uZnRlc3QuJGFj X29iamV4dFxcXCJcIiIgPiY1KQorKyAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRc IiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQpCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjU1NjA6IG91dHB1dFwiIiA+JjUpCisrICBjYXQg Y29uZnRlc3Qub3V0ID4mNQorKyAgaWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBj b25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4KKysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJN UyBkdW1wYmluIgorKyAgZmkKKysgIHJtIC1mIGNvbmZ0ZXN0KgorK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X25tX2ludGVyZmFjZSIgPiY1CisrJGFzX2Vj aG8gIiRsdF9jdl9ubV9pbnRlcmZhY2UiID4mNjsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4uICIgPiY2OyB9CisrTE5fUz0kYXNfbG5fcwor K2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAtcyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+ JjUKKyskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KKytmaQorKworKyMgZmluZCB0 aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBs aW5lIGFyZ3VtZW50cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG1heGltdW0gbGVu Z3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3N5c19tYXhfY21kX2xlbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICAgIGk9MAorKyAgdGVzdHN0cmluZz0iQUJDRCIKKysKKysg IGNhc2UgJGJ1aWxkX29zIGluCisrICBtc2Rvc2RqZ3BwKikKKysgICAgIyBPbiBESkdQUCwgdGhp cyB0ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYwor KyAgICAjIChhbnkgc2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBh IGJ1ZmZlciBvdmVycnVuCisrICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYg aXQgd2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCisrICAgICMgY2hlY2sgd291bGQgYmUg bGFyZ2VyIHRoYW4gaXQgc2hvdWxkIGJlLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIy ODg7ICAgICMgMTJLIGlzIGFib3V0IHJpZ2h0CisrICAgIDs7CisrCisrICBnbnUqKQorKyAgICAj IFVuZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUg aXMKKysgICAgIyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVu dHMuCisrICAgICMgTGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29l dmVyCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKKysgICAgOzsKKysKKysgIGN5Z3dp biogfCBtaW5ndyogfCBjZWdjYyopCisrICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93 cyB1cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2VzCisrICAgICMgYWJvdXQgNSBtaW51dGVzIGFz IHRoZSB0ZXN0c3RyaW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCisrICAgICMgV29yc2UsIHNpbmNl IDl4L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCisrICAgICMgeW91IGVu ZCB1cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UK KysgICAgIyB0aGUgdGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVu Z3RoIG9mIDI1NmspLgorKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBt aW5pbXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkKKysgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRl ZCBwbGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQKS4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPTgxOTI7CisrICAgIDs7CisrCisrICBhbWlnYW9zKikKKysgICAgIyBPbiBBbWlnYU9TIHdp dGggcGRrc2gsIHRoaXMgdGVzdCB0YWtlcyBob3VycywgbGl0ZXJhbGx5LgorKyAgICAjIFNvIHdl IGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgorKyAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIG5ldGJzZCogfCBmcmVl YnNkKiB8IG9wZW5ic2QqIHwgZGFyd2luKiB8IGRyYWdvbmZseSopCisrICAgICMgVGhpcyBoYXMg YmVlbiBhcm91bmQgc2luY2UgMzg2QlNELCBhdCBsZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorKyAg ICBpZiB0ZXN0IC14IC9zYmluL3N5c2N0bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj1gL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBlbGlmIHRlc3QgLXggL3Vz ci9zYmluL3N5c2N0bDsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9z YmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj02NTUzNgkjIHVzYWJsZSBkZWZhdWx0IGZvciBhbGwgQlNEcworKyAgICBmaQor KyAgICAjIEFuZCBhZGQgYSBzYWZldHkgem9uZQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAorKyAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICA7OworKworKyAg aW50ZXJpeCopCisrICAgICMgV2Uga25vdyB0aGUgdmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBp dCB3aXRoIGEgc2FmZXR5IHpvbmUgKGxpa2UgQlNEKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49MTk2NjA4CisrICAgIDs7CisrCisrICBvc2YqKQorKyAgICAjIERyLiBIYW5zIEVra2VoYXJk IFBsZXNzZXIgcmVwb3J0cyBzZWVpbmcgYSBrZXJuZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUK KysgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAx IG9uIFRydTY0LiBJdCBpcyBub3QKKysgICAgIyBuaWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mg c28gbGV0cyBhdm9pZCB0aGUgbG9vcCBiZWxvdy4KKysgICAgIyBGaXJzdCBzZXQgYSByZWFzb25h YmxlIGRlZmF1bHQuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAorKyAgICAjCisr ICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY29uZmlnOyB0aGVuCisrICAgICAgY2FzZSBgL3NiaW4v c3lzY29uZmlnIC1xIHByb2MgZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KKysgICAgICAgICox KikgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAg ICA7OworKyAgc2NvMy4ydjUqKQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCisr ICAgIDs7CisrICBzeXN2NSogfCBzY281djYqIHwgc3lzdjQuMnV3MiopCisrICAgIGthcmdtYXg9 YGdyZXAgQVJHX01BWCAvZXRjL2NvbmYvY2YuZC9zdHVuZSAyPi9kZXYvbnVsbGAKKysgICAgaWYg dGVzdCAtbiAiJGthcmdtYXgiOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBl Y2hvICRrYXJnbWF4IHwgc2VkICdzLy4qWwkgXS8vJ2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj0zMjc2OAorKyAgICBmaQorKyAgICA7OworKyAgKikKKysgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAg IGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAz YAorKyAgICBlbHNlCisrICAgICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJl Zm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0LgorKyAgICAgICMgYSAxSyBzdHJpbmcgc2hvdWxk IGJlIGEgcmVhc29uYWJsZSBzdGFydC4KKysgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDgg OyBkbworKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAg ZG9uZQorKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19CisrICAg ICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQg dXAgY29tcHV0aW5nIGEKKysgICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxm IG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAorKyAgICAgICMgd2UgY2FuJ3QgdGVs bC4KKysgICAgICB3aGlsZSB7IHRlc3QgIlgiYCRTSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8gIlgk dGVzdHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0 ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0 ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKKysgICAgICBkbworKyAgICAgICAg aT1gZXhwciAkaSArIDFgCisrICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJp bmcKKysgICAgICBkb25lCisrICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91 dHNpZGUgdGhlIGxvb3AuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICJYJHRl c3RzdHJpbmciIDogIi4qIiAyPiYxYAorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQg YSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFj ayBvbgorKyAgICAgICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJl Zm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCisrICAgICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFz IHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsK KysgIGVzYWMKKysKKytmaQorKworK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9zeXNf bWF4X2NtZF9sZW4iID4mNQorKyRhc19lY2hvICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIiA+ JjUKKyskYXNfZWNobyAibm9uZSIgPiY2OyB9CisrZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lz X21heF9jbWRfbGVuCisrCisrCisrCisrCisrCisrCisrOiAke0NQPSJjcCAtZiJ9CisrOiAke01W PSJtdiAtZiJ9CisrOiAke1JNPSJybSAtZiJ9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0 cnVjdHMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVy c3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMuLi4gIiA+JjY7IH0KKysjIFRyeSBzb21lIFhTSSBm ZWF0dXJlcworK3hzaV9zaGVsbD1ubworKyggX2x0X2R1bW15PSJhL2IvYyIKKysgIHRlc3QgIiR7 X2x0X2R1bW15IyMqL30sJHtfbHRfZHVtbXklLyp9LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9 LCBcCisrICAgICAgPSBjLGEvYiwsIFwKKysgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkg LWVxIDIgXAorKyAgICAmJiB0ZXN0ICIkeyNfbHRfZHVtbXl9IiAtZXEgNScgKSA+L2Rldi9udWxs IDI+JjEgXAorKyAgJiYgeHNpX3NoZWxsPXllcworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICR4c2lfc2hlbGwiID4mNQorKyRhc19lY2hvICIkeHNpX3NoZWxsIiA+JjY7IH0K KysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUg c2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwiIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBcIis9XCIuLi4gIiA+JjY7IH0KKytsdF9zaGVsbF9h cHBlbmQ9bm8KKysoIGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFsICIkMSs9XCQyIiAmJiB0ZXN0 ICIkZm9vIiA9IGJhcmJheiApIFwKKysgICAgPi9kZXYvbnVsbCAyPiYxIFwKKysgICYmIGx0X3No ZWxsX2FwcGVuZD15ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRf c2hlbGxfYXBwZW5kIiA+JjUKKyskYXNfZWNobyAiJGx0X3NoZWxsX2FwcGVuZCIgPiY2OyB9Cisr CisrCisraWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCisrICBsdF91bnNldD11bnNldAorK2Vsc2UKKysgIGx0X3Vuc2V0PWZhbHNlCisrZmkK KysKKysKKysKKysKKysKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRy IFggJ1wxMDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5v dCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9T UDJOTD0ndHIgXDA0MCBcMDEyJworKyAgbHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJwor KyAgOzsKKysgKikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBc bicKKysgIGx0X05MMlNQPSd0ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrCisrCisr CisrCisrCisrCisrCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX3JlbG9hZF9mbGFnK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2xkX3JlbG9hZF9m bGFnPSctcicKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9j dl9sZF9yZWxvYWRfZmxhZyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIg PiY2OyB9CisrcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCisrY2FzZSAkcmVsb2Fk X2ZsYWcgaW4KKysiIiB8ICIgIiopIDs7CisrKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWci IDs7CisrZXNhYworK3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxv YWRfb2JqcycKKytjYXNlICRob3N0X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5v c3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZWxzZQorKyAgICAg IHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysg ICAgZmkKKysgICAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIke2FjX3Rvb2xfcHJlZml4fW9iamR1bXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW9iamR1bXA7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfT0JKRFVNUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfT0JKRFVNUD0iJE9CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfT0JKRFVNUD0iJHthY190b29sX3ByZWZp eH1vYmpkdW1wIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytPQkpEVU1QPSRhY19jdl9wcm9n X09CSkRVTVAKKytpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRPQkpEVU1QIiA+JjUKKyskYXNfZWNobyAiJE9CSkRVTVAi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16 ICIkYWNfY3ZfcHJvZ19PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3RfT0JKRFVNUD0kT0JKRFVNUAor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvYmpkdW1wIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgb2JqZHVtcDsgYWNfd29yZD0kMgor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3Qg IiR7YWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1Q IjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSIkYWNfY3RfT0JKRFVNUCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9P QkpEVU1QPSJvYmpkdW1wIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9PQkpEVU1Q PSRhY19jdl9wcm9nX2FjX2N0X09CSkRVTVAKKytpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9PQkpE VU1QIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X09CSkRVTVAiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8i ID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X09CSkRVTVAiID0geDsgdGhlbgor KyAgICBPQkpEVU1QPSJmYWxzZSIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5n OiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7 OworK2VzYWMKKysgICAgT0JKRFVNUD0kYWNfY3RfT0JKRFVNUAorKyAgZmkKKytlbHNlCisrICBP QkpEVU1QPSIkYWNfY3ZfcHJvZ19PQkpEVU1QIgorK2ZpCisrCisrdGVzdCAteiAiJE9CSkRVTVAi ICYmIE9CSkRVTVA9b2JqZHVtcAorKworKworKworKworKworKworKworKworKworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBs aWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVw ZW5kZW50IGxpYnJhcmllcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Qrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCisrbHRfY3Zf ZmlsZV9tYWdpY190ZXN0X2ZpbGU9CisrbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25v d24nCisrIyBOZWVkIHRvIHNldCB0aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9y bXMgdGhhdCBzdXBwb3J0CisrIyBpbnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgorKyMgJ25vbmUn IC0tIGRlcGVuZGVuY2llcyBub3Qgc3VwcG9ydGVkLgorKyMgYHVua25vd24nIC0tIHNhbWUgYXMg bm9uZSwgYnV0IGRvY3VtZW50cyB0aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgorKyMgJ3Bhc3Nf YWxsJyAtLSBhbGwgZGVwZW5kZW5jaWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KKysjICd0ZXN0 X2NvbXBpbGUnIC0tIGNoZWNrIGJ5IG1ha2luZyB0ZXN0IHByb2dyYW0uCisrIyAnZmlsZV9tYWdp YyBbW3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0 aAorKyMgd2hpY2ggcmVzcG9uZHMgdG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4g ZXh0ZW5kZWQgcmVnZXguCisrIyBJZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5 b3VyIHN5c3RlbSBhbmQgeW91J3JlIG5vdCBzdXJlCisrIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2ls bCAqYWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkgd2FudCB0aGlzIG9uZS4KKysKKytjYXNlICRo b3N0X29zIGluCisrYWl4WzQtOV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKKysgIDs7CisrCisrYmVvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAorKyAgOzsKKysKKytic2RpWzQ1XSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVj dHxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAt TCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCisrICA7Owor KworK2N5Z3dpbiopCisrICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBk ZWZpbmVkIGluIGx0bWFpbi5zaAorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgOzsKKysKKyttaW5ndyogfCBwdzMyKikKKysgICMg QmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQg YnkKKysgICMgZnVuY193aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2Vy IHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAorKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZv ciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KKysgIGlmICggZmlsZSAv ICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNo aXRlY3R1cmU6IGkzODYpPycKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1m JworKyAgZmkKKysgIDs7CisrCisrY2VnY2MpCisrICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFz ZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJl OiBhcm0pPycKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIDs7Cisr CisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBj YXNlICRob3N0X2NwdSBpbgorKyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIg dGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAgICAgICMgTGV0 J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisrICAgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxE cmFnb25GbHkpL2lbMy05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5 JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9j dl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCisrICAgICAg OzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisrZ251KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hwdXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRf Y3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysg IGlhNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1sw LTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcK KysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28K KysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n ZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVj dCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0 X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1S SVNDWzAtOV0uWzAtOV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rl c3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2lu dGVyaXhbMy05XSopCisrICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhh dCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJlCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xcLmEpJCcKKysgIDs7CisrCisraXJp eDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJExEIGluCisrICAqLTMyfCoiLTMy ICIpIGxpYm1hZ2ljPTMyLWJpdDs7CisrICAqLW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsK KysgICotNjR8KiItNjQgIikgbGlibWFnaWM9NjQtYml0OzsKKysgICopIGxpYm1hZ2ljPW5ldmVy LW1hdGNoOzsKKysgIGVzYWMKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCot Z251KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisr bmV0YnNkKikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+ IC9kZXYvbnVsbDsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hf cGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZWxz ZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14v XSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxd U0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vz ci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxz LnNvCisrICA7OworKworKypudG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hv IF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0k aG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAt OV0rfFwuc298X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wu YSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrcmRvcyopCisrICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzb2xhcmlzKikKKysg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3N5c3Y1KiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIq KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lz djQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9sYSkKKysg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0q LWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bMC05XVswLTldKiBWZXJz aW9uIFswLTldJworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xp Yi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFn aWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxl X21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMg bGliICknCisrICAgIDs7CisrICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmlu L2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBb MC05XVswLTldKi1iaXQgW0xNXVNCIGR5bmFtaWMgbGliIgorKyAgICBsdF9jdl9maWxlX21hZ2lj X3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7CisrICBwYykKKysgICAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7 CisrCisrdHBmKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7 OworK2VzYWMKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZCIgPiY2OyB9CisrZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNf Y21kCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisr dGVzdCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11 bmtub3duCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk e2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1hcjsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19BUitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCisrICBhY19jdl9wcm9nX0FSPSIkQVIi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJ RlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9 IiR7YWNfdG9vbF9wcmVmaXh9YXIiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0FSPSRhY19j dl9wcm9nX0FSCisraWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJEFSIiA+JjUKKyskYXNfZWNobyAiJEFSIiA+JjY7IH0KKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2df QVIiOyB0aGVuCisrICBhY19jdF9BUj0kQVIKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1t eSBhcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIk YWNfY3RfQVIiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0FSPSIkYWNfY3RfQVIiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFz X3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3Qg LWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9 ImFyIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisr SUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19j dF9BUgorK2lmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9BUiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9BUiIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3Rf QVIiID0geDsgdGhlbgorKyAgICBBUj0iZmFsc2UiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3Nz X2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBo b3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3Nz IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dh cm5lZD15ZXMgOzsKKytlc2FjCisrICAgIEFSPSRhY19jdF9BUgorKyAgZmkKKytlbHNlCisrICBB Uj0iJGFjX2N2X3Byb2dfQVIiCisrZmkKKysKKyt0ZXN0IC16ICIkQVIiICYmIEFSPWFyCisrdGVz dCAteiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1jcnUKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKytpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4 fXN0cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRT VFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3By ZWZpeH1zdHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisr ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2df U1RSSVAKKytpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQorKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3Zf cHJvZ19TVFJJUCI7IHRoZW4KKysgIGFjX2N0X1NUUklQPSRTVFJJUAorKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0 X1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2df YWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3Ig YXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCisrICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrZmkKKytmaQorK2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCisraWYgdGVz dCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N0X1NUUklQIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJ UCIgPSB4OyB0aGVuCisrICAgIFNUUklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19j b21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJu ZWQ9eWVzIDs7CisrZXNhYworKyAgICBTVFJJUD0kYWNfY3RfU1RSSVAKKysgIGZpCisrZWxzZQor KyAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgorK2ZpCisrCisrdGVzdCAteiAiJFNUUklQIiAm JiBTVFJJUD06CisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4 IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4 fXJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1 bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX1JB TkxJQitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19SQU5MSUI9 IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3Byb2dfUkFOTElCPSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrUkFOTElCPSRhY19jdl9wcm9nX1JBTkxJQgorK2lmIHRlc3QgLW4gIiRSQU5MSUIi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUkFOTElCIiA+ JjUKKyskYXNfZWNobyAiJFJBTkxJQiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkK KysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiI7IHRoZW4KKysgIGFj X2N0X1JBTkxJQj0kUkFOTElCCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxp YiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHJh bmxpYjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAt biAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNf Y3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgK KytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19j dl9wcm9nX2FjX2N0X1JBTkxJQj0icmFubGliIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAy CisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKyth Y19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCisraWYgdGVzdCAtbiAiJGFjX2N0 X1JBTkxJQiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19jdF9SQU5MSUIiID4mNQorKyRhc19lY2hvICIkYWNfY3RfUkFOTElCIiA+JjY7IH0KKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9SQU5MSUIiID0geDsg dGhlbgorKyAgICBSQU5MSUI9IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGlu ZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMg OzsKKytlc2FjCisrICAgIFJBTkxJQj0kYWNfY3RfUkFOTElCCisrICBmaQorK2Vsc2UKKysgIFJB TkxJQj0iJGFjX2N2X3Byb2dfUkFOTElCIgorK2ZpCisrCisrdGVzdCAteiAiJFJBTkxJQiIgJiYg UkFOTElCPToKKysKKysKKysKKysKKysKKysKKysjIERldGVybWluZSBjb21tYW5kcyB0byBjcmVh dGUgb2xkLXN0eWxlIHN0YXRpYyBhcmNoaXZlcy4KKytvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFS X0ZMQUdTICRvbGRsaWIkb2xkb2JqcycKKytvbGRfcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0 ICRvbGRsaWInCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0KKysKKytpZiB0ZXN0IC1uICIkUkFO TElCIjsgdGhlbgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgb3BlbmJzZCopCisrICAgIG9sZF9w b3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCRvbGRs aWIiCisrICAgIDs7CisrICAqKQorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0 aW5zdGFsbF9jbWRzflwkUkFOTElCIFwkb2xkbGliIgorKyAgICA7OworKyAgZXNhYworKyAgb2xk X2FyY2hpdmVfY21kcz0iJG9sZF9hcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrZmkK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIElmIG5vIEMg Y29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKwor KyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytM VENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKworKyMgQ2hlY2sg Zm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3lt Ym9sIGZyb20gbm0uCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGNvbW1h bmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxl ciBvYmplY3QuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3BpcGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0 IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291 bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVz Y3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCisr CisrIyBSZWdleHAgdG8gbWF0Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3Rs eSBmcm9tIEMuCisrc3ltcGF0PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKKysKKysjIERl ZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgq KQorKyAgc3ltY29kZT0nW0JDRFRdJworKyAgOzsKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiog fCBjZWdjYyopCisrICBzeW1jb2RlPSdbQUJDREdJU1RXXScKKysgIDs7CisraHB1eCopCisrICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICBzeW1jb2RlPSdbQUJDREVHUlNU XScKKysgIGZpCisrICA7OworK2lyaXgqIHwgbm9uc3RvcHV4KikKKysgIHN5bWNvZGU9J1tCQ0RF R1JTVF0nCisrICA7OworK29zZiopCisrICBzeW1jb2RlPSdbQkNERUdRUlNUXScKKysgIDs7Cisr c29sYXJpcyopCisrICBzeW1jb2RlPSdbQkRSVF0nCisrICA7OworK3NjbzMuMnY1KikKKysgIHN5 bWNvZGU9J1tEVF0nCisrICA7OworK3N5c3Y0LjJ1dzIqKQorKyAgc3ltY29kZT0nW0RUXScKKysg IDs7Cisrc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysgIHN5bWNv ZGU9J1tBQkRUXScKKysgIDs7Cisrc3lzdjQpCisrICBzeW1jb2RlPSdbREZOU1RVXScKKysgIDs7 CisrZXNhYworKworKyMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRh cmQgc3ltYm9sIGNvZGVzLgorK2Nhc2UgYCROTSAtViAyPiYxYCBpbgorKypHTlUqIHwgKid3aXRo IEJGRCcqKQorKyAgc3ltY29kZT0nW0FCQ0RHSVJTVFddJyA7OworK2VzYWMKKysKKysjIFRyYW5z Zm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9u LgorKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1i b2xzIGRpZmZlcmVudGx5LAorKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KKytsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQv ZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNo YXIgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRv IHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwx XFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpc KSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW14gXSpc KSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14g XSpcKSBcKGxpYlteIF0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14k c3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwy fSwvcCciCisrCisrIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCisrb3B0X2NyPQor K2Nhc2UgJGJ1aWxkX29zIGluCisrbWluZ3cqKQorKyAgb3B0X2NyPWAkRUNITyAneFx7MCwxXH0n IHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAorKyAgOzsKKytlc2FjCisrCisr IyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCisrZm9yIGFj X3N5bXByZnggaW4gIiIgIl8iOyBkbworKworKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0 LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KKysgIHN5bXhm cm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCisrCisrICAjIFdyaXRlIHRoZSByYXcgYW5kIEMg aWRlbnRpZmllcnMuCisrICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1w YmluIjsgdGhlbgorKyAgICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZvciBhbnkg bm9uLXN0YXRpYyBmdW5jdGlvbgorKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxl LgorKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMr KywKKysgICAgIyB3aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KKysgICAgbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZT0iJEFXSyAnIlwKKysiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNl Y3Rpb249XCQgM307IlwKKysiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBh bnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKKysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8 L3tuZXh0fTsiXAorKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSoo KS97bmV4dH07IlwKKysiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7 Zj0wfTsgXCQgMH4vXChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07 IlwKKysiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAor KyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNb MV1+cHJmeCB7c3BsaXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVu Z3RoKHByZngpKX0iXAorKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZngiCisrICBlbHNlCisrICAg IGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbCSBdXCgkc3lt Y29kZSRzeW1jb2RlKlwpWwkgXVsJIF0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhm cm0vcCciCisrICBmaQorKworKyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBj b3JyZWN0bHkuCisrICBwaXBlX3dvcmtzPW5vCisrCisrICBybSAtZiBjb25mdGVzdCoKKysgIGNh dCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0 ZXJuICJDIiB7CisrI2VuZGlmCisrY2hhciBubV90ZXN0X3ZhcjsKKyt2b2lkIG5tX3Rlc3RfZnVu Yyh2b2lkKTsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVz CisrfQorKyNlbmRpZgorK2ludCBtYWluKCl7bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygp O3JldHVybigwKTt9CisrX0xUX0VPRgorKworKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQor KyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgIyBOb3cgdHJ5 IHRvIGdyYWIgdGhlIHN5bWJvbHMuCisrICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCisrICAgIGlmIHsg KGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwg JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0XCIiKSA+JjUKKysgIChldmFs ICROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBl IFw+ICRubGlzdCkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg dGVzdCAtcyAiJG5saXN0IjsgdGhlbgorKyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5 aW5nIHRoZSBvdXRwdXQuCisrICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0 IlQ7IHRoZW4KKysJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAt ZiAiJG5saXN0IlQKKysgICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25h Z2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3Rf dmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVu YyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRl c3QuJGFjX2V4dAorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgor KworK19MVF9FT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZh bCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQ IC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNv bmZ0ZXN0LiRhY19leHQKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBh bmQgc3ltYm9scy4gICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7Cisr ICB2b2lkICAgICAgICphZGRyZXNzOworK30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9z eW1ib2xzW10gPQorK3sKKysgIHsgIkBQUk9HUkFNQCIsICh2b2lkICopIDAgfSwKKytfTFRfRU9G CisrCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwi LCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVz dC4kYWNfZXh0CisrCSAgY2F0IDw8XF9MVF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAs ICh2b2lkICopIDB9CisrfTsKKysKKysvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4g RnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNv bnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKysgIHJldHVybiBsdF9fUFJPR1JBTV9f TFRYX3ByZWxvYWRlZF9zeW1ib2xzOworK30KKysjZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3Bs dXMKKyt9CisrI2VuZGlmCisrX0xUX0VPRgorKwkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28g ZmlsZXMuCisrCSAgbXYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdHN0bS4kYWNfb2JqZXh0Cisr CSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKKysJICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKysJ ICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0IgorKwkgIENGTEFHUz0iJENGTEFHUyRsdF9wcm9n X2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyIKKysJICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTok TElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19l eGVleHR9OyB0aGVuCisrCSAgICBwaXBlX3dvcmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0 X3NhdmVfTElCUyIKKysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVj aG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mNQorKwlmaQorKyAgICAg IGVsc2UKKysJZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF92YXIgaW4gJG5saXN0IiA+JjUKKysg ICAgICBmaQorKyAgICBlbHNlCisrICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfcGlwZSIgPiY1CisrICAgIGZpCisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9n bmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CisrICAgIGNhdCBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCogY29uZnRzdCoKKysKKysgICMgRG8gbm90 IHVzZSB0aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4KKysgIGlmIHRlc3Qg IiRwaXBlX3dvcmtzIiA9IHllczsgdGhlbgorKyAgICBicmVhaworKyAgZWxzZQorKyAgICBsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPQorKyAgZmkKKytkb25lCisrCisrZmkKKysKKytpZiB0 ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysgIGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPQorK2ZpCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVu CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBmYWlsZWQiID4mNQorKyRh c19lY2hvICJmYWlsZWQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG9rIiA+JjUKKyskYXNfZWNobyAib2siID4mNjsgfQorK2ZpCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4uCisr aWYgdGVzdCAiJHtlbmFibGVfbGlidG9vbF9sb2NrK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFi bGV2YWw9JGVuYWJsZV9saWJ0b29sX2xvY2s7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9saWJ0 b29sX2xvY2siICE9IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcworKworKyMgU29tZSBm bGFncyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3Ig Z29vZAorKyMgbGlidG9vbCBzdXBwb3J0LgorK2Nhc2UgJGhvc3QgaW4KKytpYTY0LSotaHB1eCop CisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsn ID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog XCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNf c3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4v ZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorKyAgICAgICpFTEYtMzIqKQorKwlIUFVYX0lB NjRfTU9ERT0iMzIiCisrCTs7CisrICAgICAgKkVMRi02NCopCisrCUhQVVhfSUE2NF9NT0RFPSI2 NCIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7Cisr Ki0qLWlyaXg2KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVj aG8gJyNsaW5lIDY3NjYgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZh bCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAg ICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJp dCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7OworKwkqTjMyKikKKysJ ICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAg TEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgZWxzZQor KyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMy LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0i JHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0 IgorKwkgIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVz dCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyot KmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxz cGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysg IGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFsIGVjaG8gIiRh c19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxl KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgICBj YXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNh c2UgJGhvc3QgaW4KKysJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmX2kzODZfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAg ICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8 cG93ZXJwYzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIK KysJICAgIDs7CisrCSAgczM5MHgtKmxpbnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZf czM5MCIKKysJICAgIDs7CisrCSAgc3BhcmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9 IC1tIGVsZjMyX3NwYXJjIgorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQq KQorKwljYXNlICRob3N0IGluCisrCSAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9 IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51 eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBj Ki0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRw cGMiCisrCSAgICA7OworKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisr CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7 CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1z Y28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0 IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENG TEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHtsdF9jdl9jY19uZWVkc19iZWxmK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2V4dD1jCisrYWNfY3BwPSck Q1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrICAgICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7Cisr CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNf c3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgor KyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBsdF9jdl9jY19uZWVk c19iZWxmPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3Zf Y2NfbmVlZHNfYmVsZj1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRl c3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAg ICBhY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1j ICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAt byBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2du dQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2Nj X25lZWRzX2JlbGYiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9 CisrICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgorKyAg ICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVl ZCBmb3IgLWJlbGYKKysgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1MiCisrICBmaQorKyAgOzsKKytz cGFyYyotKnNvbGFyaXMqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgor KyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIGlmIHsgKGV2YWwgZWNobyAi JGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBp bGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAg IGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjY0LWJpdCopCisrICAg ICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KKysgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0g LW0gZWxmNjRfc3BhcmMiIDs7CisrICAgICAgKikKKysJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNv bmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgTEQ9IiR7TEQt bGR9IC02NCIKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAgZXNhYwor KyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrZXNhYworKworK25lZWRfbG9ja3M9 IiRlbmFibGVfbGlidG9vbF9sb2NrIgorKworKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBy aGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0 aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9ZHN5 bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1t eSAke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0RT WU1VVElMK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLW4gIiREU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFNZ TVVUSUw9IiREU1lNVVRJTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxz ZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19EU1lNVVRJTD0iJHthY190b29sX3ByZWZpeH1kc3ltdXRpbCIKKysgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKKysKKytmaQorK2ZpCisrRFNZTVVUSUw9JGFjX2N2X3Byb2dfRFNZTVVUSUwKKytpZiB0 ZXN0IC1uICIkRFNZTVVUSUwiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkRFNZTVVUSUwiID4mNQorKyRhc19lY2hvICIkRFNZTVVUSUwiID4mNjsgfQorK2Vs c2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19EU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N0X0RTWU1VVElMPSREU1lNVVRJTAorKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGRzeW11dGlsOyBhY193b3JkPSQyCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9wcm9nX2FjX2N0X0RTWU1VVElMK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUw9IiRhY19jdF9EU1lNVVRJTCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNf c2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9EU1lN VVRJTD0iZHN5bXV0aWwiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9u ZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0RTWU1VVElM PSRhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMCisraWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElM IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0RT WU1VVElMIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0RTWU1VVElMIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8g Im5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9EU1lNVVRJTCIgPSB4OyB0 aGVuCisrICAgIERTWU1VVElMPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxp bmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVz IDs7CisrZXNhYworKyAgICBEU1lNVVRJTD0kYWNfY3RfRFNZTVVUSUwKKysgIGZpCisrZWxzZQor KyAgRFNZTVVUSUw9IiRhY19jdl9wcm9nX0RTWU1VVElMIgorK2ZpCisrCisrICAgIGlmIHRlc3Qg LW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAiJHthY190b29sX3ByZWZpeH1ubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW5tZWRpdDsgYWNfd29yZD0k MgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19OTUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysg IGFjX2N2X3Byb2dfTk1FRElUPSIkTk1FRElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2Zv ciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgorKyAgICBhY19jdl9wcm9nX05NRURJVD0iJHthY190b29sX3ByZWZpeH1ubWVkaXQi CisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK05NRURJVD0kYWNfY3ZfcHJvZ19OTUVESVQKKytp ZiB0ZXN0IC1uICIkTk1FRElUIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJE5NRURJVCIgPiY1CisrJGFzX2VjaG8gIiROTUVESVQiID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNo byAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19O TUVESVQiOyB0aGVuCisrICBhY19jdF9OTUVESVQ9JE5NRURJVAorKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSBubWVkaXQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3Rf Tk1FRElUK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCisrICBhY19jdl9wcm9n X2FjX2N0X05NRURJVD0iJGFjX2N0X05NRURJVCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQ9Im5tZWRpdCIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKytmaQorK2ZpCisrYWNfY3RfTk1FRElUPSRhY19jdl9wcm9nX2FjX2N0X05NRURJVAor K2lmIHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfTk1FRElUIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X05N RURJVCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngk YWNfY3RfTk1FRElUIiA9IHg7IHRoZW4KKysgICAgTk1FRElUPSI6IgorKyAgZWxzZQorKyAgICBj YXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZp eGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1 c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Cisr YWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBOTUVESVQ9JGFjX2N0X05NRURJVAor KyAgZmkKKytlbHNlCisrICBOTUVESVQ9IiRhY19jdl9wcm9nX05NRURJVCIKKytmaQorKworKyAg ICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9bGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bGlwbzsgYWNf d29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19MSVBPK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19MSVBPPSIkTElQTyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3Ig YXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19MSVBPPSIke2FjX3Rvb2xfcHJlZml4fWxpcG8iCisrICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrZmkKKytmaQorK0xJUE89JGFjX2N2X3Byb2dfTElQTworK2lmIHRlc3QgLW4g IiRMSVBPIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExJ UE8iID4mNQorKyRhc19lY2hvICIkTElQTyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0xJUE8iOyB0aGVuCisrICBh Y19jdF9MSVBPPSRMSVBPCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxpcG8iLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBsaXBvOyBh Y193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0xJUE8rc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0 X0xJUE8iOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0xJUE89IiRhY19jdF9MSVBPIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRh c19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0xJ UE89ImxpcG8iCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2Rv bmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X0xJUE89JGFjX2N2X3By b2dfYWNfY3RfTElQTworK2lmIHRlc3QgLW4gIiRhY19jdF9MSVBPIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0xJUE8iID4mNQorKyRhc19lY2hv ICIkYWNfY3RfTElQTyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlm IHRlc3QgIngkYWNfY3RfTElQTyIgPSB4OyB0aGVuCisrICAgIExJUE89IjoiCisrICBlbHNlCisr ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIExJUE89JGFjX2N0X0xJUE8K KysgIGZpCisrZWxzZQorKyAgTElQTz0iJGFjX2N2X3Byb2dfTElQTyIKKytmaQorKworKyAgICBp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX09UT09MK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4K KysgIGFjX2N2X3Byb2dfT1RPT0w9IiRPVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytm b3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19PVE9PTD0iJHthY190b29sX3ByZWZpeH1vdG9vbCIK KysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrT1RPT0w9JGFjX2N2X3Byb2dfT1RPT0wKKytpZiB0 ZXN0IC1uICIkT1RPT0wiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkT1RPT0wiID4mNQorKyRhc19lY2hvICIkT1RPT0wiID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8i ID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PVE9PTCI7 IHRoZW4KKysgIGFjX2N0X09UT09MPSRPVE9PTAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJvdG9vbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0 IGR1bW15IG90b29sOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X09UT09MK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiRhY19jdF9PVE9PTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w9 IiRhY19jdF9PVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQor K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAg YWNfY3ZfcHJvZ19hY19jdF9PVE9PTD0ib3Rvb2wiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFr IDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQor K2FjX2N0X09UT09MPSRhY19jdl9wcm9nX2FjX2N0X09UT09MCisraWYgdGVzdCAtbiAiJGFjX2N0 X09UT09MIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N0X09UT09MIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X09UT09MIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8g Im5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9PVE9PTCIgPSB4OyB0aGVu CisrICAgIE9UT09MPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFj X3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7Cisr ZXNhYworKyAgICBPVE9PTD0kYWNfY3RfT1RPT0wKKysgIGZpCisrZWxzZQorKyAgT1RPT0w9IiRh Y19jdl9wcm9nX09UT09MIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZp eCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp eH1vdG9vbDY0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQg ZHVtbXkgJHthY190b29sX3ByZWZpeH1vdG9vbDY0OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9n X09UT09MNjQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE9UT09MNjQiOyB0aGVuCisrICBhY19jdl9wcm9nX09U T09MNjQ9IiRPVE9PTDY0IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX09UT09MNjQ9IiR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NCIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKytmaQorK2ZpCisrT1RPT0w2ND0kYWNfY3ZfcHJvZ19PVE9PTDY0CisraWYgdGVzdCAt biAiJE9UT09MNjQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRPVE9PTDY0IiA+JjY7IH0KKytlbHNlCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5v IiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0w2 NCI7IHRoZW4KKysgIGFjX2N0X09UT09MNjQ9JE9UT09MNjQKKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAib3Rvb2w2NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IG90b29sNjQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3Rf T1RPT0w2NCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRoZW4KKysgIGFjX2N2X3By b2dfYWNfY3RfT1RPT0w2ND0iJGFjX2N0X09UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0ib3Rvb2w2NCIKKysg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfT1RPT0w2ND0kYWNfY3ZfcHJvZ19hY19jdF9P VE9PTDY0CisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8g IiRhY19jdF9PVE9PTDY0IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAg aWYgdGVzdCAieCRhY19jdF9PVE9PTDY0IiA9IHg7IHRoZW4KKysgICAgT1RPT0w2ND0iOiIKKysg IGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3ll czopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgT1RPT0w2ND0k YWNfY3RfT1RPT0w2NAorKyAgZmkKKytlbHNlCisrICBPVE9PTDY0PSIkYWNfY3ZfcHJvZ19PVE9P TDY0IgorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9h cHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RV TEV9IjsgdGhlbgorKwkjIEJ5IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxl IGZsYWcuIFlvdSBjYW4gb3ZlcnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJv bm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3Vy ZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdz LgorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0 dXJuIDE7fSIgPiBjb25mdGVzdC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAt byBsaWJjb25mdGVzdC5keWxpYiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNv bmZ0ZXN0LmMiID4mNQorKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3Qu ZHlsaWIgXAorKwkgIC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+ Y29uZnRlc3QuZXJyCisrICAgICAgICBfbHRfcmVzdWx0PSQ/CisrCWlmIHRlc3QgLWYgbGliY29u ZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0 ID0gMDsgdGhlbgorKwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCisrCWVsc2UKKysJ ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKwlmaQorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIq CisrCXJtIC1mIGNvbmZ0ZXN0LioKKysgICAgICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNQorKyRhc19l Y2hvICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY2OyB9CisrICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5r ZXIgZmxhZyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xz X2xpc3QgbGlua2VyIGZsYWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9y dGVkX3N5bWJvbHNfbGlzdCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KKysg ICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKKysgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVz dC5zeW0KKysgICAgICBMREZMQUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlz dCxjb25mdGVzdC5zeW0iCisrICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0 CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQor KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0 IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK KysgICAgICAgfTsgdGhlbgorKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3ZfbGRfZXhwb3J0ZWRf c3ltYm9sc19saXN0PW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJTERG TEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNQorKyRhc19lY2hv ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjY7IH0KKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAgICAgIF9sdF9kYXJf YWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAg ZGFyd2luMS4qKQorKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25h bWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luKikg IyBkYXJ3aW4gNS54IG9uCisrICAgICAgIyBpZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRo ZSBkZXBsb3ltZW50IHRhcmdldCBkZWZhdWx0cworKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24s IGlmIG9uIHg4NiwgYW5kIDEwLjQsIHRoZSBkZXBsb3ltZW50CisrICAgICAgIyB0YXJnZXQgZGVm YXVsdHMgdG8gMTAuNC4gRG9uJ3QgeW91IGxvdmUgaXQ/CisrICAgICAgY2FzZSAke01BQ09TWF9E RVBMT1lNRU5UX1RBUkdFVC0xMC4wfSwkaG9zdCBpbgorKwkxMC4wLCo4NiotZGFyd2luOCp8MTAu MCwqLWRhcndpbls5MV0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRl ZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKKysJMTAuWzAxMl0qKQorKwkgIF9sdF9kYXJf YWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3 bH1zdXBwcmVzcycgOzsKKysJMTAuKikKKysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3 bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7 OworKyAgZXNhYworKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAi eWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisr ICAgIGZpCisrICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0g InllcyI7IHRoZW4KKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRf c3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisr ICAgIGVsc2UKKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0 X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAgZmkKKysgICAg aWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34k RFNZTVVUSUwgJGxpYiB8fCA6JworKyAgICBlbHNlCisrICAgICAgX2x0X2RzeW11dGlsPQorKyAg ICBmaQorKyAgICA7OworKyAgZXNhYworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxl cl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorKyMg T24gU3Vucywgc29tZXRpbWVzICRDUFAgbmFtZXMgYSBkaXJlY3RvcnkuCisraWYgdGVzdCAtbiAi JENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KKysgIENQUD0KKytmaQorK2lmIHRlc3QgLXog IiRDUFAiOyB0aGVuCisrICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJs ZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENQUCBp biAiJENDIC1FIiAiJENDIC1FIC10cmFkaXRpb25hbC1jcHAiICIvbGliL2NwcCIKKysgICAgZG8K KysgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcg 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 dWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysg IDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFp bHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93 IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQg YW5kIGhvdy4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZz LmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr I2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4v ZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhl bgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vs c2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGggdGVzdHMu CisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJF UFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFr CisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrCisrZmkKKysg IENQUD0kYWNfY3ZfcHJvZ19DUFAKKytlbHNlCisrICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQIiA+JjUKKyskYXNfZWNo byAiJENQUCIgPiY2OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jX3ByZXByb2Nf d2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29t ZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9z cy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5z IHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0 aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisr ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NU RENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5o PgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRh Y19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBC cm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBj YXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJl IGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFj X3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9m bGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29u dGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIFBhc3NlcyBi b3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKytybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFr JywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAt ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVu CisrICA6CisrZWxzZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJv Y2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZv ciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9j ZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCisrU2VlIFxgY29uZmlnLmxvZycgZm9y IG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Cisr ZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp bGVyX2dudQorKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig QU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kg QyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRj K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+Cisr I2luY2x1ZGUgPGZsb2F0Lmg+CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X2hlYWRl cl9zdGRjPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3Zf aGVhZGVyX3N0ZGM9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9z dGRjID0geWVzOyB0aGVuCisrICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJl IG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKytfQUNFT0YKKytpZiAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisrICAkRUdSRVAgIm1lbWNociIg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICA6CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9 bm8KKytmaQorK3JtIC1mIGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVh ZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRl Y2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKworK19BQ0VPRgorK2lm IChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKysgICRFR1JFUCAiZnJl ZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICA6CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0 ZGM9bm8KKytmaQorK3JtIC1mIGNvbmZ0ZXN0KgorKworK2ZpCisrCisraWYgdGVzdCAkYWNfY3Zf aGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMg bm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KKysgIGlmIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisrICA6CisrZWxzZQorKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5j bHVkZSA8c3RkbGliLmg+CisrI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQorKyMgZGVmaW5l IElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKKysjIGRlZmluZSBUT1VQUEVS KGMpIChJU0xPV0VSKGMpID8gJ0EnICsgKChjKSAtICdhJykgOiAoYykpCisrI2Vsc2UKKysjIGRl ZmluZSBJU0xPV0VSKGMpIFwKKysJCSAgICgoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCisr CQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKKysJCSAgICAgfHwgKCdzJyA8 PSAoYykgJiYgKGMpIDw9ICd6JykpCisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ ICgoYykgfCAweDQwKSA6IChjKSkKKysjZW5kaWYKKysKKysjZGVmaW5lIFhPUihlLCBmKSAoKChl KSAmJiAhKGYpKSB8fCAoIShlKSAmJiAoZikpKQorK2ludAorK21haW4gKCkKKyt7CisrICBpbnQg aTsKKysgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKysgICAgaWYgKFhPUiAoaXNsb3dlciAo aSksIElTTE9XRVIgKGkpKQorKwl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKKysgICAg ICByZXR1cm4gMjsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdCRh Y19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisrICB7IChjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY190cnkiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysoIGV4aXQgJGFjX3N0YXR1cyApCisrYWNfY3ZfaGVhZGVyX3N0ZGM9 bm8KKytmaQorK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSAqLmNvcmUgY29yZS5j b25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKysKKytmaQorK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKKyskYXNf ZWNobyAiJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjY7IH0KKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJf c3RkYyA9IHllczsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmlu ZSBTVERDX0hFQURFUlMgMQorK19BQ0VPRgorKworK2ZpCisrCisrIyBPbiBJUklYIDUuMywgc3lz L3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KKysKKysKKysKKysKKysKKysK KysKKysKKysKKytmb3IgYWNfaGVhZGVyIGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGli Lmggc3RyaW5nLmggbWVtb3J5Lmggc3RyaW5ncy5oIFwKKysJCSAgaW50dHlwZXMuaCBzdGRpbnQu aCB1bmlzdGQuaAorK2RvCisrYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRh Y19oZWFkZXIiIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19o ZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0 IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQKKysKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4K KytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf Y29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMK KytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisr JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5j b25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJy b3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGV2YWwgIiRhc19hY19IZWFkZXI9eWVz IgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0hl YWRlcj1ubyIKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFz X2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNf cmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJ CSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsg dGhlbgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJI QVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorK19BQ0VPRgorKworK2ZpCisrCisrZG9u ZQorKworKworKworK2ZvciBhY19oZWFkZXIgaW4gZGxmY24uaAorK2RvCisrYXNfYWNfSGVhZGVy 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 MQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQorKworKworKworK2FjX2V4dD1jcHAKKythY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lm IHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBD WFg9JENDQworKyAgZWxzZQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu CisrICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZD QyBLQ0MgUkNDIHhsQ19yIHhsQworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3Jk PSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHthY19jdl9wcm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNf Y3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+ JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKytmaQorK2ZpCisrQ1hYPSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKysk YXNfZWNobyAiJENYWCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysg ICAgdGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRD WFgiOyB0aGVuCisrICBhY19jdF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBn cHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbworKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wcm9nX2FjX2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgor KyAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAor K2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9D WFgiICYmIGJyZWFrCisrZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhl bgorKyAgICBDWFg9ImcrKyIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRh Y190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7Owor K2VzYWMKKysgICAgQ1hYPSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysj IFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQor K3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21w aWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9 JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1 CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK3sgJGFzX2VjaG8gIiRh 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 CisrZGVwY2M9IiRDWFgiICBhbV9jb21waWxlcl9saXN0PQorKworK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2FtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAj IFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBj YW4gZW5kIHVwCisrICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJv dXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQg dGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVt bXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQK KysgICMgaW4gRCcuCisrICBta2RpciBjb25mdGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRv IHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAj IHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVz dC5kaXIKKysgIGNkIGNvbmZ0ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5k IGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRv IGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAg IyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5j aWVzIGFzIGEKKysgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBw dXQgdGhlIGRlcGVuZGVuY2llcyBpbgorKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUg VHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1r ZGlyIHN1YgorKworKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUK KysgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCisrICAgICBhbV9jb21w aWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBj b21wYAorKyAgZmkKKysgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbworKyAg ICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBj b21waWxlcnMKKysgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBj b2x1bW4gODAgKHdpdGggXCksIGFuZAorKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVw Y29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBu ZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxl ciBtYXkKKysgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9i c2N1cmUgY29tbWFuZCBsaW5lcy4KKysgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0 aGUgQUlYIEMgY29tcGlsZXIuCisrICAgIDogPiBzdWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBp biAxIDIgMyA0IDUgNjsgZG8KKysgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCIn ID4+IHN1Yi9jb25mdGVzdC5jCisrICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcg Y3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsv dXNyLH0vYmluL3NoLgorKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisr ICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1f X3F1b3RlfSIgPiBjb25mbWYKKysKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBub3NpZGVl ZmZlY3QpCisrICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNp ZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisrICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNp dGx5IHJlcXVlc3RlZAorKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tp bmciID0geHllczsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGVsc2UKKysJYnJlYWsKKysgICAg ICBmaQorKyAgICAgIDs7CisrICAgIG5vbmUpIGJyZWFrIDs7CisrICAgIGVzYWMKKysgICAgIyBX ZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRv dXQiCisrICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBp bGVyIGRvZXMgbm90IHByb3Blcmx5CisrICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVk IHRvIGRldGVjdCB0aGlzLgorKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291 cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gXAorKyAg ICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8g XAorKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAtbyBzdWIvY29uZnRlc3QuJHtP QkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMgXAorKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVz dC5lcnIgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAv ZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVz dC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0ZXN0LiR7T0JK RVhULW99IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFL RS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNj IGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2Fy bmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdy ZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3 YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGlj YyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBs aW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAor KyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGlj YzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAg ICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAg Z3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g OjsgZWxzZQorKyAgICAgICAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRk ZXBtb2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZpCisrICBkb25lCisrCisr ICBjZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFtX2N2X0NYWF9kZXBl bmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGUiID4mNQorKyRhc19lY2hvICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBl IiA+JjY7IH0KKytDWFhERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZQorKworKyBpZgorKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2lu ZyIgIT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVy X3R5cGUiID0gZ2NjMzsgdGhlbgorKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0KKysgIGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9JyMnCisrICBh bV9fZmFzdGRlcENYWF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgLW4gIiRDWFgiICYmICgg dGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCisrICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAm JiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAorKyAgICAodGVzdCAiWCRDWFgiICE9ICJY ZysrIikpKSA7IHRoZW4KKysgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yLi4uICIgPiY2 OyB9CisraWYgdGVzdCAteiAiJENYWENQUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcHJv Z19DWFhDUFArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENYWENQUCBuZWVkcyB0byBi ZSBleHBhbmRlZAorKyAgICBmb3IgQ1hYQ1BQIGluICIkQ1hYIC1FIiAiL2xpYi9jcHAiCisrICAg IGRvCisrICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJu X2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3 aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNv bXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9f U1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24g ZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhl IGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91 Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19f CisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+Cisr I2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFj X2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+ L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBC cm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBj YXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJl IGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFj X3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJu X2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0Lgor K2NvbnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNz ZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBi cmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisr cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsg dGhlbgorKyAgYnJlYWsKKytmaQorKworKyAgICBkb25lCisrICAgIGFjX2N2X3Byb2dfQ1hYQ1BQ PSRDWFhDUFAKKysKKytmaQorKyAgQ1hYQ1BQPSRhY19jdl9wcm9nX0NYWENQUAorK2Vsc2UKKysg IGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRDWFhDUFAiID4mNQorKyRhc19lY2hvICIkQ1hYQ1BQIiA+JjY7IH0KKyth Y19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5 ZXMKKytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBj b25maWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3Mu CisrICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm aW5lZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcg Y29tcGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdo IHRoZSBjb21waWxlcidzIHBhcnNlciwKKysgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50 YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgorKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUg PGxpbWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAg ICAgU3ludGF4IGVycm9yCisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisr ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYg eworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2Zs YWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMg b24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNo ZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5k IGhvdy4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmgu ICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lu Y2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3Bw IGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3Bw IGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRl c3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2 L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRo ZW4KKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3Rz LgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BS RVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICA6Cisr ZWxzZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3 ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9 CisrX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzOyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2Vsc2UKKysgIF9s dF9jYXVnaHRfQ1hYX2Vycm9yPXllcworK2ZpCisrCisrCisrCisrCisrCisrIyBTZXQgb3B0aW9u cworKworKworKworKyAgICAgICAgZW5hYmxlX2Rsb3Blbj1ubworKworKworKyAgZW5hYmxlX3dp bjMyX2RsbD1ubworKworKworKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcGljIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfcGljK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRo dmFsPSR3aXRoX3BpYzsgcGljX21vZGU9IiR3aXRodmFsIgorK2Vsc2UKKysgIHBpY19tb2RlPWRl ZmF1bHQKKytmaQorKworKworK3Rlc3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9ZGVmYXVs dAorKworKworKworKworKworKworKworKyAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWZhc3Qt aW5zdGFsbCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfZmFzdF9pbnN0YWxsK3NldH0i ID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9mYXN0X2luc3RhbGw7IHA9JHtQQUNL QUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9m YXN0X2luc3RhbGw9eWVzIDs7CisrICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7Cisr ICAgICopCisrICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworKyAgICAgICMgTG9vayBhdCB0 aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9y cy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9S LCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZz IgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9mYXN0X2luc3Rh bGw9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAg ICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfZmFzdF9pbnN0YWxsPXllcworK2Zp CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrIyBUaGlzIGNhbiBiZSB1c2VkIHRv IHJlYnVpbGQgbGlidG9vbCB3aGVuIG5lZWRlZAorK0xJQlRPT0xfREVQUz0iJGx0bWFpbiIKKysK KysjIEFsd2F5cyB1c2Ugb3VyIG93biBsaWJ0b29sLgorK0xJQlRPT0w9JyQoU0hFTEwpICQodG9w X2J1aWxkZGlyKS9saWJ0b29sJworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworK3Rlc3QgLXogIiRMTl9TIiAm JiBMTl9TPSJsbiAtcyIKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgIHNldG9wdCBOT19H TE9CX1NVQlNUCisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIG9iamRpciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG9iamRpci4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zfb2JqZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIHJtIC1mIC5saWJzIDI+L2Rldi9udWxs CisrbWtkaXIgLmxpYnMgMj4vZGV2L251bGwKKytpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCisrICBs dF9jdl9vYmpkaXI9LmxpYnMKKytlbHNlCisrICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxl bmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90LgorKyAgbHRfY3Zfb2JqZGlyPV9saWJzCisrZmkK KytybWRpciAubGlicyAyPi9kZXYvbnVsbAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X29iamRpciIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9vYmpkaXIi ID4mNjsgfQorK29iamRpcj0kbHRfY3Zfb2JqZGlyCisrCisrCisrCisrCisrCisrY2F0ID4+Y29u ZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgTFRfT0JKRElSICIkbHRfY3Zfb2JqZGlyLyIKKytf QUNFT0YKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2Js ZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysgICMgcmVhc29u LCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBw cm9ibGVtcworKyAgIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgorKyAgaWYgdGVzdCAiWCR7 Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgIENPTExFQ1RfTkFNRVM9Cisr ICAgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisrICBmaQorKyAgOzsKKytlc2FjCisrCisrIyBTZWQg c3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xh c2hpZmllcworKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBk b3VibGUtcXVvdGVkIHN0cmluZ3MuCisrc2VkX3F1b3RlX3N1YnN0PSdzL1woWyJgJFxcXVwpL1xc XDEvZycKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVm ZXJlbmNlcy4KKytkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCisrCisr IyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxs IHZhcmlhYmxlIGluIGEKKysjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCisrZGVsYXlf dmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKysKKysjIFNlZCBzdWJz dGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2luZ2xlIHF1b3RlLgor K2RlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdD0ncy8nXCcnLydcJ1xcXFxcXFwnXCcnL2cnCisrCisr IyBTZWQgc3Vic3RpdHV0aW9uIHRvIGF2b2lkIGFjY2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVk IGV4cHJlc3Npb25zCisrbm9fZ2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCisrCisrIyBHbG9iYWwg dmFyaWFibGVzOgorK29maWxlPWxpYnRvb2wKKytjYW5fYnVpbGRfc2hhcmVkPXllcworKworKyMg QWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtp bmcgKGV4Y2VwdCBNU1ZDLAorKyMgd2hpY2ggbmVlZHMgJy5saWInKS4KKytsaWJleHQ9YQorKwor K3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVfbGQiCisrCisrb2xkX0NDPSIkQ0MiCisrb2xk X0NGTEFHUz0iJENGTEFHUyIKKysKKysjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZh cmlhYmxlcworK3Rlc3QgLXogIiRDQyIgJiYgQ0M9Y2MKKyt0ZXN0IC16ICIkTFRDQyIgJiYgTFRD Qz0kQ0MKKyt0ZXN0IC16ICIkTFRDRkxBR1MiICYmIExUQ0ZMQUdTPSRDRkxBR1MKKyt0ZXN0IC16 ICIkTEQiICYmIExEPWxkCisrdGVzdCAteiAiJGFjX29iamV4dCIgJiYgYWNfb2JqZXh0PW8KKysK Kytmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysg ICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7Owor KyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7Owor KyAgICBcLSopIDs7CisrICAgICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5h bWU9YCRFQ0hPICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9h bGlhcy0lJSJgCisrCisrCisrIyBPbmx5IHBlcmZvcm0gdGhlIGNoZWNrIGZvciBmaWxlLCBpZiB0 aGUgY2hlY2sgbWV0aG9kIHJlcXVpcmVzIGl0CisrdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFH SUNfQ01EPWZpbGUKKytjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorK2ZpbGVfbWFnaWMq KQorKyAgaWYgdGVzdCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgorKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVm aXh9ZmlsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9 ZmlsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2Fz ZSAkTUFHSUNfQ01EIGluCisrW1xcLypdIHwgID86W1xcL10qKQorKyAgbHRfY3ZfcGF0aF9NQUdJ Q19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGgg YSBwYXRoLgorKyAgOzsKKysqKQorKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCisr ICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysgIGFjX2R1bW15PSIv dXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7 IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBh Y19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxlOyB0 aGVuCisrICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvJHthY190b29sX3ByZWZp eH1maWxlIgorKyAgICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4K KysJY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KKysJImZpbGVfbWFnaWMgIiopCisrCSAg ZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21h Z2ljIFwoLipcKSJgCisrCSAgTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisrCSAg aWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251 bGwgfAorKwkgICAgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4K KysJICAgIDoKKysJICBlbHNlCisrCSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2Fy bmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVz LAorKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fu bm90IHJlY29nbml6ZS4KKysqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwg dG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMKKysqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBh ZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKKysqKiogZGVwZW5k IG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRv b2wKKysqKiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4g IE5ldmVydGhlbGVzcywgeW91CisrKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0 byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bworKyoqKiBidWctbGlidG9vbEBnbnUub3Jn CisrCisrX0xUX0VPRgorKwkgIGZpIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGJyZWFr CisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIE1BR0lDX0NNRD0i JGx0X3NhdmVfTUFHSUNfQ01EIgorKyAgOzsKKytlc2FjCisrZmkKKysKKytNQUdJQ19DTUQ9IiRs dF9jdl9wYXRoX01BR0lDX0NNRCIKKytpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFz X2VjaG8gIiRNQUdJQ19DTUQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrCisrCisrCisraWYgdGVzdCAteiAiJGx0X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorKyAg aWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGZpbGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBmaWxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBjYXNlICRNQUdJQ19DTUQgaW4KKytbXFwvKl0gfCAgPzpbXFwvXSopCisrICBsdF9jdl9wYXRo X01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qg d2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NN RCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgYWNfZHVt bXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCisrICBmb3IgYWNfZGlyIGluICRhY19k dW1teTsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIi ICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgJGFjX2Rpci9maWxlOyB0aGVuCisrICAgICAg bHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvZmlsZSIKKysgICAgICBpZiB0ZXN0IC1uICIk ZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9k IGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBs aWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0i JGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmls ZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFn aWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0 IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNl cyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9k dWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1 bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVz CisrKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29s IGxpYnJhcmllcyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJv Z3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsg cmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkg d2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3Ig dG8KKysqKiogYnVnLWxpYnRvb2xAZ251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7OworKwll c2FjCisrICAgICAgZmkKKysgICAgICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIk bHRfc2F2ZV9pZnMiCisrICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7Cisr ZXNhYworK2ZpCisrCisrTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVz dCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRNQUdJQ19DTUQiID4mNQorKyRhc19lY2hvICIkTUFHSUNfQ01EIiA+JjY7IH0KKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgZWxzZQorKyAgICBNQUdJQ19DTUQ9Ogor KyAgZmkKKytmaQorKworKyAgZmkKKysgIDs7CisrZXNhYworKworKyMgVXNlIEMgZm9yIHRoZSBk ZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIGxpYnRvb2wgc2NyaXB0CisrCisrbHRfc2F2ZV9D Qz0iJENDIgorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29t cGlsZXJfZ251CisrCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBzb3Vy Y2VzLgorK2FjX2V4dD1jCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVk IEMgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0PSRvYmpleHQKKysKKysjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBp biBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4o KXtyZXR1cm4oMCk7fScKKysKKysKKysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIg d2FzIHNwZWNpZmllZCwgdXNlIENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8g QyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0k e0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJndW1lbnRzLgorK2NvbXBpbGVyPSRDQworKworKyMgU2F2ZSB0aGUgZGVmYXVsdCBj b21waWxlciwgc2luY2UgaXQgZ2V0cyBvdmVyd3JpdHRlbiB3aGVuIHRoZSBvdGhlcgorKyMgdGFn cyBhcmUgYmVpbmcgdGVzdGVkLCBhbmQgX0xUX1RBR1ZBUihjb21waWxlciwgW10pIGlzIGEgTk9Q LgorK2NvbXBpbGVyX0RFRkFVTFQ9JENDCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRl IG9mIHNpbXBsZSB0ZXN0IGNvZGUKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytl Y2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2 YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcg PmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVy cmAKKyskUk0gY29uZnRlc3QqCisrCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Cisr ZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFs ICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25m dGVzdC5lcnIKKytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRS TSAtciBjb25mdGVzdCoKKysKKysKKysjIyBDQVZFQVQgRU1QVE9SOgorKyMjIFRoZXJlIGlzIG5v IGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdl CisrIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5s ZXNzIHlvdSBrbm93IGV4YWN0bHkKKysjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKytpZiB0ZXN0 IC1uICIkY29tcGlsZXIiOyB0aGVuCisrCisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2Zs YWc9CisrCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIGx0X3Byb2dfY29tcGlsZXJf bm9fYnVpbHRpbl9mbGFnPScgLWZuby1idWlsdGluJworKworKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1l eGNlcHRpb25zIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9y dHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRf Y3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9y dHRpX2V4Y2VwdGlvbnM9bm8KKysgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysg ICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQK KysgICBsdF9jb21waWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorKyAgICMg SW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFi bGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBv ciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9l cyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFy IHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4K KysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBj b25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQg XAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwK KysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisr ICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNf bWU6OTI4MjogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5j b25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICBlY2hvICIkYXNfbWU6OTI4NjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4 aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRo ZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj b2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRo YW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJw bGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9k OyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVs bDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMK KysgICAgIGZpCisrICAgZmkKKysgICAkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2Vw dGlvbnMiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlv bnMiID4mNjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2Vw dGlvbnMiID0geHllczsgdGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh Zz0iJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIC1mbm8tcnR0aSAtZm5vLWV4Y2Vw dGlvbnMiCisrZWxzZQorKyAgICA6CisrZmkKKysKKytmaQorKworKworKworKworKworKworKyAg bHRfcHJvZ19jb21waWxlcl93bD0KKytsdF9wcm9nX2NvbXBpbGVyX3BpYz0KKytsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9Cisr CisrICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3ds PSctV2wsJworKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysKKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMg UElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUg bm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct QnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAg IGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBj b21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgbHRfcHJvZ19j b21waWxlcl9waWM9Jy1mUElDJworKyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAg ICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQg bGlicmFyaWVzLCBidXQKKysgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcg dG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKKysgICAgICAgICAgICAj IGxpa2UgYC1tNjgwNDAnLgorKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctbTY4 MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAg IGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0 b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1 bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8 IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRo ZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWls dCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBl eGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMs IHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8t aW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQ T1JUJworKyAgICAgIDs7CisrCisrICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQ SUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJv bHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLWZuby1jb21tb24nCisrICAgICAgOzsKKysKKysgICAgaHB1eCopCisrICAgICAgIyBQ SUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0 CisrICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBi dXQgdGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQg YWZmZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEq NjQqKQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBp bnRlcml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlv bnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBz aGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsKKysKKysgICAgbXNkb3Nkamdw cCopCisrICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3Vk ZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKysgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24n dCBzdXBwb3J0IHRoZW0uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVk PW5vCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgICpudG8qIHwg KnFueCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNo YXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysK KysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJbHRf cHJvZ19jb21waWxlcl9waWM9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysK KysgICAgKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCisrICAgICAgOzsK KysgICAgZXNhYworKyAgZWxzZQorKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNz IGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCisrICAgIGNhc2UgJGhv c3Rfb3MgaW4KKysgICAgYWl4KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwor KyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1 cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRp YycKKysgICAgICBlbHNlCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctYm5zbyAtYkk6L2xp Yi9zeXNjYWxscy5leHAnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBtaW5ndyogfCBj eWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNv IHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAg ICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJv bHMgZm9yIGV4YW1wbGUpLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBP UlQnCisrICAgICAgOzsKKysKKysgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVs dCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3Ig UEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0 KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGls ZXJfcGljPScrWicKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgIyBJcyB0aGVyZSBhIGJldHRl ciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/ CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwor KyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAg bHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMg dGhlIGRlZmF1bHQuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVk JworKyAgICAgIDs7CisrCisrICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxs IHN1cHBvcnRlZCAtS1BJQy4KKysgICAgICBlY2MqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJworKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrCWx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctc3RhdGljJworKyAgICAgICAgOzsKKysgICAgICAjIGljYyB1c2VkIHRvIGJlIGlu Y29tcGF0aWJsZSB3aXRoIEdDQy4KKysgICAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJ QyBhbnkgbW9yZS4KKysgICAgICBpY2MqIHwgaWZvcnQqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3ds PSctV2wsJworKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCisrCWx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctc3RhdGljJworKyAgICAgICAgOzsKKysgICAgICAjIExhaGV5IEZvcnRyYW4g OC4xLgorKyAgICAgIGxmOTUqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKwlsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLS1zaGFyZWQnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSct LXN0YXRpYycKKysJOzsKKysgICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikK KysgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBn Y2MgY29tcGlsZXIsCisrCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCisrCWx0 X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycK KysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgICAgOzsKKysgICAg ICBjY2MqKQorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICAgICMg QWxsIEFscGhhIGNvZGUgaXMgUElDLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICB4bCopCisrCSMgSUJNIFhMIEMgOC4w L0ZvcnRyYW4gMTAuMSBvbiBQUEMKKysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJbHRf cHJvZ19jb21waWxlcl9waWM9Jy1xcGljJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXFz dGF0aWNsaW5rJworKwk7OworKyAgICAgICopCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIGx0X3Byb2dfY29tcGlsZXJf cGljPSctS1BJQycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrCSAg bHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAjIFN1 biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2Vy CisrCSAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKwkgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctQnN0YXRpYycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3dsPScnCisrCSAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysg ICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlv biB0b28sIG90aGVyd2lzZQorKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMgLXNoYXJlZCcKKysgICAgICA7OworKworKyAgICBvc2Yz KiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysg ICAgICAjIEFsbCBPU0YvMSBjb2RlIGlzIFBJQy4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLW5vbl9zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgcmRvcyopCisrICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHNv bGFyaXMqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysgICAgICBmNzcqIHwgZjkwKiB8IGY5NSopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1R b3B0aW9uIGxkICc7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnOzsK KysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3dsPSctUW9wdGlvbiBsZCAnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9 Jy1QSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAg IDs7CisrCisrICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJ QycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsK KysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysJ bHRfcHJvZ19jb21waWxlcl9waWM9Jy1LY29uZm9ybV9waWMnCisrCWx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctQnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8 IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgbHRf cHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQ SUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7 CisrCisrICAgIHVuaWNvcyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysg ICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICA7OworKwor KyAgICB1dHM0KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXBpYycKKysgICAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgKikK KysgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICA7Owor KyAgICBlc2FjCisrICBmaQorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3Jt cyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRq Z3BwKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWM9CisrICAgIDs7CisrICAqKQorKyAgICBs dF9wcm9nX2NvbXBpbGVyX3BpYz0iJGx0X3Byb2dfY29tcGlsZXJfcGljIC1EUElDIgorKyAgICA7 OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfcHJvZ19j b21waWxlcl9waWMiID4mNQorKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNjsg fQorKworKworKworKworKworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZs YWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3Bp YyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29t cGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljIHdvcmtzIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGlj IHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193 b3JrcytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz1ubworKyAgIGFjX291dGZpbGU9 Y29uZnRlc3QuJGFjX29iamV4dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2Nv bXBpbGVyX3BpYyAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0 ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQg Y29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRo YXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJl Z2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNo byBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQg dmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBl Y2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYk bHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0 X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidg CisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjk2MjE6ICRsdF9jb21waWxlXCIiID4mNSkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPwor KyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjk2MjU6IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19v dXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNI TyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRl c3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVz dC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5l eHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9waWNfd29ya3M9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0Kgor KworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2df Y29tcGlsZXJfcGljX3dvcmtzIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGlj X3dvcmtzIiA9IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWMgaW4K KysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIGx0X3Byb2dfY29tcGlsZXJfcGljPSIgJGx0 X3Byb2dfY29tcGlsZXJfcGljIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19j b21waWxlcl9waWM9CisrICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8K KytmaQorKworK2ZpCisrCisrCisrCisrCisrCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJl IHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisrd2w9JGx0X3Byb2dfY29tcGls ZXJfd2wgZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNc IgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3Rh dGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3Mu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtz K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPW5vCisrICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkbHRfdG1wX3N0YXRpY19mbGFnIgor KyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAor KyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGln bm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0 aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisr ICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisrICAgICAgIGNh dCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgICAkRUNITyAiWCRfbHRfbGlua2VyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBjb25mdGVzdC5leHAKKysgICAgICAgJFNFRCAnL14k L2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICAgIGlmIGRpZmYg Y29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgbHRf Y3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCisrICAgICAgIGZpCisrICAgICBlbHNl CisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPXllcworKyAgICAgZmkK KysgICBmaQorKyAgICRSTSAtciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdT IgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29t cGlsZXJfc3RhdGljX3dvcmtzIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29t cGlsZXJfc3RhdGljX3dvcmtzIiA9IHh5ZXM7IHRoZW4KKysgICAgOgorK2Vsc2UKKysgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMg LW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGls ZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwor KyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAorKyAgIG1rZGlyIGNvbmZ0ZXN0CisrICAg Y2QgY29uZnRlc3QKKysgICBta2RpciBvdXQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICBsdF9jb21waWxlcl9mbGFnPSIt byBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRo ZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZv cmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAg ICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFz aGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwg c28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8g IiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9j b21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29t cGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysg ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6OTcyNjogJGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChl dmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPwor KyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19tZTo5NzMwOiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91 dC9jb25mdGVzdDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRFQ0hPICJYJF9sdF9j b21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4 cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25m dGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0 L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAg bHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2Qg dSt3IC4gMj4mNQorKyAgICRSTSBjb25mdGVzdCoKKysgICAjIFNHSSBDKysgY29tcGlsZXIgd2ls bCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCisrICAgIyB0ZW1wbGF0ZSBpbnN0 YW50aWF0aW9uCisrICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8q ICYmIHJtZGlyIG91dC9paV9maWxlcworKyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKKysgICBj ZCAuLgorKyAgICRSTSAtciBjb25mdGVzdAorKyAgICRSTSBjb25mdGVzdCoKKysKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nf byIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY2OyB9CisrCisr CisrCisrCisrCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3Zf cHJvZ19jb21waWxlcl9jX289bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysg ICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNo byAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisr ICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMg SW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFi bGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBv ciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9l cyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFy IHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4K KysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczou KkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFte IF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRs dF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjk3ODE6ICRsdF9j b21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVy cikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBl Y2hvICIkYXNfbWU6OTc4NTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFj X3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisr ICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz CisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9e JC9kJyA+IG91dC9jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQv Y29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0L2Nv bmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rl di9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcworKyAgICAg ZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAkUk0gY29uZnRlc3QqCisrICAg IyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZv cgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVz ICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0 LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0g Y29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk bHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21w aWxlcl9jX28iID4mNjsgfQorKworKworKworKworK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKKytp ZiB0ZXN0ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9j a3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRf bG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQor KyAgaGFyZF9saW5rcz15ZXMKKysgICRSTSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29u ZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5h CisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBs biBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQorKyRh c19lY2hvICIkaGFyZF9saW5rcyIgPiY2OyB9CisrICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBu bzsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0Mn IGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQg XGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9s b2Nrcz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworKworKwor KworKworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg dGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBydW5wYXRoX3Zh cj0KKysgIGFsbG93X3VuZGVmaW5lZF9mbGFnPQorKyAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPW5v CisrICBhcmNoaXZlX2NtZHM9CisrICBhcmNoaXZlX2V4cHN5bV9jbWRzPQorKyAgY29tcGlsZXJf bmVlZHNfb2JqZWN0PW5vCisrICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPW5v CisrICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9CisrICBleHBvcnRfc3ltYm9sc19jbWRzPSck Tk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wn J3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBoYXJkY29k ZV9hdXRvbWF0aWM9bm8KKysgIGhhcmRjb2RlX2RpcmVjdD1ubworKyAgaGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlPW5vCisrICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorKyAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZD0KKysgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CisrICBo YXJkY29kZV9taW51c19MPW5vCisrICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVk CisrICBpbmhlcml0X3JwYXRoPW5vCisrICBsaW5rX2FsbF9kZXBsaWJzPXVua25vd24KKysgIG1v ZHVsZV9jbWRzPQorKyAgbW9kdWxlX2V4cHN5bV9jbWRzPQorKyAgb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kcz0KKysgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPQorKyAgdGhyZWFkX3Nh ZmVfZmxhZ19zcGVjPQorKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9CisrICAjIGluY2x1ZGVf ZXhwc3ltcyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJl ICphbHdheXMqCisrICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAgaW5jbHVkZV9l eHBzeW1zPQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBv ZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5k IGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxp bmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBh bmQgYGJjJywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgor KyAgZXhjbHVkZV9leHBzeW1zPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1f LionCisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJv bCBDIG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNv ZGUsIGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlz IGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAj IHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGlu Y2x1ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUg c2hhcmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrICBl eHRyYWN0X2V4cHN5bXNfY21kcz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiog fCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0 IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVz aW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1p Y3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysg ICAgICB3aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAg ICMgd2UganVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKysp CisrICAgIHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhf Z251X2xkPW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBsZF9zaGxpYnM9eWVzCisrICBpZiB0 ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1 bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5CisrICAgIHdsYXJjPScke3dsfScK KysKKysgICAgIyBTZXQgc29tZSBkZWZhdWx0cyBmb3IgR05VIGxkIHdpdGggc2hhcmVkIGxpYnJh cnkgc3VwcG9ydC4gVGhlc2UKKysgICAgIyBhcmUgcmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxpYnJh cmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVtCisrICAgICMgaGVyZSBhbGxvd3Mg dGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KKysgICAgcnVucGF0aF92YXI9TERf UlVOX1BBVEgKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJworKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LS1leHBvcnQt ZHluYW1pYycKKysgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFy Y2hpdmUgZXQuIGFsLgorKyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnbm8td2hvbGUt YXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Yz0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hv bGUtYXJjaGl2ZScKKysgICAgZWxzZQorKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQor KyAgICBmaQorKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKysgICAgY2FzZSBgJExE IC12IDI+JjFgIGluCisrICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4q KSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBz dXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisrICAgICAgKlwgMi4x MS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2Ug OC4yIC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisrICAg ICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworKyAgICBlc2FjCisrCisrICAg ICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBjYXNlICRo b3N0X29zIGluCisrICAgIGFpeFszLTldKikKKysgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUg bGlua2VyIGlzIHZlcnkgYnJva2VuCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0 OyB0aGVuCisrCWxkX3NobGlicz1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2Fy bmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJl cG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJh cmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVk IGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQg bGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0 IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VP RgorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KKysgICAgICBwb3dlcnBjKQorKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQg YWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JycK KysgICAgICAgIDs7CisrICAgICAgbTY4aykKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRS TSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxp Ym5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBM SUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNk ZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+ JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4 bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNk ICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCisrICAgICAgICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgICAgICAgIGhhcmRjb2RlX21p bnVzX0w9eWVzCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBi ZW9zKikKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPXVu c3VwcG9ydGVkCisrCSMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29t ZSByZWxlYXNlcyBvZiBnY2MKKysJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZl cyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtbm9zdGFy dCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAg ICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAg ICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCApIGlzIGFjdHVhbGx5IG1l YW5pbmdsZXNzLAorKyAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMu CisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGFs bG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYWx3YXlzX2V4cG9ydF9zeW1i b2xzPW5vCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKKysg ICAgICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGds b2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14g XSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltBSVRXXVsgXS9zLy4qWyBdLy8nXCcn IHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrCisrICAgICAgaWYgJExEIC0taGVs cCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAg YXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFz ZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0 LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVY UE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlhcmNoaXZlX2V4 cHN5bV9jbWRzPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JU UzsgdGhlbgorKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRl ZjsKKysJZWxzZQorKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVm OworKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7 CisrCWZpfgorKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3ds fS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIg JGxpYicKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsK KysKKysgICAgaW50ZXJpeFszLTldKikKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9bm8KKysgICAg ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWM9JyR7d2x9LUUnCisrICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNv bXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKyAgICAgICMgSW5zdGVhZCwgc2hh cmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkK KysgICAgICAjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2gg aXMgYSBzbG93IHZlcnkgbWVtb3J5CisrICAgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5n IHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAgICMgMjU2 IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAw IGF0IGxpbmsKKysgICAgICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28g YWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KKysgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwk c29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwq IDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAgICAgYXJjaGl2ZV9leHBzeW1fY21k cz0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5l eHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9v YmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9 ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICA7Owor KworKyAgICBnbnUqIHwgbGludXgqIHwgdHBmKiB8IGsqYnNkKi1nbnUpCisrICAgICAgdG1wX2Rp ZXQ9bm8KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgor KwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGlu dXgtZGlldGxpYmMgd2l0aCBzdGF0aWMgbGlua2luZyAoIWRpZXQtZHluKQorKwllc2FjCisrICAg ICAgZmkKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRh cmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbCBcCisrCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8K KysgICAgICB0aGVuCisrCXRtcF9hZGRmbGFnPQorKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcK KysJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCisrICAgICAgICBwZ2NjKikJCQkJIyBQ b3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7 d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3Qg IC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252 XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKysJICA7OworKwlwZ2Y3NyogfCBw Z2Y5MCogfCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisr CSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252 IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVu aWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252 ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfYWRkZmxhZz0nICRw aWNfZmxhZyAtTW5vbWFpbicgOzsKKysJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwg QyBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwll ZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2 NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8 IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1u b2Zvcl9tYWluJyA7OworKwlsZjk1KikJCQkJIyBMYWhleSBGb3J0cmFuIDguMQorKwkgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjPQorKwkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKKysJ eGxbY0NdKikJCQkjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCisr CSAgdG1wX3NoYXJlZGZsYWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7CisrCWVz YWMKKysJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQkJCSMgU3Vu IEMgNS45CisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZl YG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3Qg LXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZc IjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNo aXZlJworKwkgIGNvbXBpbGVyX25lZWRzX29iamVjdD15ZXMKKysJICB0bXBfc2hhcmVkZmxhZz0n LUcnIDs7CisrCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCisrCSAgdG1wX3NoYXJlZGZs YWc9Jy1HJyA7OworKwllc2FjCisrCWFyY2hpdmVfY21kcz0nJENDICciJHRtcF9zaGFyZWRmbGFn IiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysgICAgICAgIGlmIHRlc3QgIngkc3VwcG9y dHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysgICAgICAgICAgYXJjaGl2ZV9leHBz eW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K KysJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFn IiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRp ci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysgICAgICAgIGZpCisrCisrCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCisrCXhsZiopCisrCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3Qg Y3JlYXRlIHNoYXJlZCBsaWJzIGl0c2VsZgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSct LXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0n LXJwYXRoICRsaWJkaXInCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC1vICRsaWInCisrCSAgaWYg dGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgorKwkgICAgYXJj aGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLnZlcn4KKysJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkv XDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkgICAgICBlY2hvICJsb2Nh bDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgJExEIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAt dmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrCSAg ZmkKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKyAgICAgICAgbGRfc2hsaWJzPW5vCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hp dmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mg LW8gJGxpYicKKysJd2xhcmM9CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIGlmICRMRCAtdiAyPiYxIHwg JEdSRVAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0 IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0 aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKKysqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJp ZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2Fi bGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdO VQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRp b24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9u IHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFy dC4KKysKKytfTFRfRU9GCisrICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBz dXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21k cz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGli JworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgq KQorKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorKyAgICAgICAgKlwgWzAxXS4qIHwgKlwg Mi5bMC05XS4qIHwgKlwgMi4xWzAtNV0uKikKKysJbGRfc2hsaWJzPW5vCisrCWNhdCA8PF9MVF9F T0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05VIGxpbmtlciBwcmlv ciB0byAyLjE2LjkxLjAuMyBjYW4gbm90CisrKioqIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGli cmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2Fi bGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdO VQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5ld2VyLiAgQW5vdGhl ciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1 cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4g cmVzdGFydC4KKysKKytfTFRfRU9GCisrCTs7CisrCSopCisrCSAgIyBGb3Igc2VjdXJpdHkgcmVh c29ucywgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5cworKwkgICMgdXNl IGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUg dGhlCisrCSAgIyBEVF9SVU5QQVRIIHRhZyBmcm9tIGV4ZWN1dGFibGVzIGFuZCBsaWJyYXJpZXMu ICBCdXQgZG9pbmcgc28KKysJICAjIHJlcXVpcmVzIHRoYXQgeW91IGNvbXBpbGUgZXZlcnl0aGlu ZyB0d2ljZSwgd2hpY2ggaXMgYSBwYWluLgorKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQ ICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysJICAg IGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5 bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBsZF9zaGxpYnM9bm8KKysJICBmaQor Kwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGFy Y2hpdmVfY21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICB3bGFyYz0KKysgICAgICBoYXJk Y29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAg IDs7CisrCisrICAgICopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3Vw cG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHM9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicK KysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAg ZXNhYworKworKyAgICBpZiB0ZXN0ICIkbGRfc2hsaWJzIiA9IG5vOyB0aGVuCisrICAgICAgcnVu cGF0aF92YXI9CisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KKysgICAgICBleHBv cnRfZHluYW1pY19mbGFnX3NwZWM9CisrICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Cisr ICAgIGZpCisrICBlbHNlCisrICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5 b3VyIHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKKysgICAgY2FzZSAkaG9zdF9vcyBpbgor KyAgICBhaXgzKikKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAg ICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz PSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZM QUdTICRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAjIE5vdGU6IHRoaXMgbGlu a2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorKyAgICAg ICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KKysgICAgICBoYXJkY29kZV9t aW51c19MPXllcworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KKysJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5n IG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCisrCSMgYnJva2VuIGNvbGxl Y3QyLgorKwloYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKKysgICAgICBmaQorKyAgICAgIDs7 CisrCisrICAgIGFpeFs0LTldKikKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRl ZmF1bHQsIHNvIHdlIGRvbid0CisrCSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgorKwlh aXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrCW5v X2VudHJ5X2ZsYWc9IiIKKysgICAgICBlbHNlCisrCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0 aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKwkjIC1DIG1lYW5zIGRlbWFuZ2xl IHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCisrCWlmICRO TSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KKysJICBleHBvcnRfc3lt Ym9sc19jbWRzPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYg KCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1 YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4g JGV4cG9ydF9zeW1ib2xzJworKwllbHNlCisrCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1C Q3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikg fHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAh PSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMn CisrCWZpCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFy ZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxl IGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQg dG8gZG8gcnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0 LlsyM10uKnxhaXhbNS05XSopCisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAg aWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRs Iik7IHRoZW4KKysJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICBicmVhawor KwkgIGZpCisrCSAgZG9uZQorKwkgIDs7CisrCWVzYWMKKysKKysJZXhwX3N5bV9mbGFnPSctYmV4 cG9ydCcKKysJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworKyAgICAgIGZpCisrCisrICAgICAg IyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlY IGxkIGNhbgorKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29u dGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRz IGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgIyBD WFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBu b3QKKysgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2Mg dG8gTERGTEFHUy4KKysKKysgICAgICBhcmNoaXZlX2NtZHM9JycKKysgICAgICBoYXJkY29kZV9k aXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcworKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JzonCisrICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMK KysgICAgICBmaWxlX2xpc3Rfc3BlYz0nJHt3bH0tZiwnCisrCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0u KikKKysJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhl IGNoZWNrCisrCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIg NC4zKworKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAK KysJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgorKwkgICBzdHJpbmdzICIkY29sbGVj dDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAorKwkgIHRoZW4KKysJ ICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICA6CisrCSAgZWxzZQorKwkgICMgV2Ug aGF2ZSBvbGQgY29sbGVjdDIKKysJICBoYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKKysJICAj IEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFs bGVkCisrCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhh cmRjb2RlX21pbnVzX0wKKysJICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKKysJ ICBoYXJkY29kZV9taW51c19MPXllcworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1M JGxpYmRpcicKKysJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQorKwkgIGZpCisrCSAgOzsK KysJZXNhYworKwlzaGFyZWRfZmxhZz0nLXNoYXJlZCcKKysJaWYgdGVzdCAiJGFpeF91c2VfcnVu dGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAi JyR7d2x9LUcnCisrCWZpCisrICAgICAgZWxzZQorKwkjIG5vdCB1c2luZyBnY2MKKysJaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUu NSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJIyBjaG9rZXMgb24gLVds LC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKKysJICBzaGFyZWRfZmxhZz0nLUcn CisrCWVsc2UKKysJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRo ZW4KKysJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkgIGVsc2UKKysJICAgIHNoYXJlZF9m bGFnPScke3dsfS1iTTpTUkUnCisrCSAgZmkKKysJZmkKKysgICAgICBmaQorKworKyAgICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tYmV4cGFsbCcKKysgICAgICAjIEl0IHNlZW1z IHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysg ICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0 IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgorKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMK KysgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJ IyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdz ICgtYnJ0bCksCisrCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHBy b2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Jy1iZXJvaycK KysgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUg ZW5jb2RlZCBpbiBhbgorKyAgICAgICAgIyBlbXB0eSBleGVjdXRhYmxlLgorKyAgICAgICAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgp CisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKworK2x0X2Fp eF9saWJwYXRoX3NlZD0nCisrICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKysJL14w LyB7CisrCSAgICBzL14wICAqXCguKlwpJC9cMS8KKysJICAgIHAKKysJfQorKyAgICB9JworK2Fp eF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQg LW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVj dCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgi OyB0aGVuCisrICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4v ZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKytmaQorK2Vsc2UK KysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVz dC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9 Ii91c3IvbGliOi9saWIiOyBmaQorKworKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysgICAgICAgIGFyY2hp dmVfZXhwc3ltX2NtZHM9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3Qg Ingke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgIGVsc2UKKysJaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKysJICBhbGxvd191bmRlZmluZWRf ZmxhZz0iLXogbm9kZWZzIgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9m bGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3ds fSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRf ZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCisrCWVsc2UKKysJ ICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBp biBhbgorKwkgIyBlbXB0eSBleGVjdXRhYmxlLgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk YWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKKysgICAgICAgfTsgdGhlbgorKworK2x0X2FpeF9saWJwYXRoX3NlZD0nCisrICAg IC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKysJL14wLyB7CisrCSAgICBzL14wICAqXCgu KlwpJC9cMS8KKysJICAgIHAKKysJfQorKyAgICB9JworK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0 aF9zZWQiYAorKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBh bnl0aGluZy4KKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisrICBhaXhfbGlicGF0 aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1l ICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKytmaQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lmIHRlc3Qg LXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQor KworKwkgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjon IiRhaXhfbGlicGF0aCIKKysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBy dW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVy cm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBub191bmRlZmluZWRf ZmxhZz0nICR7d2x9LWJlcm5vdG9rJworKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0t YmVyb2snCisrCSAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQg b2JqZWN0cyBmcm9tIGFyY2hpdmVzCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyRjb252 ZW5pZW5jZScKKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysJICAjIFRoaXMgaXMgc2lt aWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVz LgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+ JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9v YmpkaXIvJHNvbmFtZScKKysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdh b3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAg ICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAg ICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBhcmNo aXZlX2V4cHN5bV9jbWRzPScnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAg ICAgYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNI TyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh dGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGli cmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9i anN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwor KyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAg ICAgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisr ICAgICAgOzsKKysKKysgICAgYnNkaVs0NV0qKQorKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0tcmR5bmFtaWMKKysgICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiogfCBjZWdjYyopCisrICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBh c3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgor KyAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVz cywgYXMgdGhlcmUgaXMKKysgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2Zs YWc9dW5zdXBwb3J0ZWQKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywg bm90IC5hIGZpbGVzLgorKyAgICAgIGxpYmV4dD1saWIKKysgICAgICAjIFRlbGwgbHRtYWluIHRv IG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKysgICAgICBzaHJleHRfY21kcz0iLmRs bCIKKysgICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2su CisrICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxh Z3MgYCRFQ0hPICJYJGRlcGxpYnMiIHwgJFhzZWQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5r IC1kbGx+bGlua25hbWVzPScKKysgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNhbGx5 IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgorKyAgICAgIG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHM9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNl ciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBvbGRfYXJjaGl2ZV9jbWRzPSdsaWIg LU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisrICAgICAgZml4X3NyY2ZpbGVfcGF0 aD0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCisrICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0 YXRpY19ydW50aW1lcz15ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkq KQorKworKworKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgIGhhcmRjb2RlX2RpcmVjdD1u bworKyAgaGFyZGNvZGVfYXV0b21hdGljPXllcworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11 bnN1cHBvcnRlZAorKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JycKKysgIGxpbmtfYWxsX2Rl cGxpYnM9eWVzCisrICBhbGxvd191bmRlZmluZWRfZmxhZz0iJF9sdF9kYXJfYWxsb3dfdW5kZWZp bmVkIgorKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgIGlmb3J0KikgX2x0X2Rhcl9jYW5f c2hhcmVkPXllcyA7OworKyAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKKysgIGVz YWMKKysgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KKysgICAg b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworKyAgICBhcmNoaXZlX2NtZHM9IlwkQ0MgLWR5 bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBs aWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVy c3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9j bWRzPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9i anMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCisrICAgIGFyY2hp dmVfZXhwc3ltX2NtZHM9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1 dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxl cl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRf ZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysg ICAgbW9kdWxlX2V4cHN5bV9jbWRzPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xz ID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrCisr ICBlbHNlCisrICBsZF9zaGxpYnM9bm8KKysgIGZpCisrCisrICAgICAgOzsKKysKKysgICAgZGd1 eCopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAg ICA7OworKworKyAgICBmcmVlYnNkMSopCisrICAgICAgbGRfc2hsaWJzPW5vCisrICAgICAgOzsK KysKKysgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAu byB0byBnZXQgQysrIGNvbnN0cnVjdG9yCisrICAgICMgc3VwcG9ydC4gIEZ1dHVyZSB2ZXJzaW9u cyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBjKytydDAubworKyAgICAj IGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhl IGNvc3Qgb2YgYSBsaXR0bGUKKysgICAgIyBleHRyYSBzcGFjZSkuCisrICAgIGZyZWVic2QyLjIq KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXll cworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAj IFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0 aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2QyKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAt QnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAg ICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJT RCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4K KysgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2Rp cmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysK KysgICAgaHB1eDkqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFyY2hp dmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3 bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBlbHNlCisr CWFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0 YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0 cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yPToKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrCisrICAgICAgIyBo YXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysgICAgICAj IGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICBoYXJk Y29kZV9taW51c19MPXllcworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0t RScKKysgICAgICA7OworKworKyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0g eWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGli ZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVs c2UKKysJYXJjaGl2ZV9jbWRzPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAg ICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkPScrYiAkbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysJaGFy ZGNvZGVfZGlyZWN0PXllcworKwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCisrCWV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysJIyBoYXJkY29kZV9taW51c19MOiBOb3Qg cmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRp b24gb2YgdGhlIGxpYnJhcnkuCisrCWhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICBocHV4MTEqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1h ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2 NCopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0 KikKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29u YW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAt ZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMK KysgICAgICBlbHNlCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hp dmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFyY2hpdmVfY21k cz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAg YXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRp bnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRs aWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwljYXNlICRob3N0X2Nw dSBpbgorKwlocHBhKjY0KnxpYTY0KikKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8KKysJICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCSAgOzsKKysJKikKKysJICBoYXJkY29kZV9kaXJlY3Q9 eWVzCisrCSAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcworKwkgIGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYz0nJHt3bH0tRScKKysKKysJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFs bHkgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9u IG9mIHRoZSBsaWJyYXJ5LgorKwkgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrCSAgOzsKKysJZXNh YworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3Rv cHV4KikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNl dF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5 ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJIyBUcnkgdG8g dXNlIHRoZSAtZXhwb3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKKysJIyB3 b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFuZAor KwkjIGltcGxpY2l0bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgorKyAgICAgICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhw b3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVs bCIKKysgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorK2ludCBmb28odm9p ZCkge30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhl ZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29u YW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7 d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICAgICBMREZMQUdTPSIk c2F2ZV9MREZMQUdTIgorKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2Vk YCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn CisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkg JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPSdubycK KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaW5oZXJpdF9y cGF0aD15ZXMKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAgIDs7CisrCisrICAg IG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VM Rl9fID4vZGV2L251bGw7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgIyBhLm91dAorKyAgICAgIGVs c2UKKysJYXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIG5ld3Nv czYpCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwor KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgKm50byogfCAqcW54KikKKysgICAg ICA7OworKworKyAgICBvcGVuYnNkKikKKysgICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9s ZC5zbzsgdGhlbgorKwloYXJkY29kZV9kaXJlY3Q9eWVzCisrCWhhcmRjb2RlX3NobGlicGF0aF92 YXI9bm8KKysJaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcworKwlpZiB0ZXN0IC16ICJgZWNo byBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3Mt JGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFn IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzJworKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSck e3dsfS1FJworKwllbHNlCisrCSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgICBvcGVuYnNkWzAxXS4q IHwgb3BlbmJzZDIuWzAtN10gfCBvcGVuYnNkMi5bMC03XS4qKQorKwkgICAgIGFyY2hpdmVfY21k cz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKKysJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrCSAgICAg OzsKKysJICAgKikKKysJICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgIDs7CisrCSAg ZXNhYworKwlmaQorKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBvczIqKQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1M JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9taW51c19MPXllcworKyAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYXJjaGl2ZV9jbWRzPSckRUNITyAiTElCUkFS WSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRF Q0hPICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn4kRUNITyBEQVRBID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiIFNJ TkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBFWFBP UlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYn CisrICAgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nZW14aW1wIC1vICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIDs7Cisr CisrICAgIG9zZjMqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93 X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmlu ZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFn PScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1z b25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNp b24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgYXJjaGl2ZV9jbWRzX25l ZWRfbGM9J25vJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAg ICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9u IG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhbGxv d191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFy Y2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29u YW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7 d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UKKysJYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAk RUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5 ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3lt X2NtZHM9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xc biIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJpbnRmICIlc1xc biIgIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMg JGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAi WC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworKworKwkjIEJv dGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGM9J25vJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9 OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFn PScgLXogZGVmcycKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwl3bGFyYz0n JHt3bH0nCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3 bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3dsfS16 ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKyAg ICAgIGVsc2UKKysJY2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSoiQ29tcGlsZXJzIDUuMCIqKQor KwkgIHdsYXJjPScnCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0 ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVj aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJExEIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCSopCisrCSAgd2xhcmM9JyR7 d2x9JworKwkgIGFyY2hpdmVfY21kcz0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBh cmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBv cnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxv Y2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxh Z30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJp czIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKyAgICAgICopCisrCSMgVGhlIGNvbXBp bGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCSMg YnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuICBHQ0MgZGlzY2FyZHMgaXQgd2l0aG91 dCBgJHdsJywKKysJIyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIuCisrCSMg U3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCisrCWlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LXogJHt3 bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJ ZWxzZQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScteiBhbGxleHRyYWN0JGNvbnZlbmll bmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBs aW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAg aWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgorKwkjIFVzZSAkQ0MgdG8g bGluayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5vCisr CSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgorKwlhcmNo aXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAtYXNz ZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRs aWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX21pbnVz X0w9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisr ICAgIHN5c3Y0KQorKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrCXNuaSkKKysJICBhcmNo aXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysJICBoYXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1 ZT8/PworKwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExBTUxJ QgorKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4KKysJICBhcmNoaXZlX2NtZHM9 JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgcmVs b2FkX2NtZHM9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIGhhcmRjb2RlX2Rp cmVjdD1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEpCisrCSAgYXJjaGl2ZV9jbWRzPSckTEQg LUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisr CSAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0 ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgcnVucGF0aF92YXI9 J0xEX1JVTl9QQVRIJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7 OworKworKyAgICBzeXN2NC4zKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSct QmV4cG9ydCcKKysgICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAt ZCAvdXNyL25lYzsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKwloYXJkY29kZV9ydW5wYXRoX3Zh cj15ZXMKKysJbGRfc2hsaWJzPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lz djQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVu aXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKKysgICAgICBub191bmRlZmluZWRfZmxhZz0n JHt3bH0teix0ZXh0JworKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK KysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0Mg LUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0 X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4y djUqIHwgc2NvNXY2KikKKysgICAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMg d2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKyAgICAgICMgbGluayB3aXRoIC1s YywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KKysg ICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxp YnJhcnkgd291bGQKKysgICAgICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3Qg dXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrICAgICAgIyB0aG91Z2gsIHdoaWNoIGRvZXMg Y2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCisrICAgICAg IyBhcyAteiBkZWZzLgorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCisr ICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosbm9kZWZzJworKyAgICAgIGFyY2hp dmVfY21kc19uZWVkX2xjPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIsJGxpYmRpcicKKysgICAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVz CisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CZXhwb3J0JworKyAgICAg IHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1f Y21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAg IGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSck Q0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAg OzsKKysKKysgICAgdXRzNCopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGxkX3NobGlicz1ubworKyAg ICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCB4JGhvc3RfdmVuZG9yID0geHNuaTsg dGhlbgorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwg c3lzdjQuMyogfCBzeXN2NSopCisrCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxh cmdlZHluc3ltJworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGZpCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlicyIgPiY1CisrJGFzX2VjaG8g IiRsZF9zaGxpYnMiID4mNjsgfQorK3Rlc3QgIiRsZF9zaGxpYnMiID0gbm8gJiYgY2FuX2J1aWxk X3NoYXJlZD1ubworKworK3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAorKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGlj aXRseSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGMiIGluCisr eHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgYXJjaGl2ZV9jbWRz X25lZWRfbGM9eWVzCisrCisrICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgY2FzZSAkYXJjaGl2ZV9jbWRzIGluCisrICAgICon ficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21t YW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAgICMgVGVzdCB3 aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNv bWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdj YyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9y ZSAtbGdjYy4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4g IiA+JjY7IH0KKysgICAgICAkUk0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgeyAoZXZh bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAk YWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5j b25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1jb25mdGVzdAorKyAgICAgICAgbGli PWNvbmZ0ZXN0CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICAgICAg IGRlcGxpYnM9CisrICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bAorKwlwaWNfZmxhZz0k bHRfcHJvZ19jb21waWxlcl9waWMKKysgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12CisrICAgICAg ICBsaW5rZXJfZmxhZ3M9LXYKKysgICAgICAgIHZlcnN0cmluZz0KKysgICAgICAgIG91dHB1dF9v YmpkaXI9LgorKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAorKyAgICAgICAgbHRfc2F2ZV9hbGxv d191bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysgICAgICAgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnPQorKyAgICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzog XCIkYXJjaGl2ZV9jbWRzIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+ XCYxXCIiKSA+JjUKKysgIChldmFsICRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1s YyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9CisrICAgICAgICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysg ICAgICAgIGVsc2UKKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysgICAgICAgIGZpCisr ICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxh ZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZp CisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY1CisrJGFzX2VjaG8gIiRhcmNoaXZl X2NtZHNfbmVlZF9sYyIgPiY2OyB9CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7 CisrZXNhYworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrCisr aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZGFy d2luKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIvIiA7OworKyAgICAqKSBsdF9hd2tf YXJnPSIvXmxpYnJhcmllczovIiA7OworKyAgZXNhYworKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1g JENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxp YnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKKysgIGlmICRFQ0hPICIkbHRfc2VhcmNoX3BhdGhf c3BlYyIgfCAkR1JFUCAnOycgPi9kZXYvbnVsbCA7IHRoZW4KKysgICAgIyBpZiB0aGUgcGF0aCBj b250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgorKyAgICAj IG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAi OiIpIC0gaXQgaXMKKysgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRo bmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCisrICAgICMgb2theSBpbiB0aGUgcmVh bCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgorKyAg ICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNF RCAtZSAncy87LyAvZydgCisrICBlbHNlCisrICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hP ICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9n ImAKKysgIGZpCisrICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNw YWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBp ZiBuZWNlc3NhcnkuCisrICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRp X29zX2Rpcj1gJENDICRDUFBGTEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1k aXJlY3RvcnkgMj4vZGV2L251bGxgCisrICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9w YXRoX3NwZWM7IGRvCisrICAgIGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3Nf ZGlyIjsgdGhlbgorKyAgICAgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0 X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVs c2UKKysgICAgICB0ZXN0IC1kICIkbHRfc3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJj aF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisr ICAgIGZpCisrICBkb25lCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfdG1wX2x0 X3NlYXJjaF9wYXRoX3NwZWMgfCBhd2sgJworK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsK KysgIGx0X2Zvbz0iIjsKKysgIGx0X2NvdW50PTA7CisrICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+ IDA7IGx0X2ktLSkgeworKyAgICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7Cisr ICAgICAgaWYgKCRsdF9pID09ICIuLiIpIHsKKysgICAgICAgIGx0X2NvdW50Kys7CisrICAgICAg fSBlbHNlIHsKKysgICAgICAgIGlmIChsdF9jb3VudCA9PSAwKSB7CisrICAgICAgICAgIGx0X2Zv bz0iLyIgJGx0X2kgbHRfZm9vOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgbHRfY291 bnQtLTsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgIH0KKysgIH0KKysgIGlmIChsdF9mb28g IT0gIiIpIHsgbHRfZnJlcVtsdF9mb29dKys7IH0KKysgIGlmIChsdF9mcmVxW2x0X2Zvb10gPT0g MSkgeyBwcmludCBsdF9mb287IH0KKyt9J2AKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1g JEVDSE8gJGx0X3NlYXJjaF9wYXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorK2ZpCisrbGlicmFyeV9uYW1l c19zcGVjPQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hyZXh0 X2NtZHM9Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0KKytm aW5pc2hfY21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIg L3Vzci9saWIiCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xpYnM9 bm8KKysKKysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBk b2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBh cmd1bWVudHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKyth aXgzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisrICBz aGxpYnBhdGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3Vw cG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7Owor KworK2FpeFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2 NAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNy ZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRo ZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAg VGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQg b24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysg ICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKKysg ICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19H TlVDX01JTk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2VuZGlm JzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAg ICAgIGVsc2UKKysJY2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysg ICAgZXNhYworKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0 LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1l IGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQg dG8KKysgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGlu IGZ1dHVyZS4KKysgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCisrICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxh dGVyKSB1c2UgbGliPG5hbWU+LnNvCisrICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRv IGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlY IHNoYXJlZCBsaWJyYXJpZXMuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAg ICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJv dWdoIEFJWDQuMgorKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4g dGltZSBsaW5raW5nLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0uYSAkbGlibmFtZS5hJworKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElC UEFUSAorKyAgZmkKKysgIDs7CisrCisrYW1pZ2FvcyopCisrICBjYXNlICRob3N0X2NwdSBpbgor KyAgcG93ZXJwYykKKysgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBz dXBwb3J0cyAuc28gbGlicmFyaWVzLgorKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRh YmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCisrICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgICA7OworKyAgbTY4aykKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKKysgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9p eGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKysgICAgZmluaXNoX2V2YWw9J2ZvciBs aWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWAk RUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVc MSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93 ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2Qg L3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7 IGRvbmUnCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKwor K2JzZGlbNDVdKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2Nv bnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBs ZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9Y MTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBh bGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7 OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25fdHlw ZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAg bmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxj eWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0 byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxf Y21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hF TEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5h bWUnXCcnYH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+CisrICAg ICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3RhbGxf cHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBcJGRs ZGlyLyRkbG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3Qg LW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBc JGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0dW5p bnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRs bmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBcJGRs cGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNl ICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5 ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7 bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAt ZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xp YiIKKysgICAgICA7OworKyAgICBtaW5ndyogfCBjZWdjYyopCisrICAgICAgIyBNaW5HVyBETExz IHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7 c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50 LXNlYXJjaC1kaXJzIHwgJEdSRVAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmll czovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KKysgICAgICAg ICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQor KyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBw cmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQg d2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2ZSBs ZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVt LAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhl cmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0 YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsv IC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRF Q0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFS QVRPUi8gL2ciYAorKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgcHczMiopCisrICAgICAgIyBw dzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgbGlicmFy eV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNo byAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9l eHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsKKysKKysgICopCisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1su XS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJworKyAgICA7Owor KyAgZXNhYworKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKysgICMgRklYTUU6IGZp cnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBp cyBpbgorKyAgc2hsaWJwYXRoX3Zhcj1QQVRICisrICA7OworKworK2RhcndpbiogfCByaGFwc29k eSopCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKKysgIHZlcnNpb25fdHlwZT1k YXJ3aW4KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCAk e2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAorKyAgc2hyZXh0X2NtZHM9J2B0 ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCisrCisrICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9s b2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIg L2xpYiAvdXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQn CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJlZWJzZDEq KQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkq KQorKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxl bWVudCBhIG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisrICBp ZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9YC91c3Iv YmluL29iamZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBmcmVl YnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7Cisr ICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBj YXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAg IDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisr ICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAg OzsKKysgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg ICA7OworKyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAorKyAgZnJl ZWJzZDQuWzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2Rl bGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFn b25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2 ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0g JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEw KiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFq b3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBv dGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikK KysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg ICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5s ZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBp ZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNy L2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7 OworKyAgaHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJ Ql9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25v ZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIK KysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YworKyAgICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19s aW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVu YWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYwor KyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBh cmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7 CisrCisraW50ZXJpeFszLTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZHlu YW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisrICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2lyaXg1KiB8IGlyaXg2 KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG5vbnN0b3B1eCopIHZl cnNpb25fdHlwZT1ub25zdG9wdXggOzsKKysgICAgKikKKysJaWYgdGVzdCAiJGx0X2N2X3Byb2df Z251X2xkIiA9IHllczsgdGhlbgorKwkJdmVyc2lvbl90eXBlPWxpbnV4CisrCWVsc2UKKysJCXZl cnNpb25fdHlwZT1pcml4CisrCWZpIDs7CisrICBlc2FjCisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGlyaXg1KiB8IG5vbnN0b3B1 eCopCisrICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKysgICAgOzsKKysgICopCisrICAgIGNhc2Ug JExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMgdG8gTEQK KysgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikKKysgICAg ICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisrICAgICotbjMyfCoiLW4z MiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCisrICAgICAgbGlic3VmZj0z MiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CisrICAgICotNjR8KiItNjQgInwqLW1lbGY2 NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZmPTY0IGxp Ym1hZ2ljPTY0LWJpdDs7CisrICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9bmV2 ZXItbWF0Y2g7OworKyAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAv bGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgorKyAgaGFy ZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKysjIE5vIHNoYXJlZCBsaWIgc3VwcG9ydCBm b3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCisrbGludXgqb2xkbGQqIHwgbGludXgqYW91 dCogfCBsaW51eCpjb2ZmKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworKyMgVGhp cyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgdmVyc2lvbl90 eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25m aWcgLW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0 Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAorKyAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisrICBzYXZl X2xpYmRpcj0kbGliZGlyCisrICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkbHRfcHJvZ19jb21w aWxlcl93bFwiOyBcCisrICAgICAgIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNcIiIKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytf QUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lm IHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNf bGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAi JGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAg ICAgIH07IHRoZW4KKysgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9k ZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4KKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKytmaQorKworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor KyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCisrICBsaWJkaXI9JHNhdmVfbGliZGlyCisrCisrICAj IFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysg ICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAor KyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysKKysgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxp YnJhcnkgcGF0aC4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9s aWI2NCAvbGliIC91c3IvbGliIgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0 byB0aGUgc2VhcmNoIHBhdGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisr ICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9l dGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkg cHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMu Ki8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSog LyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCisrICBmaQorKwor KyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQg bGlicmFyaWVzIG9uCisrICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRl ZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCisrICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNp bmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKKysgICMgbW9zdCBwb3dl cnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCisr ICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1v dmVkLCBhbmQgd2UKKysgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMg aW4gdXNlLgorKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKKysgIDs7CisrCisr bmV0YnNkKikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAg X19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxk Y29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBs ZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5r ZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKysqbnRvKiB8ICpxbngqKQor KyAgdmVyc2lvbl90eXBlPXFueAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgIGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKKysgIDs7CisrCisrb3BlbmJzZCop CisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYiIKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgIyBTb21lIG9sZGVyIHZlcnNpb25z IG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgorKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3Zl cnNpb249eWVzIDs7CisrICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKKysgIGVzYWMKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21k cz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0Mg LUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9w ZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIG9w ZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubworKwk7OworKyAgICAgICopCisrCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKKysJOzsKKysgICAgICBlc2FjCisrICBlbHNlCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgIGZpCisrICA7OworKworK29zMiopCisrICBsaWJuYW1lX3NwZWM9JyRu YW1lJworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCisrICBk eW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysg IDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgdmVyc2lvbl90eXBlPW9zZgorKyAg bmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xp YiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisrICA7OworKworK3Jkb3MqKQorKyAgZHlu YW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrc29sYXJpcyopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgIyBsZGQg Y29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxs X2NtZHM9J2NobW9kICt4ICRsaWInCisrICA7OworKworK3N1bm9zNCopCisrICB2ZXJzaW9uX3R5 cGU9c3Vub3MKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisr ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAg bmVlZF9saWJfcHJlZml4PW5vCisrICBmaQorKyAgbmVlZF92ZXJzaW9uPXllcworKyAgOzsKKysK KytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF92ZW5k b3IgaW4KKysgICAgc25pKQorKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwor KyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRI CisrICAgICAgOzsKKysgICAgc2llbWVucykKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg ICAgICA7OworKyAgICBtb3Rvcm9sYSkKKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAg ICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8K KysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3Mv bGliJworKyAgICAgIDs7CisrICBlc2FjCisrICA7OworKworK3N5c3Y0Kk1QKikKKysgIGlmIHRl c3QgLWQgL3Vzci9uZWMgO3RoZW4KKysgICAgdmVyc2lvbl90eXBlPWxpbnV4CisrICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUk e3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9z cGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJworKyAgICBzaGxpYnBhdGhfdmFyPUxE X0xJQlJBUllfUEFUSAorKyAgZmkKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2Nv NXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICB2ZXJzaW9uX3R5 cGU9ZnJlZWJzZC1lbGYKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAg aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9s aWIgL2xpYicKKysgIGVsc2UKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Nj cy9saWIgL3Vzci9saWInCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSop CisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7CisrCisrdHBmKikKKysgICMgVFBGIGlzIGEgY3Jv c3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KKysgIHZl cnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgOzsKKysKKyt1dHM0KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrKikKKysg IGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkZHluYW1pY19saW5rZXIiID4mNQorKyRhc19lY2hvICIkZHluYW1pY19s aW5rZXIiID4mNjsgfQorK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRf c2hhcmVkPW5vCisrCisrdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0 aF92YXIgJHJ1bnBhdGhfdmFyIgorK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICB2YXJp YWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19F WEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKKytmaQorKworK2lmIHRlc3Qg IiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMi CisrZmkKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0i ID0gc2V0OyB0aGVuCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIGhhcmRj b2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsg fQorK2hhcmRjb2RlX2FjdGlvbj0KKytpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYyIgfHwKKysgICB0ZXN0IC1uICIkcnVucGF0aF92YXIiIHx8CisrICAgdGVzdCAiWCRoYXJk Y29kZV9hdXRvbWF0aWMiID0gIlh5ZXMiIDsgdGhlbgorKworKyAgIyBXZSBjYW4gaGFyZGNvZGUg bm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgorKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIg IT0gbm8gJiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2Rp bmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lz ZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAgICMgd2hlbiB3 ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKKysgICAg ICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICkiICE9IG5vICYm CisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4KKysgICAgIyBMaW5r aW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KKysg ICAgaGFyZGNvZGVfYWN0aW9uPXJlbGluaworKyAgZWxzZQorKyAgICAjIFdlIGNhbiBsaW5rIHdp dGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgor KyAgICBoYXJkY29kZV9hY3Rpb249aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fu bm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0 aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFyZGNvZGVfYWN0aW9uPXVuc3VwcG9ydGVkCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9u IiA+JjUKKyskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbiIgPiY2OyB9CisrCisraWYgdGVzdCAi JGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbmsgfHwKKysgICB0ZXN0ICIkaW5oZXJpdF9ycGF0aCIg PSB5ZXM7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAg ZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVu CisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0 X2luc3RhbGw9bmVlZGxlc3MKKytmaQorKworKworKworKworKworKworKyAgaWYgdGVzdCAieCRl bmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCisrICBlbmFibGVfZGxvcGVuPXVua25vd24KKysg IGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGlj PXVua25vd24KKytlbHNlCisrICBsdF9jdl9kbG9wZW49bm8KKysgIGx0X2N2X2Rsb3Blbl9saWJz PQorKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYmVvcyopCisrICAgIGx0X2N2X2Rsb3Blbj0i bG9hZF9hZGRfb24iCisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBsdF9jdl9kbG9wZW5f c2VsZj15ZXMKKysgICAgOzsKKysKKysgIG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICBs dF9jdl9kbG9wZW49IkxvYWRMaWJyYXJ5IgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAg OzsKKysKKysgIGN5Z3dpbiopCisrICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgorKyAgICBsdF9j dl9kbG9wZW5fbGlicz0KKysgICAgOzsKKysKKysgIGRhcndpbiopCisrICAjIGlmIGxpYmRsIGlz IGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X2xpYl9kbF9kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJ QlM9Ii1sZGwgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4g IkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1 cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8 fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAg YWNfY3ZfbGliX2RsX2Rsb3Blbj15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrCWFjX2N2X2xpYl9kbF9kbG9wZW49bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5k U1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKKyskYXNf ZWNobyAiJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGli X2RsX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9j dl9kbG9wZW5fbGlicz0iLWxkbCIKKytlbHNlCisrCisrICAgIGx0X2N2X2Rsb3Blbj0iZHlsZCIK KysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcworKwor K2ZpCisrCisrICAgIDs7CisrCisrICAqKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIHNobF9sb2FkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig c2hsX2xvYWQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfc2hsX2xvYWQrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysvKiBEZWZpbmUgc2hs X2xvYWQgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJl cyBzaGxfbG9hZC4KKysgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFy ZXMgZ2V0dGltZW9mZGF5LiAgKi8KKysjZGVmaW5lIHNobF9sb2FkIGlubm9jdW91c19zaGxfbG9h ZAorKworKy8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVm dWxseSBmZXcgcHJvdG90eXBlcywKKysgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBz aGxfbG9hZCAoKTsgYmVsb3cuCisrICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKysKKysjaWZkZWYgX19TVERDX18KKysj IGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5k aWYKKysKKysjdW5kZWYgc2hsX2xvYWQKKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBt aWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVu IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBf X2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIHNobF9sb2FkICgpOworKy8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt cGxlbWVudHMKKysgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9u cyBhcmUgYWN0dWFsbHkgbmFtZWQKKysgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCisrI2lmIGRlZmluZWQgX19zdHViX3No bF9sb2FkIHx8IGRlZmluZWQgX19zdHViX19fc2hsX2xvYWQKKytjaG9rZSBtZQorKyNlbmRpZgor KworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIHNobF9sb2FkICgpOworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk YWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfZnVuY19zaGxfbG9hZD15ZXMKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2Z1bmNfc2hsX2xvYWQ9 bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfc2hsX2xvYWQiID4mNQorKyRhc19l Y2hvICIkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9mdW5j X3NobF9sb2FkIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIKKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNobF9sb2Fk IGluIC1sZGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxk bGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbGRfc2hsX2xvYWQrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGxkICAkTElCUyIKKytjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBH Q0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJl Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0 aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgc2hsX2xv YWQgKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gc2hsX2xvYWQgKCk7CisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK KysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBhY19jdl9saWJfZGxkX3NobF9sb2Fk PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfbGliX2Rs ZF9zaGxfbG9hZD1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qu b28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0k YWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNQorKyRhc19lY2hvICIkYWNfY3Zf bGliX2RsZF9zaGxfbG9hZCIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfZGxkX3NobF9s b2FkIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxv cGVuX2xpYnM9Ii1sZGxkIgorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgZGxvcGVuIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVu Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9mdW5jX2Rsb3BlbitzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKy8qIERlZmluZSBkbG9wZW4gdG8gYW4g aW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBkbG9wZW4uCisr ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovCisrI2RlZmluZSBkbG9wZW4gaW5ub2N1b3VzX2Rsb3BlbgorKworKy8qIFN5c3RlbSBo ZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBl cywKKysgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBkbG9wZW4gKCk7IGJlbG93Lgor KyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmlu ZWQsIHNpbmNlCisrICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNv bXBpbGVycy4gICovCisrCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4K KysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCisrI3VuZGVmIGRsb3Bl bgorKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFu IGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4g dHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJD IgorKyNlbmRpZgorK2NoYXIgZGxvcGVuICgpOworKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmlu ZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKysgICAgdG8gYWx3YXlz IGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKKysg ICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBh bGlhcy4gICovCisrI2lmIGRlZmluZWQgX19zdHViX2Rsb3BlbiB8fCBkZWZpbmVkIF9fc3R1Yl9f X2Rsb3BlbgorK2Nob2tlIG1lCisrI2VuZGlmCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1 cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8 fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAg YWNfY3ZfZnVuY19kbG9wZW49eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKwlhY19jdl9mdW5jX2Rsb3Blbj1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K KytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVu Y19kbG9wZW4iID4mNQorKyRhc19lY2hvICIkYWNfY3ZfZnVuY19kbG9wZW4iID4mNjsgfQorK2lm IHRlc3QgIngkYWNfY3ZfZnVuY19kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9w ZW49ImRsb3BlbiIKKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxv cGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbF9kbG9wZW4r c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGwgICRMSUJTIgorK2Nh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUg YW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNo YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBk bG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0k PworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1m IGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7 CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25m dGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX2RsX2Rsb3Blbj15 ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2xpYl9kbF9k bG9wZW49bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK KysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9kbF9k bG9wZW4iID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPSB4IiJ5ZXM7 IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCIK KytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3Bl biBpbiAtbHN2bGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxz dmxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfc3ZsZF9kbG9wZW4rc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sc3ZsZCAgJExJQlMiCisrY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBhbnkg R0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBi ZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWls dGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAq LworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3Bl biAoKTsKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBkbG9wZW4gKCk7CisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBhY19jdl9saWJfc3ZsZF9kbG9wZW49eWVz CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9saWJfc3ZsZF9k bG9wZW49bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK KysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2No ZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID4mNQorKyRhc19lY2hvICIkYWNfY3ZfbGliX3N2 bGRfZGxvcGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPSB4 IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0i LWxzdmxkIgorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgZGxkX2xpbmsgaW4gLWxkbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbGRf bGluayBpbiAtbGRsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9kbGRf bGluaytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWxkbGQgICRMSUJT IgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3Zl cnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAg VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND CisrICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisr Y2hhciBkbGRfbGluayAoKTsKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBkbGRfbGluayAo KTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l eGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190 ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2xpYl9k bGRfZGxkX2xpbms9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlh Y19jdl9saWJfZGxkX2RsZF9saW5rPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY1CisrJGFzX2Vj aG8gIiRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xp Yl9kbGRfZGxkX2xpbmsiID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsZF9saW5r IiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiCisrZmkKKysKKysKKytmaQorKworKworK2ZpCisr CisrCisrZmkKKysKKysKKytmaQorKworKworK2ZpCisrCisrICAgIDs7CisrICBlc2FjCisrCisr ICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisrICAgIGVuYWJsZV9kbG9w ZW49eWVzCisrICBlbHNlCisrICAgIGVuYWJsZV9kbG9wZW49bm8KKysgIGZpCisrCisrICBjYXNl ICRsdF9jdl9kbG9wZW4gaW4KKysgIGRsb3BlbikKKysgICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZM QUdTIgorKyAgICB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxB R1M9IiRDUFBGTEFHUyAtREhBVkVfRExGQ05fSCIKKysKKysgICAgc2F2ZV9MREZMQUdTPSIkTERG TEFHUyIKKysgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZM QUdTICRleHBvcnRfZHluYW1pY19mbGFnX3NwZWNcIgorKworKyAgICBzYXZlX0xJQlM9IiRMSUJT IgorKyAgICBMSUJTPSIkbHRfY3ZfZGxvcGVuX2xpYnMgJExJQlMiCisrCisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVu IGl0c2VsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBhIHByb2dyYW0gY2Fu IGRsb3BlbiBpdHNlbGYuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxm K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIAkgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKysgIGx0X2N2 X2Rsb3Blbl9zZWxmPWNyb3NzCisrZWxzZQorKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNj b3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgorKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KKysg IGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrI2xpbmUgMTI1ODQgImNvbmZpZ3Vy ZSIKKysjaW5jbHVkZSAiY29uZmRlZnMuaCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1 ZGUgPGRsZmNuLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVm IFJUTERfR0xPQkFMCisrIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNl CisrIyAgaWZkZWYgRExfR0xPQkFMCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JB TAorKyMgIGVsc2UKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2Vu ZGlmCisrCisrLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhl IGNvbW1hbmQgbGluZSBpZiB3ZQorKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29t ZSBwbGF0Zm9ybS4gKi8KKysjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExE X0xBWlkKKysjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNl CisrIyAgICBpZmRlZiBETF9MQVpZCisrIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlE TF9MQVpZCisrIyAgICBlbHNlCisrIyAgICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVm aW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlm ZGVmIERMX05PVworKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisr IyAgICAgICAgZWxzZQorKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMg ICAgICAgIGVuZGlmCisrIyAgICAgIGVuZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2Vu ZGlmCisrCisrdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQorK2ludCBtYWluICgpCisreworKyAg dm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7Cisr ICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7Cisr ICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191 c2NvcmU7CisrICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAk bHRfZGxuZWVkX3VzY29yZTsKKysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKysgICAgfQor KyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsKKysKKysgIHJldHVybiBzdGF0dXM7Cisr fQorK19MVF9FT0YKKysgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xp bmtcIiIpID4mNQorKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251 bGw7IHRoZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCisrICAg IGx0X3N0YXR1cz0kPworKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCisrICAgICAgeCRsdF9kbG5v X3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNj b3JlKSBsdF9jdl9kbG9wZW5fc2VsZj15ZXMgOzsKKysgICAgICB4JGx0X2RsdW5rbm93bnx4Kikg bHRfY3ZfZGxvcGVuX3NlbGY9bm8gOzsKKysgICAgZXNhYworKyAgZWxzZSA6CisrICAgICMgY29t cGlsYXRpb24gZmFpbGVkCisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vCisrICBmaQorK2ZpCisr cm0gLWZyIGNvbmZ0ZXN0KgorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGx0X2N2X2Rsb3Blbl9zZWxmIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2Rsb3Bl bl9zZWxmIiA+JjY7IH0KKysKKysgICAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW5fc2VsZiIgPSB4 eWVzOyB0aGVuCisrICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwi XCRMREZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCisrICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9n cmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIAkgIGlmIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKysgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRp Yz1jcm9zcworK2Vsc2UKKysgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9k bG5lZWRfdXNjb3JlPTIKKysgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCisrICBjYXQgPiBjb25m dGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorKyNsaW5lIDEyNjgwICJjb25maWd1cmUiCisrI2luY2x1 ZGUgImNvbmZkZWZzLmgiCisrCisrI2lmIEhBVkVfRExGQ05fSAorKyNpbmNsdWRlIDxkbGZjbi5o PgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxzdGRpby5oPgorKworKyNpZmRlZiBSVExEX0dMT0JB TAorKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKKysjZWxzZQorKyMgIGlmZGVm IERMX0dMT0JBTAorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKysjICBlbHNl CisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8q IFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxp bmUgaWYgd2UKKysgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0u ICovCisrI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCisrIyAgaWZkZWYgUlRMRF9MQVpZCisrIyAg ICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCisrIyAgZWxzZQorKyMgICAgaWZk ZWYgRExfTEFaWQorKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorKyMg ICAgZWxzZQorKyMgICAgICBpZmRlZiBSVExEX05PVworKyMgICAgICAgIGRlZmluZSBMVF9ETExB WllfT1JfTk9XCVJUTERfTk9XCisrIyAgICAgIGVsc2UKKysjICAgICAgICBpZmRlZiBETF9OT1cK KysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVworKyMgICAgICAgIGVs c2UKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKKysjICAgICAgICBlbmRp ZgorKyMgICAgICBlbmRpZgorKyMgICAgZW5kaWYKKysjICBlbmRpZgorKyNlbmRpZgorKworK3Zv aWQgZm5vcmQoKSB7IGludCBpPTQyO30KKytpbnQgbWFpbiAoKQorK3sKKysgIHZvaWQgKnNlbGYg PSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOworKyAgaW50IHN0YXR1 cyA9ICRsdF9kbHVua25vd247CisrCisrICBpZiAoc2VsZikKKysgICAgeworKyAgICAgIGlmIChk bHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworKyAg ICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91 c2NvcmU7CisrICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCisrICAgIH0KKysgIGVsc2UKKysg ICAgcHV0cyAoZGxlcnJvciAoKSk7CisrCisrICByZXR1cm4gc3RhdHVzOworK30KKytfTFRfRU9G CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUK KysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxsOyB0aGVuCisr ICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mNSAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9 JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUpIGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMgOzsKKysgICAgICB4JGx0X2RsbmVlZF91c2NvcmUp IGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMgOzsKKysgICAgICB4JGx0X2RsdW5rbm93bnx4 KikgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPW5vIDs7CisrICAgIGVzYWMKKysgIGVsc2UgOgor KyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAorKyAgICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9 bm8KKysgIGZpCisrZmkKKytybSAtZnIgY29uZnRlc3QqCisrCisrCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjUK KyskYXNfZWNobyAiJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY2OyB9CisrICAgIGZpCisr CisrICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFHUyIKKysgICAgTERGTEFHUz0iJHNhdmVfTERG TEFHUyIKKysgICAgTElCUz0iJHNhdmVfTElCUyIKKysgICAgOzsKKysgIGVzYWMKKysKKysgIGNh c2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0k bHRfY3ZfZGxvcGVuX3NlbGYgOzsKKysgICopIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duIDs7 CisrICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMgaW4KKysgIHll c3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0kbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj IDs7CisrICAqKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPXVua25vd24gOzsKKysgIGVzYWMK KytmaQorKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor K3N0cmlwbGliPQorK29sZF9zdHJpcGxpYj0KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2li bGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwg JEdSRVAgIkdOVSBzdHJpcCIgPi9kZXYvbnVsbDsgdGhlbgorKyAgdGVzdCAteiAiJG9sZF9zdHJp cGxpYiIgJiYgb2xkX3N0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC1kZWJ1ZyIKKysgIHRlc3QgLXog IiRzdHJpcGxpYiIgJiYgc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLXVubmVlZGVkIgorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVz IiA+JjY7IH0KKytlbHNlCisrIyBGSVhNRSAtIGluc2VydCBzb21lIHJlYWwgdGVzdHMsIGhvc3Rf b3MgaXNuJ3QgcmVhbGx5IGdvb2QgZW5vdWdoCisrICBjYXNlICRob3N0X29zIGluCisrICBkYXJ3 aW4qKQorKyAgICBpZiB0ZXN0IC1uICIkU1RSSVAiIDsgdGhlbgorKyAgICAgIHN0cmlwbGliPSIk U1RSSVAgLXgiCisrICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCisrICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+ JjY7IH0KKysgICAgZWxzZQorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICBmaQorKyAgICA7OworKyAg KikKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrICAgIDs7CisrICBlc2FjCisrZmkKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysgICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2ls bCBhY3R1YWxseSBiZSBidWlsdAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2 OyB9CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY2FuX2J1aWxkX3No YXJlZCIgPiY1CisrJGFzX2VjaG8gIiRjYW5fYnVpbGRfc2hhcmVkIiA+JjY7IH0KKysKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJl ZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQg c2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQorKyAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQi ID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJh cmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysg ICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGFpeDMq KQorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwor KyAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICAgIGFyY2hpdmVfY21kcz0iJGFy Y2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKKysgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFO TElCICRsaWInCisrICAgIGZpCisrICAgIDs7CisrCisrICBhaXhbNC05XSopCisrICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIg PSBubyA7IHRoZW4KKysgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxl X3N0YXRpYz1ubworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkZW5h YmxlX3NoYXJlZCIgPiY2OyB9CisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuLi4gIiA+JjY7IH0K KysgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMg eWVzLgorKyAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVz CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3N0YXRpYyIg PiY1CisrJGFzX2VjaG8gIiRlbmFibGVfc3RhdGljIiA+JjY7IH0KKysKKysKKysKKysKKytmaQor K2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251 CisrCisrQ0M9IiRsdF9zYXZlX0NDIgorKworKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworK2FyY2hpdmVf Y21kc19uZWVkX2xjX0NYWD1ubworK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KKythbHdheXNf ZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCisrYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9CisrY29tcGls ZXJfbmVlZHNfb2JqZWN0X0NYWD1ubworK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9Cisr aGFyZGNvZGVfZGlyZWN0X0NYWD1ubworK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9bm8K KytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0KKytoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkX0NYWD0KKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0KKytoYXJkY29kZV9t aW51c19MX0NYWD1ubworK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPXVuc3VwcG9ydGVkCisr aGFyZGNvZGVfYXV0b21hdGljX0NYWD1ubworK2luaGVyaXRfcnBhdGhfQ1hYPW5vCisrbW9kdWxl X2NtZHNfQ1hYPQorK21vZHVsZV9leHBzeW1fY21kc19DWFg9CisrbGlua19hbGxfZGVwbGlic19D WFg9dW5rbm93bgorK29sZF9hcmNoaXZlX2NtZHNfQ1hYPSRvbGRfYXJjaGl2ZV9jbWRzCisrbm9f dW5kZWZpbmVkX2ZsYWdfQ1hYPQorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0KKytlbmFi bGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD1ubworKworKyMgU291cmNlIGZpbGUg ZXh0ZW5zaW9uIGZvciBDKysgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jcHAKKysKKysjIE9iamVj dCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9 bworK29iamV4dF9DWFg9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhl c2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBDWFggY29tcGls ZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisr IyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlz IHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNl ZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9l cnJvciIgIT0geWVzOyB0aGVuCisrICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGls ZSB0ZXN0cworKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJs ZSA9IDA7IgorKworKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKysg IGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBjaGFyICpbXSkgeyByZXR1 cm4oMCk7IH0nCisrCisrICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmln dXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrCisrCisrCisrCisrCisrCisrIyBJ ZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJEND In0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxB R1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysKKysKKysg ICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrICBhY19v dXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2 L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxl cl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisrCisrICBh Y19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251 bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9saW5rZXJfYm9p bGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJFJNIC1yIGNvbmZ0ZXN0KgorKworKworKyAg IyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKysgIGx0X3Nh dmVfQ0M9JENDCisrICBsdF9zYXZlX0xEPSRMRAorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgR0ND PSRHWFgKKysgIGx0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrICBsdF9zYXZlX3Bh dGhfTEQ9JGx0X2N2X3BhdGhfTEQKKysgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRj eHgrc2V0fSI7IHRoZW4KKysgICAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xk Y3h4CisrICBlbHNlCisrICAgICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAorKyAgZmkKKysg IGlmIHRlc3QgLW4gIiR7bHRfY3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgorKyAgICBsdF9jdl9w YXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hYCisrICBlbHNlCisrICAgICRhc191bnNldCBsdF9jdl9w YXRoX0xECisrICBmaQorKyAgdGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKKysg IENDPSR7Q1hYLSJjKysifQorKyAgY29tcGlsZXI9JENDCisrICBjb21waWxlcl9DWFg9JENDCisr ICBmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysg ICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7Owor KyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7Owor KyAgICBcLSopIDs7CisrICAgICopIGJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5h bWU9YCRFQ0hPICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9h bGlhcy0lJSJgCisrCisrCisrICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgICMg V2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3aGVuIGNvbXBpbGluZyBDKysgY29kZSwgc28g c2V0IHRoZQorKyAgICAjIG5vX2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5CisrICAgIGlmIHRlc3Qg IiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2Zs YWdfQ1hYPScgLWZuby1idWlsdGluJworKyAgICBlbHNlCisrICAgICAgbHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWdfQ1hYPQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgorKyAgICAgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9u CisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQgd2FzIGdpdmVuLgorK2lm IHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhf Z251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKKytlbHNlCisr ICB3aXRoX2dudV9sZD1ubworK2ZpCisrCisrYWNfcHJvZz1sZAorK2lmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCisrICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEg cGF0aC4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGQgdXNl ZCBieSAkQ0MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQy4u LiAiID4mNjsgfQorKyAgY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikKKysgICAgIyBnY2Mg bGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworKyAg ICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdg IDs7CisrICAqKQorKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVg IDs7CisrICBlc2FjCisrICBjYXNlICRhY19wcm9nIGluCisrICAgICMgQWNjZXB0IGFic29sdXRl IHBhdGhzLgorKyAgICBbXFwvXSogfCA/OltcXC9dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bXi9d W14vXSovXC5cLi8nCisrICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCisr ICAgICAgYWNfcHJvZz1gJEVDSE8gIiRhY19wcm9nInwgJFNFRCAncyVcXFxcJS8lZydgCisrICAg ICAgd2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVs bCAyPiYxOyBkbworKwlhY19wcm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0 JS8lImAKKysgICAgICBkb25lCisrICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ci CisrICAgICAgOzsKKysgICIiKQorKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2Ug YXJlbid0IHVzaW5nIEdDQy4KKysgICAgYWNfcHJvZz1sZAorKyAgICA7OworKyAgKikKKysgICAg IyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRI LgorKyAgICB3aXRoX2dudV9sZD11bmtub3duCisrICAgIDs7CisrICBlc2FjCisrZWxpZiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEdO VSBsZC4uLiAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG5v bi1HTlUgbGQuLi4gIiA+JjY7IH0KKytmaQorK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9MRCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9T RVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisrICAgIElGUz0iJGx0X3NhdmVf aWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1m ICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4 dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgorKyAgICAg ICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNl IC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05V IGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdO VS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9M RCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAgICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQor Kwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisrCTs7CisrICAgICAgKikKKysJ dGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsKKysgICAgICBlc2FjCisr ICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKytlbHNlCisrICBsdF9jdl9w YXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRo LgorK2ZpCisrZmkKKysKKytMRD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVzdCAtbiAiJExEIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExEIiA+JjUKKysk YXNfZWNobyAiJExEIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorK3Rlc3QgLXog IiRMRCIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFi bGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8g YWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHRoZSBs aW5rZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiB0aGUg bGlua2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJv Z19nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50 bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2 L251bGxgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBsdF9jdl9wcm9nX2dudV9sZD15 ZXMKKysgIDs7CisrKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPW5vCisrICA7OworK2VzYWMKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9s ZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2OyB9Cisrd2l0aF9nbnVf bGQ9JGx0X2N2X3Byb2dfZ251X2xkCisrCisrCisrCisrCisrCisrCisrCisrICAgICAgIyBDaGVj ayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2Ug dGhlCisrICAgICAgIyBhcmNoaXZpbmcgY29tbWFuZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxk IGlzIGJlaW5nIHVzZWQuCisrICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhl bgorKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCisrICAgICAgICAjIElmIGFyY2hpdmVf Y21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICAgICAgIyBY WFggSSB0aGluayB3bGFyYyBjYW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVl ZCB0bworKyAgICAgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChN TSkKKysgICAgICAgIHdsYXJjPScke3dsfScKKysKKysgICAgICAgICMgYW5jaWVudCBHTlUgbGQg ZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgICAgIGlmIGV2YWwg ImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwKKysJICAkR1JFUCAnbm8t d2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysgICAgICAgICAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3 bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKyAgICAgICAgZWxzZQorKyAgICAgICAgICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9CisrICAgICAgICBmaQorKyAgICAgIGVsc2UKKysgICAg ICAgIHdpdGhfZ251X2xkPW5vCisrICAgICAgICB3bGFyYz0KKysKKysgICAgICAgICMgQSBnZW5l cmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCisrICAg ICAgICAjIGNvbW1hbmQgZm9yIEdOVSBDKysgZm9yIHRoZSBjYXNlIHdoZXJlIGl0IHVzZXMgdGhl IG5hdGl2ZQorKyAgICAgICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9zc2li bGUsIHRoaXMgc2V0dGluZyBzaG91bGQKKysgICAgICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFk dmFudGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgorKyAgICAgICAgIyB0aGUg cGxhdGZvcm0gaXQgaXMgYmVpbmcgdXNlZCBvbi4KKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysgICAgICBmaQorKwor KyAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0 IHRoYXQgbGlzdHMKKysgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KKysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKysKKysgICAgZWxzZQor KyAgICAgIEdYWD1ubworKyAgICAgIHdpdGhfZ251X2xkPW5vCisrICAgICAgd2xhcmM9CisrICAg IGZpCisrCisrICAgICMgUE9SVE1FOiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0 ZW0ncyBDKysgbGluayBjaGFyYWN0ZXJpc3RpY3MKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9y dHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0 aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIg PiY2OyB9CisrICAgIGxkX3NobGlic19DWFg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysg ICAgICBhaXgzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysgICAgICBh aXhbNC05XSopCisrICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAg ICAgICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRl ZmF1bHQsIHNvIHdlIGRvbid0CisrICAgICAgICAgICMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVj aWFsLgorKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrICAgICAgICAgIGV4 cF9zeW1fZmxhZz0nLUJleHBvcnQnCisrICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9IiIKKysgICAg ICAgIGVsc2UKKysgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKworKyAgICAg ICAgICAjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBu b3JtYWwKKysgICAgICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdo ZXJlIGluIExERkxBR1MsIHdlCisrICAgICAgICAgICMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtp bmcuCisrICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFp eFs1LTldKikKKysJICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbworKwkgICAgICBjYXNl ICRsZF9mbGFnIGluCisrCSAgICAgICotYnJ0bCopCisrCSAgICAgICAgYWl4X3VzZV9ydW50aW1l bGlua2luZz15ZXMKKysJICAgICAgICBicmVhaworKwkgICAgICAgIDs7CisrCSAgICAgIGVzYWMK KysJICAgIGRvbmUKKysJICAgIDs7CisrICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAgZXhw X3N5bV9mbGFnPSctYmV4cG9ydCcKKysgICAgICAgICAgbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5 JworKyAgICAgICAgZmkKKysKKysgICAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBz aGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAgICMgaGF2ZSBwcm9i bGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFy eQorKyAgICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIg YWRkIC1tbWluaW1hbC10b2MgdG8KKysgICAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysv Z2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgICAjIGVub3VnaCB0 byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KKysKKysgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JycKKysgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVz CisrICAgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcworKyAgICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9JzonCisrICAgICAgICBsaW5rX2FsbF9kZXBsaWJz X0NYWD15ZXMKKysgICAgICAgIGZpbGVfbGlzdF9zcGVjX0NYWD0nJHt3bH0tZiwnCisrCisrICAg ICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAgICAgICBjYXNlICRob3N0X29z IGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQorKyAgICAgICAgICAjIFdlIG9ubHkgd2FudCB0 byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAgICAgIyBi ZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisrCSAgY29s bGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwkgIGlmIHRlc3Qg LWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAk R1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICAjIFdlIGhh dmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNlCisrCSAgICAjIFdlIGhhdmUg b2xkIGNvbGxlY3QyCisrCSAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXVuc3VwcG9ydGVkCisrCSAg ICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5z dGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRp bmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5r aW5nCisrCSAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMKKysJICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPSctTCRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD0KKysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNoYXJlZF9mbGFn PSctc2hhcmVkJworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsg dGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisrCSAgZmkK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAgICAgICAgIGlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJz aW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJICAjIGNob2tl cyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9m bGFnPSctRycKKysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGlt ZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkg ICAgZWxzZQorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgICAgZmkKKysg ICAgICAgICAgZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfQ1hYPScke3dsfS1iZXhwYWxsJworKyAgICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhw YWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgICAjIHVu ZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJv bHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPXll cworKyAgICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu CisrICAgICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUg bG9hZGluZyBmbGFncyAoLWJydGwpLAorKyAgICAgICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0 aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrICAgICAgICAg IGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nLWJlcm9rJworKyAgICAgICAgICAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkK KysgICAgICAgICAgIyBleGVjdXRhYmxlLgorKyAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg eworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9 JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9e MCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVt cCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4 X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0 IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4 X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNF RCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytp ZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGli IjsgZmkKKysKKysgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9 LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCisrICAgICAgICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAk ZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0 ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHth bGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9z eW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKKysJ ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0iLXogbm9kZWZzIgorKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVy X2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFn OlwkZXhwb3J0X3N5bWJvbHMiCisrICAgICAgICAgIGVsc2UKKysJICAgICMgRGV0ZXJtaW5lIHRo ZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgorKwkgICAgIyBl bXB0eSBleGVjdXRhYmxlLgorKwkgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0 CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQor KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAorKyAgICAgICB9OyB0aGVuCisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9y dCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wx LworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3Qk YWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJg CisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5n LgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1w IC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9h aXhfbGlicGF0aF9zZWQiYAorK2ZpCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisraWYgdGVzdCAteiAiJGFp eF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCisrCisrCSAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjon IiRhaXhfbGlicGF0aCIKKysJICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVy IHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisrCSAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91 dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCSAgICBub191bmRl ZmluZWRfZmxhZ19DWFg9JyAke3dsfS1iZXJub3RvaycKKysJICAgIGFsbG93X3VuZGVmaW5lZF9m bGFnX0NYWD0nICR7d2x9LWJlcm9rJworKwkgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBw dWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCisrCSAgICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9JyRjb252ZW5pZW5jZScKKysJICAgIGFyY2hpdmVfY21kc19uZWVk X2xjX0NYWD15ZXMKKysJICAgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9u YWxseSBidWlsZHMgaXRzIHNoYXJlZAorKwkgICAgIyBsaWJyYXJpZXMuCisrCSAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0NYWD0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAk e3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZM QUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29u YW1lJworKyAgICAgICAgICBmaQorKyAgICAgICAgZmkKKysgICAgICAgIDs7CisrCisrICAgICAg YmVvcyopCisrCWlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRz Oi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9 dW5zdXBwb3J0ZWQKKysJICAjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlz IHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisrCSAgIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBk ZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorKwkgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJZWxzZQorKwkgIGxkX3NobGlic19DWFg9bm8KKysJ ZmkKKysJOzsKKysKKysgICAgICBjaG9ydXMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysgICAgICAgICAgKikKKysJICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKKysJICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgOzsKKysgICAgICAgIGVzYWMKKysg ICAgICAgIDs7CisrCisrICAgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQor KyAgICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsIENYWCkgaXMg YWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBw YXRoIGZvciBETExzLgorKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1M JGxpYmRpcicKKysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD11bnN1cHBvcnRlZAor KyAgICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubworKyAgICAgICAgZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9eWVzCisrCisrICAgICAgICBpZiAkTEQgLS1o ZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxp bmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysgICAgICAgICAgIyBJZiB0aGUgZXhw b3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKyAgICAg ICAgICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgor KyAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0naWYgdGVzdCAieGAkU0VEIDFxICRl eHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKysJICAgIGNwICRleHBvcnRfc3ltYm9s cyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysgICAgICAgICAgZWxzZQorKwkgICAgZWNo byBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgICBjYXQgJGV4cG9y dF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBmaX4K KysgICAgICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0 by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAg ICAgZWxzZQorKyAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICBmaQorKyAgICAg ICAgOzsKKysgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKworKworKyAgYXJjaGl2ZV9jbWRz X25lZWRfbGNfQ1hYPW5vCisrICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCisrICBoYXJkY29kZV9h dXRvbWF0aWNfQ1hYPXllcworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0 ZWQKKysgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJworKyAgbGlua19hbGxfZGVwbGli c19DWFg9eWVzCisrICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9IiRfbHRfZGFyX2FsbG93X3Vu ZGVmaW5lZCIKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICBpZm9ydCopIF9sdF9kYXJf Y2FuX3NoYXJlZD15ZXMgOzsKKysgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7Cisr ICBlc2FjCisrICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCisr ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0i XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2Jq cyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25h bWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAg bW9kdWxlX2NtZHNfQ1hYPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1 bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0i CisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9z eW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0Mg LWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRk ZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwk dmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19s dF9kc3ltdXRpbH0iCisrICAgIG1vZHVsZV9leHBzeW1fY21kc19DWFg9InNlZCAtZSAncyxeLF8s JyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9s cy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7 X2x0X2RzeW11dGlsfSIKKysgICAgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9t b2QiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtciAta2Vl cF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpz flwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9 LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0 aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2RzeW11dGlsfSIKKysgICAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0 X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVf ZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHlu YW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8g XCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1l IFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAg ZmkKKysKKysgIGVsc2UKKysgIGxkX3NobGlic19DWFg9bm8KKysgIGZpCisrCisrCTs7CisrCisr ICAgICAgZGd1eCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBl YysrKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAor KwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgZ2hjeCopCisrCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7Owor KyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYwor KyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkWzEyXSopCisrICAgICAgICAjIEMrKyBzaGFy ZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlCisrCSMgc3dp dGNoIHRvIEVMRgorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysKKysg ICAgICBmcmVlYnNkLWVsZiopCisrICAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8K KysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgICAgICAg IyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFy ZCBFTEYKKysgICAgICAgICMgY29udmVudGlvbnMKKysgICAgICAgIGxkX3NobGlic19DWFg9eWVz CisrICAgICAgICA7OworKworKyAgICAgIGdudSopCisrICAgICAgICA7OworKworKyAgICAgIGhw dXg5KikKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7 d2x9JGxpYmRpcicKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysg ICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCisrICAgICAgICBo YXJkY29kZV9kaXJlY3RfQ1hYPXllcworKyAgICAgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVz ICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJCQkJICAgICAgICAgICAgICMgYnV0IGFzIHRo ZSBkZWZhdWx0CisrCQkJCSAgICAgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgor KworKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKyAgICAg ICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAg ICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgICAgICA7OworKyAgICAgICAgICBhQ0Mq KQorKyAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8kc29u YW1lfiRDQyAtYiAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwg bXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgICAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysgICAg ICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdz IGFyZSB1c2VkIHdoZW4KKysgICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4K KysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBi ZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKyAgICAgICAgICAgICMgZXhw bGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0 aGVtCisrICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdl dCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgor KyAgICAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIi OyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlz dD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9u ZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysgICAgICAgICAgICA7OworKyAgICAgICAgICAq KQorKyAgICAgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAgICAg ICBhcmNoaXZlX2NtZHNfQ1hYPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysgICAgICAgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgICAgICBmaQorKyAg ICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGhwdXgx MCp8aHB1eDExKikKKysgICAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKysJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisr CSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKyAgICAgICAgICBjYXNlICRo b3N0X2NwdSBpbgorKyAgICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgICAgICAgICAg OzsKKysgICAgICAgICAgICAqKQorKwkgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hY PScke3dsfS1FJworKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgZXNhYworKyAgICAgICAg ZmkKKysgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgIGhwcGEqNjQqfGlhNjQq KQorKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KKysgICAgICAgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICop CisrICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysgICAgICAgICAgICBoYXJk Y29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcworKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVz X0xfQ1hYPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCQkgICAgICAgICAjIGJ1 dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFy eS4KKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7Owor KyAgICAgICAgICBhQ0MqKQorKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgICAgaHBwYSo2 NCopCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29u YW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7CisrCSAgICAgIGlhNjQqKQorKwkg ICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3ds fStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICA7OworKwkgICAg ICAqKQorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkg ICAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIg bGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMg bGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0 IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAg IyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0 cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQg aW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBs aXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICou JG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3Qi IHwgJFhzZWQnCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KKysJICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKwkg ICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICAgICAgICBocHBhKjY0KikKKysJICAgICAg ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9 K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7OworKwkg ICAgICAgICAgaWE2NCopCisrCSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRy cGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICAgICAgOzsKKysJICAgICAgICAgICop CisrCSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAt ZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgICAgICA7OworKwkgICAgICAgIGVzYWMKKysJICAg ICAgZmkKKysJICAgIGVsc2UKKysJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrCSAgICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIGZpCisrCSAgICA7 OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBpbnRlcml4WzMtOV0qKQor KwloYXJkY29kZV9kaXJlY3RfQ1hYPW5vCisrCWhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5v CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwor KwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJworKwkjIEhhY2s6IE9uIElu dGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2Mu CisrCSMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJh c2UgKDB4MTAwMDAwMDAgYnkKKysJIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29u ZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKwkjIGNvbnN1bWluZyBhbmQgZnJh Z21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisrCSMg MjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMw MDAwIGF0IGxpbmsKKysJIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFs bG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29u YW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2 MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdz ZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5 bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRp ci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0 MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwk7OworKyAgICAgIGly aXg1KiB8IGlyaXg2KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAg IENDKikKKysJICAgICMgU0dJIEMrKworKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVw ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwor KwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVh dGVkIHVzaW5nCisrCSAgICAjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBj b21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50 aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJ ICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRv YmpzJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCisrCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9y ZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAg ICAgIGVsc2UKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2Vk YCAtbyAkbGliJworKwkgICAgICBmaQorKwkgICAgZmkKKysJICAgIGxpbmtfYWxsX2RlcGxpYnNf Q1hYPXllcworKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrICAgICAgICBpbmhlcml0X3JwYXRoX0NYWD15 ZXMKKysgICAgICAgIDs7CisrCisrICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKysgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisrCSAgICAjIEt1Y2sgYW5k IEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSAgICAjIEtDQyB3aWxs IG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSAgICAj IGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJy YXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5r aW5nLgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8 ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxp Yj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicK KysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0 IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1w bGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSwkZXhwb3J0X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAkbGliJworKwkgICAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMK KysJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlz IGNvbXBpbGVyIGZyb20KKysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3Qg ZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBz byB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRl cGVuZGVuY2llcy4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+ JjEgfCAkR1JFUCAibGQiYDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsg Zm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9 IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7 ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisrCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysKKysJICAgICMgQXJjaGl2ZXMgY29u dGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAi Q0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwkgICAg b2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJwor KwkgICAgOzsKKysJICBpY3BjKiB8IGVjcGMqICkKKysJICAgICMgSW50ZWwgQysrCisrCSAgICB3 aXRoX2dudV9sZD15ZXMKKysJICAgICMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hv a2Ugb24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2xzCisrCSAgICAjIGlmIHdlIGFkZCAkcHJlZGVw X29iamVjdHMgYW5kICRwb3N0ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4xIGFuZAorKwkgICAgIyBl YXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KKysJICAgIGNhc2UgYCRD QyAtViAyPiYxYCBpbgorKwkgICAgICAqIlZlcnNpb24gNy4iKikKKysJICAgICAgICBhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKKysJCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wk ZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJCTs7CisrCSAgICAgICopICAjIFZlcnNpb24gOC4w IG9yIG5ld2VyCisrCSAgICAgICAgdG1wX2lkeW49CisrCSAgICAgICAgY2FzZSAkaG9zdF9jcHUg aW4KKysJCSAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7OworKwkJZXNhYworKwkgICAg ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK KysJCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCQk7 OworKwkgICAgZXNhYworKwkgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrCSAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAg IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysJ ICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29u dmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgICA7OworKyAgICAgICAgICBw Z0NDKiB8IHBnY3BwKikKKysgICAgICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxl cgorKwkgICAgY2FzZSBgJENDIC1WYCBpbgorKwkgICAgKnBnQ0NcIFsxLTVdKiB8ICpwZ2NwcFwg WzEtNV0qKQorKwkgICAgICBwcmVsaW5rX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgor KwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0 aW9uX2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRjb21waWxlX2RlcGxpYnN+CisrCQljb21w aWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwg JE5MMlNQYCInCisrCSAgICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUu ZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0 YW50aWF0aW9uX2RpciAkdHBsZGlyICRvbGRvYmpzJG9sZF9kZXBsaWJzfgorKwkJJEFSICRBUl9G TEFHUyAkb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5v IHwgJE5MMlNQYH4KKysJCSRSQU5MSUIgJG9sZGxpYicKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJl bGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5k ICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGly fgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29i amVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICAgIDs7 CisrCSAgICAqKSAjIFZlcnNpb24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKysJICAgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIC1vICRsaWInCisrCSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGli JworKwkgICAgICA7OworKwkgICAgZXNhYworKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252 ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIk bmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwi YCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgICAgICA7OworKwkgIGN4eCopCisr CSAgICAjIENvbXBhcSBDKysKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cycKKysKKysJICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCSAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFw cGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBl eHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlw IHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5j bHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0 ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxp c3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIi OyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlz dD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9u ZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrCSAgeGwqKQorKwkgICAgIyBJ Qk0gWEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIGlmIHRlc3QgIngkc3VwcG9y dHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJICAgICAgYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+ CisrCQljYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQllY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJCSRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9u LXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwkgICAg ZmkKKysJICAgIDs7CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBp bgorKwkgICAgKlN1blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAgbm9fdW5k ZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJworKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisr CSAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9Jy1SJGxpYmRpcicKKysJICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVu aWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3 X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgICAgY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NY WD15ZXMKKysKKysJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgor KwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qk c2hhcmVkX2V4dCAyPiYxCisrCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysKKysJICAgICAgIyBBcmNoaXZlcyBjb250YWlu aW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAgICMgIkND IC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkg ICAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUg aW5jbHVkZWQKKysJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgb2xkX2FyY2hpdmVf Y21kc19DWFg9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICAgIDs7CisrCSAg ICBlc2FjCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbHlueG9zKikKKysgICAg ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlsZF9zaGxp YnNfQ1hYPW5vCisrCTs7CisrCisrICAgICAgbTg4ayopCisrICAgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8K KysJOzsKKysKKysgICAgICBtdnMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAgICAgY3h4KikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysJICAqKQorKwkgICAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxp YnNfQ1hYPW5vCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNkKikKKysg ICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9u dWxsOyB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5r ZXJfZmxhZ3MnCisrCSAgd2xhcmM9CisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 Jy1SJGxpYmRpcicKKysJICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcworKwkgIGhhcmRjb2RlX3No bGlicGF0aF92YXJfQ1hYPW5vCisrCWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUt MS41IHRvb2xjaGFpbnMKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8 ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpudG8qIHwg KnFueCopCisrICAgICAgICBsZF9zaGxpYnNfQ1hYPXllcworKwk7OworKworKyAgICAgIG9wZW5i c2QyKikKKysgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4K KysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKworKyAgICAgIG9wZW5ic2QqKQorKwlpZiB0ZXN0 IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVz CisrCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJICBoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGVfQ1hYPXllcworKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNf ZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0g Im9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWNfQ1hYPScke3dsfS1FJworKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIkd2xh cmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNo aXZlJworKwkgIGZpCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworKwllbHNlCisr CSAgbGRfc2hsaWJzX0NYWD1ubworKwlmaQorKwk7OworKworKyAgICAgIG9zZjMqIHwgb3NmNCog fCBvc2Y1KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyop CisrCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisr CisrCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91 dHB1dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwg c28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2 ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1g ZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxc XFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAiJGxpYiIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9 XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7 IG12IFwkdGVtcGxpYiAkbGliJworKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19D WFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0NYWD06CisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBt dXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCSAg ICBjYXNlICRob3N0IGluCisrCSAgICAgIG9zZjMqKSBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7CisrCSAgICAgICopIG9sZF9hcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKysJICAgIGVzYWMKKysJICAg IDs7CisrICAgICAgICAgIFJDQyopCisrCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQorKwkgICAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxp YnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICBjeHgqKQorKwkgICAgY2FzZSAkaG9zdCBp bgorKwkgICAgICBvc2YzKikKKysJICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAk e3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwkgICAgICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkJOzsKKysJICAgICAgKikK KysJICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAtZXhwZWN0X3VucmVzb2x2ZWQg XConCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAg ICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1i b2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGli LmV4cDsgZG9uZX4KKysJICAgICAgICAgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSAg ICAgICAgICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0g LXNvbmFtZSAkc29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+CisrCSAg ICAgICAgICAkUk0gJGxpYi5leHAnCisrCSAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9Jy1ycGF0aCAkbGliZGlyJworKwkJOzsKKysJICAgIGVzYWMKKysKKysJICAgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysKKysJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBj b21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgor KwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRoZXJl IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9t CisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5l ZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRv bid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMuCisr CSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12ICJsZDoi YDsgdGVtcGxpc3Q9YCRFQ0hPICJYJHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwp XCggLipsZC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2Ug JHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICop IGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJ ICAgIDs7CisrCSAgKikKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAk e3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJworKwkgICAgICBjYXNlICRob3N0IGluCisr CSAgICAgICAgb3NmMyopCisrCSAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0 X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkg JHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkg ICAgICAgICopCisrCSAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIiR7d2x9 LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJCSAgOzsK KysJICAgICAgZXNhYworKworKwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD06CisrCisrCSAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNl IHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJh cmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICMgbGlu a2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0n JENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1M IicKKysKKysJICAgIGVsc2UKKysJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0CisrCSAgICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIGZpCisrCSAgICA7 OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBwc29zKikKKysgICAgICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRf c2hsaWJzX0NYWD1ubworKyAgICAgICAgOzsKKysKKysgICAgICBzdW5vczQqKQorKyAgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQu eAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAg ICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICBsY2MqKQorKwkgICAgIyBM dWNpZAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNf Q1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBz b2xhcmlzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikK KysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysgICAgICAgICAg ICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgICBub191bmRlZmluZWRfZmxhZ19D WFg9JyAtemRlZnMnCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9z eW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6 ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAgICAgJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxh Z30gJHt3bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0g JGxpYi5leHAnCisrCisrCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGli ZGlyJworKwkgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJICAgIGNhc2UgJGhv c3Rfb3MgaW4KKysJICAgICAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7Owor KwkgICAgICAqKQorKwkJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVv cmRlciBsaW5rZXIgb3B0aW9ucywKKysJCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxh ZycuCisrCSAgICAgICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4x PykKKysJCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nLXogYWxsZXh0cmFjdCRjb252ZW5p ZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJICAgICAgICA7OworKwkgICAgZXNhYworKwkgICAg bGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0nZWNobycKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVz IG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMg dGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtl IHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhl IGFyY2hpdmUuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxp YiAkb2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgIGdjeCopCisrCSAgICAjIEdyZWVuIEhp bGxzIEMrKyBDb21waWxlcgorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKworKwkgICAgIyBUaGUgQysrIGNv bXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCSAgICBvbGRfYXJj aGl2ZV9jbWRzX0NYWD0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMn CisrCSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBHTlUgQysrIGNvbXBpbGVyIHdpdGgg U29sYXJpcyBsaW5rZXIKKysJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgorKwkgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAke3ds fS16ICR7d2x9ZGVmcycKKysJICAgICAgaWYgJENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwu NycgPiAvZGV2L251bGw7IHRoZW4KKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNo YXJlZCAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAk bGliJworKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoi ID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8i ID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRS TSAkbGliLmV4cCcKKysKKysJICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4i IGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAg ICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwg JEdSRVAgIlwtTCInCisrCSAgICAgIGVsc2UKKysJICAgICAgICAjIGcrKyAyLjcgYXBwZWFycyB0 byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCisrCSAgICAgICAgIyBwbGF0Zm9y bS4KKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcgLW5vc3RkbGliICRMREZMQUdT ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgICAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0 X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2Nh bDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkJICAkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHds JGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKworKwkgICAgICAgICMg Q29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlz dHMKKysJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5k IGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFy eS4KKysJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1HICRDRkxBR1MgLXYg Y29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisrCSAgICAgIGZpCisrCisrCSAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1SICR3bCRsaWJkaXInCisr CSAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysJCXNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAt NV0uKikgOzsKKysJCSopCisrCQkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0t eiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0 JworKwkJICA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVz YWMKKysgICAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5 c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSop CisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCisrICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9D WFg9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICAgIENDKikKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDok ZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysgICAgICBlc2FjCisrICAgICAg OzsKKysKKysgICAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKwkjIE5vdGU6IFdl IGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5v dAorKwkjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVz ZWQgZnJvbSBsaWJjIHRvCisrCSMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1 c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKwkjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3 ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0CisrCSMgdGhvdWdoLCB3aGljaCBk b2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKwkj IGFzIC16IGRlZnMuCisrCW5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0JworKwlh bGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosbm9kZWZzJworKwlhcmNoaXZlX2NtZHNf bmVlZF9sY19DWFg9bm8KKysJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIsJGxpYmRpcicKKysJaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9DWFg9JzonCisrCWxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcworKwlleHBv cnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1CZXhwb3J0JworKwlydW5wYXRoX3Zhcj0n TERfUlVOX1BBVEgnCisrCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikK KysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIDs7 CisrCSAgKikKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICA7OworKwllc2FjCisrICAgICAgOzsKKysKKysgICAgICB0YW5kZW0q KQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgTkNDKikKKysJICAg ICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAg ICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrCSAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICA7OworKyAgICAgICAgZXNhYworKyAgICAg ICAgOzsKKysKKysgICAgICB2eHdvcmtzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAg ICAgOzsKKysKKysgICAgICAqKQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICA7Owor KyAgICBlc2FjCisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs ZF9zaGxpYnNfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGxkX3NobGlic19DWFgiID4mNjsgfQorKyAg ICB0ZXN0ICIkbGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisr ICAgIEdDQ19DWFg9IiRHWFgiCisrICAgIExEX0NYWD0iJExEIgorKworKyAgICAjIyBDQVZFQVQg RU1QVE9SOgorKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9s bG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQorKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBv ciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyAg ICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KKysgICAgIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2Ug YmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKKytwcmVkZXBfb2JqZWN0 c19DWFg9CisrcG9zdGRlcF9vYmplY3RzX0NYWD0KKytwcmVkZXBzX0NYWD0KKytwb3N0ZGVwc19D WFg9CisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0KKysKKytjYXQgPiBjb25mdGVzdC4k YWNfZXh0IDw8X0xUX0VPRgorK2NsYXNzIEZvbworK3sKKytwdWJsaWM6CisrICBGb28gKHZvaWQp IHsgYSA9IDA7IH0KKytwcml2YXRlOgorKyAgaW50IGE7CisrfTsKKytfTFRfRU9GCisrCisraWYg eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAo ZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH07IHRoZW4KKysgICMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUg bmVjZXNzYXJ5CisrICAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KKysK KysgICMgU2VudGluZWwgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHdlIGFy ZSBiZWZvcmUKKysgICMgdGhlIGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgorKyAgcHJlX3Rlc3Rfb2Jq ZWN0X2RlcHNfZG9uZT1ubworKworKyAgZm9yIHAgaW4gYGV2YWwgIiRvdXRwdXRfdmVyYm9zZV9s aW5rX2NtZCJgOyBkbworKyAgICBjYXNlICRwIGluCisrCisrICAgIC1MKiB8IC1SKiB8IC1sKikK KysgICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFjZSBzcGFjZSBiZXR3ZWVuICIte0wsUn0iIGFu ZCB0aGUgcGF0aC4KKysgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNlLgorKyAgICAgICBpZiB0ZXN0 ICRwID0gIi1MIiB8fAorKyAgICAgICAgICB0ZXN0ICRwID0gIi1SIjsgdGhlbgorKwkgcHJldj0k cAorKwkgY29udGludWUKKysgICAgICAgZWxzZQorKwkgcHJldj0KKysgICAgICAgZmkKKysKKysg ICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJ IGNhc2UgJHAgaW4KKysJIC1MKiB8IC1SKikKKysJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJy YXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCisrCSAgICMgcHJvdmlkZWQgdGhlIHVz ZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQorKwkgICAjIHVzZXIgc3Vw cGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KKysJICAgaWYg dGVzdCAteiAiJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgiOyB0aGVuCisrCSAgICAgY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtwcmV2fSR7cH0iCisrCSAgIGVsc2UKKysJICAg ICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSIke2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFh9ICR7cHJldn0ke3B9IgorKwkgICBmaQorKwkgICA7OworKwkgIyBUaGUgIi1sIiBjYXNl IHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKKysJICMgbGlua2VkLCBz byBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgorKwkgZXNhYworKyAgICAgICBlbHNl CisrCSBpZiB0ZXN0IC16ICIkcG9zdGRlcHNfQ1hYIjsgdGhlbgorKwkgICBwb3N0ZGVwc19DWFg9 IiR7cHJldn0ke3B9IgorKwkgZWxzZQorKwkgICBwb3N0ZGVwc19DWFg9IiR7cG9zdGRlcHNfQ1hY fSAke3ByZXZ9JHtwfSIKKysJIGZpCisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisrICAgICou JG9iamV4dCkKKysgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmplY3QgZmls ZSBvbmx5IHNob3dzIHVwCisrICAgICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0cHV0Lgor KyAgICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KKysJIHByZV90 ZXN0X29iamVjdF9kZXBzX2RvbmU9eWVzCisrCSBjb250aW51ZQorKyAgICAgICBmaQorKworKyAg ICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgorKwkg aWYgdGVzdCAteiAiJHByZWRlcF9vYmplY3RzX0NYWCI7IHRoZW4KKysJICAgcHJlZGVwX29iamVj dHNfQ1hYPSIkcCIKKysJIGVsc2UKKysJICAgcHJlZGVwX29iamVjdHNfQ1hYPSIkcHJlZGVwX29i amVjdHNfQ1hYICRwIgorKwkgZmkKKysgICAgICAgZWxzZQorKwkgaWYgdGVzdCAteiAiJHBvc3Rk ZXBfb2JqZWN0c19DWFgiOyB0aGVuCisrCSAgIHBvc3RkZXBfb2JqZWN0c19DWFg9IiRwIgorKwkg ZWxzZQorKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIkcG9zdGRlcF9vYmplY3RzX0NYWCAkcCIK KysJIGZpCisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisrICAgICopIDs7ICMgSWdub3JlIHRo ZSByZXN0LgorKworKyAgICBlc2FjCisrICBkb25lCisrCisrICAjIENsZWFuIHVwLgorKyAgcm0g LWYgYS5vdXQgYS5leGUKKytlbHNlCisrICBlY2hvICJsaWJ0b29sLm00OiBlcnJvcjogcHJvYmxl bSBjb21waWxpbmcgQ1hYIHRlc3QgcHJvZ3JhbSIKKytmaQorKworKyRSTSAtZiBjb25mZXN0LiRv YmpleHQKKysKKysjIFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJl IGl0IGlzIGJyb2tlbgorK2Nhc2UgJGhvc3Rfb3MgaW4KKytpbnRlcml4WzMtOV0qKQorKyAgIyBJ bnRlcml4IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBz byByYXRoZXIgdGhhbgorKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3Qg ImcrKyIgdG8gRFRSVC4KKysgIHByZWRlcF9vYmplY3RzX0NYWD0KKysgIHBvc3RkZXBfb2JqZWN0 c19DWFg9CisrICBwb3N0ZGVwc19DWFg9CisrICA7OworKworK2xpbnV4KikKKysgIGNhc2UgYCRD QyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKyAgKlN1blwgQyopCisrICAgICMgU3VuIEMrKyA1LjkK KysKKysgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5 IGlzCisrICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3Bl Y2lmeWluZworKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFz CisrICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KKysgICAgY2FzZSAiICRD WFggJENYWEZMQUdTICIgaW4KKysgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisrICAgICAg c29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBp ZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIHBvc3Rk ZXBzX0NYWD0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7Owor KyAgZXNhYworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICBDQyopCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGli cmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lk IHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1 biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNhc2Ug IiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAg ICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysg ICAgIyBBZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAgb2Ygc2hhcmVkIGxp YnJhcmllcyBmb3IKKysgICAgIyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVmb3JlIDUuNiwgZWxz ZSBQSUMgb2JqZWN0cyBmcm9tIGFuIG9sZAorKyAgICAjIGFyY2hpdmUgd2lsbCBiZSBsaW5rZWQg aW50byB0aGUgb3V0cHV0LCBsZWFkaW5nIHRvIHN1YnRsZSBidWdzLgorKyAgICBpZiB0ZXN0ICIk c29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIHBvc3RkZXBzX0NYWD0n LWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNhYwor KyAgOzsKKytlc2FjCisrCisrCisrY2FzZSAiICRwb3N0ZGVwc19DWFggIiBpbgorKyoiIC1sYyAi KikgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vIDs7CisrZXNhYworKyBjb21waWxlcl9saWJf c2VhcmNoX2RpcnNfQ1hYPQorK2lmIHRlc3QgLW4gIiR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRo X0NYWH0iOyB0aGVuCisrIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9YGVjaG8gIiAke2Nv bXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9IiB8ICR7U0VEfSAtZSAncyEgLUwhICFnJyAtZSAn cyFeICEhJ2AKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKyAgICBs dF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0KKytsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4g IiA+JjY7IH0KKysKKysgICMgQysrIHNwZWNpZmljIGNhc2VzIGZvciBwaWMsIHN0YXRpYywgd2ws IGV0Yy4KKysgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYPSctV2wsJworKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0 aWMnCisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4KikKKysgICAgICAjIEFsbCBB SVggY29kZSBpcyBQSUMuCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K KysJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFt aWdhb3MqKQorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAg ICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAg ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKKysgICAgICAgIDs7CisrICAg ICAgbTY4aykKKysgICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNv ZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0CisrICAgICAgICAgICAgIyBhZGRpbmcg dGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0 ZXIsCisrICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKysgICAgICAgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1h NCcKKysgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGJlb3MqIHwg aXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysg ICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KKysgICAgICA7OworKyAg ICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICMgVGhp cyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMg YmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQg ZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dp biBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKKysgICAg ICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcworKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLURETExfRVhQT1JUJworKyAgICAgIDs7CisrICAgIGRhcndpbiogfCBy aGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQor KyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7Cisr ICAgICpkamdwcCopCisrICAgICAgIyBESkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJy YXJpZXMgYXQgYWxsCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKyAgICAgIDs7 CisrICAgIGludGVyaXhbMy05XSopCisrICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQ SUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJl bG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKysgICAgICA7OworKyAgICBzeXN2 NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgaHB1 eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0 IG5vdCBmb3IgMzItYml0CisrICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBp cyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCisrICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0 IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KKysgICAgICBjYXNlICRob3N0X2NwdSBp bgorKyAgICAgIGhwcGEqNjQqKQorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrICAgICpxbngq IHwgKm50byopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUg LXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAu CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hhcmVkJworKyAgICAg IDs7CisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKKysg ICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg ICBhaXhbNC05XSopCisrCSMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysJaWYgdGVzdCAiJGhvc3Rf Y3B1IiA9IGlhNjQ7IHRoZW4KKysJICAjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nv cgorKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCWVsc2UKKysJ ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4 cCcKKysJZmkKKysJOzsKKysgICAgICBjaG9ydXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgor KwljeGNoNjgqKQorKwkgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgIyBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCBDWFgpPSItLW5vX2F1dG9faW5zdGFudGlhdGlv biAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9y Yi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5z LmEiCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGRndXgqKQorKwljYXNlICRjY19iYXNl bmFtZSBpbgorKwkgIGVjKysqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJ QycKKysJICAgIDs7CisrCSAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxl cgorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgOzsKKysJICAq KQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikK KysJIyBGcmVlQlNEIHVzZXMgR05VIEMrKworKwk7OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCog fCBocHV4MTEqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIGx0X3By b2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0g aWE2NDsgdGhlbgorKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJworKwkgICAg ZmkKKysJICAgIDs7CisrCSAgYUNDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSct V2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPScke3dsfS1hICR7d2x9YXJj aGl2ZScKKysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikKKysJ ICAgICAgIyArWiB0aGUgZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYPScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAg IDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikKKysJ IyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCisr CSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBpcml4 NiogfCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhl IGRlZmF1bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAg ICAgbGludXgqIHwgaypic2QqLWdudSkKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0Mq KQorKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WD0nLS1iYWNrZW5kIC1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElD JworKwkgICAgOzsKKysJICBlY3BjKiApCisrCSAgICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82 NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCisrCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCisrCSAgICA7OworKwkgIGlj cGMqICkKKysJICAgICMgSW50ZWwgQysrLCB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdD Qy4KKysJICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgorKwkgICAg bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1mUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGlj JworKwkgICAgOzsKKysJICBwZ0NDKiB8IHBnY3BwKikKKysJICAgICMgUG9ydGxhbmQgR3JvdXAg QysrIGNvbXBpbGVyCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZwaWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBjeHgqKQorKwkgICAgIyBDb21w YXEgQysrCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBl YXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBv YmplY3RzIGFyZSBQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICB4 bGMqIHwgeGxDKikKKysJICAgICMgSUJNIFhMIDguMCBvbiBQUEMKKysJICAgIGx0X3Byb2dfY29t cGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcXBp YycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXFzdGF0aWNsaW5rJworKwkg ICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAg ICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 Jy1Cc3RhdGljJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQg JworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAg IGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMK KysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpxbngqIHwgKm50byopCisrICAg ICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlv biB0b28sIG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQyAtc2hhcmVkJworKyAgICAgICAgOzsKKysg ICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAg S0NDKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKKysJ ICAgIDs7CisrCSAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAj IERpZ2l0YWwvQ29tcGFxIEMrKworKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwn CisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRo YXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3Rz IGFyZSBQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9CisrCSAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkg ICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMq KQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3VuIEMrKyA0LjIs IDUueCBhbmQgQ2VudGVybGluZSBDKysKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LUtQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkg ICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcKKysJICAgIDs7CisrCSAg Z2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFg9Jy1QSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2Fj CisrCTs7CisrICAgICAgc3Vub3M0KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyop CisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1w aWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAg OzsKKysJICBsY2MqKQorKwkgICAgIyBMdWNpZAorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCop CisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgbHRfcHJvZ19jb21waWxl cl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwor KwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIDs7Cisr CWVzYWMKKysJOzsKKysgICAgICB0YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkg IE5DQyopCisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisr CTs7CisrICAgICAgdnh3b3JrcyopCisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxl cl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubworKwk7OworKyAgICBlc2FjCisrICBmaQorKworK2Nh c2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQ SUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPQorKyAgICA7OworKyAgKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIC1EUElDIgorKyAgICA7OworK2VzYWMKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYIiA+JjUKKyskYXNfZWNobyAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY2OyB9Cisr CisrCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3 b3Jrcy4KKysjCisraWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCI7IHRoZW4K KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgUElD IGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgg d29ya3MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dv cmtzX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFg9bm8KKysgICBhY19v dXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYIC1EUElDIgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0 aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVm b3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysg ICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xh c2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiks IHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMg cmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0 X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9 XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25m dGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBp bGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ3MDA6ICRsdF9jb21waWxl XCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFj X3N0YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE0 NzA0OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0 ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5 IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNv IHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0 LgorKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcv XiQvZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0 LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRp ZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0 X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWD15ZXMKKysgICAgIGZpCisrICAgZmkKKysg ICAkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjUKKyskYXNfZWNobyAi JGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPiY2OyB9CisrCisraWYgdGVzdCB4 IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID0geHllczsgdGhlbgorKyAgICBj YXNlICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysg ICAgICopIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iICRsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFgiIDs7CisrICAgICBlc2FjCisrZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9 CisrICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5vCisrZmkKKysK KytmaQorKworKworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcg YWN0dWFsbHkgd29ya3MuCisrIworK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBldmFsIGx0 X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFhcIgorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcg JGx0X3RtcF9zdGF0aWNfZmxhZyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9bm8KKysgICBzYXZlX0xERkxBR1M9 IiRMREZMQUdTIgorKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCisr ICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Cisr ICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0OyB0aGVuCisrICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncworKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKysg ICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KKysgICAgICAgY2F0 IGNvbmZ0ZXN0LmVyciAxPiY1CisrICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICBsdF9j dl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9eWVzCisrICAgICAgIGZpCisrICAgICBl bHNlCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKKysg ICAgIGZpCisrICAgZmkKKysgICAkUk0gLXIgY29uZnRlc3QqCisrICAgTERGTEFHUz0iJHNhdmVf TERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNQorKyRhc19lY2hvICIkbHRf Y3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgi JGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCisrICAg IDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0KKytmaQorKworKwor KworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBp bGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3By b2dfY29tcGlsZXJfY19vX0NYWD1ubworKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAor KyAgIG1rZGlyIGNvbmZ0ZXN0CisrICAgY2QgY29uZnRlc3QKKysgICBta2RpciBvdXQKKysgICBl Y2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysK KysgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCisrICAg IyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJp YWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIs IG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBk b2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xs YXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5 LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdz Oi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczog W14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDog JGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ3OTk6ICRs dF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0 LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysg ICBlY2hvICIkYXNfbWU6MTQ4MDM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0 ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhl bgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRp b24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJu aW5ncworKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1l ICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcg b3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91 dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIg Pi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVz CisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mNQorKyAgICRSTSBjb25mdGVz dCoKKysgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9m aWxlcy8gZm9yCisrICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCisrICAgdGVzdCAtZCBvdXQv aWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcworKyAg ICRSTSBvdXQvKiAmJiBybWRpciBvdXQKKysgICBjZCAuLgorKyAgICRSTSAtciBjb25mdGVzdAor KyAgICRSTSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQorKyRhc19lY2hvICIkbHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KKysKKysKKysKKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBm aWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBz dXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9 bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVzdAor KyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxh Zz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24g ZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikg YmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4K KysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNr c2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhl biksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxlPWBl Y2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYk bHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0 X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidg CisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE0ODUxOiAkbHRfY29tcGlsZVwiIiA+JjUpCisr ICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVz PSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE0ODU1 OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0 IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBp bGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk CisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgICRFQ0hPICJY JF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0 ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91 dC9jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRp ZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysg ICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPXllcworKyAgICAgZmkKKysgICBmaQor KyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNv bXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVt cGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQv aWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIg b3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisr CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19j b21waWxlcl9jX29fQ1hYIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19v X0NYWCIgPiY2OyB9CisrCisrCisrCisrCisraGFyZF9saW5rcz0ibm90dGVzdGVkIgorK2lmIHRl c3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9j a3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRf bG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQor KyAgaGFyZF9saW5rcz15ZXMKKysgICRSTSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29u ZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5h CisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBs biBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQorKyRh c19lY2hvICIkaGFyZF9saW5rcyIgPiY2OyB9CisrICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBu bzsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0Mn IGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQg XGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9s b2Nrcz13YXJuCisrICBmaQorK2Vsc2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworKworKwor KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKysKKysgIGV4cG9ydF9zeW1ib2xzX2Nt ZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8 ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisr ICBjYXNlICRob3N0X29zIGluCisrICBhaXhbNC05XSopCisrICAgICMgSWYgd2UncmUgdXNpbmcg R05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKyAgICAjIC1DIG1l YW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05V IG5tCisrICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4K KysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8 IChcJCAyID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQg MyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysgICAgZWxzZQorKyAgICAg IGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNl IHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAy ID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0n XCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysgICAgZmkKKysgICAgOzsKKysgIHB3 MzIqKQorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCisrICA7Owor KyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kc19D WFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNF RCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvOy9eLipbIF1f X25tX18vcy9eLipbIF1fX25tX19cKFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsv XltBSVRXXVsgXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwor KyAgOzsKKysgICopCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9ianMg JGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcn IHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICA7OworKyAgZXNhYworKyAgZXhj bHVkZV9leHBzeW1zX0NYWD0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4q JworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsZF9zaGxpYnNfQ1hY IiA+JjUKKyskYXNfZWNobyAiJGxkX3NobGlic19DWFgiID4mNjsgfQorK3Rlc3QgIiRsZF9zaGxp YnNfQ1hYIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt3aXRoX2dudV9sZF9DWFg9 JHdpdGhfZ251X2xkCisrCisrCisrCisrCisrCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBs aWNpdGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgi IGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgYXJjaGl2 ZV9jbWRzX25lZWRfbGNfQ1hYPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJGFyY2hpdmVfY21kc19D WFggaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3 aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0MgJyopCisr ICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAt bGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVm b3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQsIGRvbid0 IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5 IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorKyAgICAgICRSTSBjb25mdGVzdCoKKysgICAgICBlY2hv ICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysg ICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+ JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0 CisrICAgICAgICBsaWI9Y29uZnRlc3QKKysgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29i amV4dAorKyAgICAgICAgZGVwbGlicz0KKysgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWAorKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYCisrICAgICAgICBjb21w aWxlcl9mbGFncz0tdgorKyAgICAgICAgbGlua2VyX2ZsYWdzPS12CisrICAgICAgICB2ZXJzdHJp bmc9CisrICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKysgICAgICAgIGxpYm5hbWU9Y29uZnRlc3QK KysgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9m bGFnX0NYWAorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQorKyAgICAgICAgaWYg eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEg XHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAk YXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJc PlwmMSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KKysgICAgICAg IHRoZW4KKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKysgICAgICAgIGVsc2UKKysJ ICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCisrICAgICAgICBmaQorKyAgICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCisrICAg ICAgZWxzZQorKyAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1CisrICAgICAgZmkKKysgICAg ICAkUk0gY29uZnRlc3QqCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFgiID4mNjsgfQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICA7 OworK2VzYWMKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2 OyB9CisrCisrbGlicmFyeV9uYW1lc19zcGVjPQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisr c29uYW1lX3NwZWM9Cisrc2hyZXh0X2NtZHM9Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bv c3R1bmluc3RhbGxfY21kcz0KKytmaW5pc2hfY21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBh dGhfdmFyPQorK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90 eXBlPW5vbmUKKytkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCisrbmVlZF9saWJfcHJlZml4PXVua25vd24K KytoYXJkY29kZV9pbnRvX2xpYnM9bm8KKysKKysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24g dG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdz IHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKwor K2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICRsaWJuYW1lLmEnCisrICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMg aGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0 byB0aGUgbmFtZS4KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICA7OworKworK2FpeFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAg ICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1 LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBl bmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAg ICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJh cnkgdG8KKysgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAg VGhpcyB3YXMgZml4ZWQgaW4KKysgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHBy aW9yIHRvIDMuMC4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0Llsw MV0gfCBhaXg0LlswMV0uKikKKysgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwg KF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVz ICcKKysJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2 L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVsc2UKKysJY2FuX2J1aWxkX3NoYXJlZD1ubworKyAg ICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMg bm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBj b3JyZWN0CisrICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFk ZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBs aW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KKysgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVu dGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5r aW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCisrICAgICAgIyBpbnN0 ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QK KysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Ig c2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgorKyAgICAgICMgYW5kIGxhdGVyIHdoZW4g d2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgorKyAgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJworKyAgICAgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGZpCisr ICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgZmkKKysgIDs7CisrCisrYW1pZ2FvcyopCisr ICBjYXNlICRob3N0X2NwdSBpbgorKyAgcG93ZXJwYykKKysgICAgIyBTaW5jZSBKdWx5IDIwMDcg QW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgorKyAgICAjIFdoZW4g Y29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUg Y29tcGlsZWxpbmUuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICA7OworKyAgbTY4aykKKysgICAg bGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKKysgICAg IyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKysg ICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2 L251bGxgOyBkbyBsaWJuYW1lPWAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1wo W14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFt ZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5h bWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9p eGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisrICAgIDs7CisrICBlc2FjCisrICA7OworKwor K2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScK KysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKysgIHNobGlicGF0aF92YXI9TElC UkFSWV9QQVRICisrICA7OworKworK2JzZGlbNDVdKikKKysgIHZlcnNpb25fdHlwZT1saW51eAor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGli IC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGli IgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmli L2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNy L1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVz ZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0Ms JGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHll cyxjZWdjYyopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAg ICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2Nt ZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+ CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2Zp bGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGly bmFtZSBcJGRscGF0aGB+CisrICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxk aXJ+CisrICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgor KyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcn JHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAg IGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAg ICAgIGZpJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAn XCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxk bGx+CisrICAgICAgICRSTSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAg IyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAg c29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNo byAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9l eHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIgL2xpYi93MzJh cGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICAgICA7OworKyAgICBtaW5ndyogfCBjZWdjYyop CisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKKysgICAg ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1su XS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgJEdSRVAgIl5saWJyYXJpZXM6IiB8 ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiAkRUNI TyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2 L251bGw7IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9y bWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVu bmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdp dGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRo ZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRz IHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0 IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3 aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRT RUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorKyAgICAgIGZpCisrICAgICAgOzsKKysg ICAgcHczMiopCisrICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFu ICdsaWInCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2Vk IC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ak e3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsK KysKKysgICopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVs ZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxp Ym5hbWUubGliJworKyAgICA7OworKyAgZXNhYworKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxk LmV4ZScKKysgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVj dG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgorKyAgc2hsaWJwYXRoX3Zhcj1QQVRICisrICA7Owor KworK2RhcndpbiogfCByaGFwc29keSopCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHls ZCIKKysgIHZlcnNpb25fdHlwZT1kYXJ3aW4KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHttYWpvcn0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFU SAorKyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBl Y2hvIC5keWxpYmAnCisrCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2Nh bC9saWIgL2xpYiAvdXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJl ZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJl ZWJzZDEqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFn b25mbHkqKQorKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5 IGltcGxlbWVudCBhIG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMu CisrICBpZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9 YC91c3IvYmluL29iamZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICBmcmVlYnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxm IDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0 CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9l eHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysg IGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29z IGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysgICAgOzsKKysgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgICA7OworKyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAor KyAgZnJlZWJzZDQuWzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZy ZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFu ZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSop CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHtt YWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwg aHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0 aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdh aW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBp YTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXll cworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz ICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgz MiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysg ICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwor KyAgICA7OworKyAgaHBwYSo2NCopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIK KysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRs ZSBTSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxl c3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEy MF82NCIKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYworKyAgICA7OworKyAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9Q QVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVk IHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAg ZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJh cmllcyBhcmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicK KysgIDs7CisrCisraW50ZXJpeFszLTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisr ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG5vbnN0b3B1 eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKKysgICAgKikKKysJaWYgdGVzdCAiJGx0X2N2 X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKwkJdmVyc2lvbl90eXBlPWxpbnV4CisrCWVsc2UK KysJCXZlcnNpb25fdHlwZT1pcml4CisrCWZpIDs7CisrICBlc2FjCisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGlyaXg1KiB8IG5v bnN0b3B1eCopCisrICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKysgICAgOzsKKysgICopCisrICAg IGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMg dG8gTEQKKysgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikK KysgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisrICAgICotbjMy fCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCisrICAgICAgbGli c3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CisrICAgICotNjR8KiItNjQgInwq LW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZm PTY0IGxpYm1hZ2ljPTY0LWJpdDs7CisrICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFn aWM9bmV2ZXItbWF0Y2g7OworKyAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPW5vCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJz dWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9Igor KyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKysjIE5vIHNoYXJlZCBsaWIgc3Vw cG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCisrbGludXgqb2xkbGQqIHwgbGlu dXgqYW91dCogfCBsaW51eCpjb2ZmKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKwor KyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgdmVy c2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIg bGRjb25maWcgLW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICMgU29tZSBiaW51dGlscyBsZCBh cmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAorKyAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCisr ICBzYXZlX2xpYmRpcj0kbGliZGlyCisrICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkbHRfcHJv Z19jb21waWxlcl93bF9DWFhcIjsgXAorKyAgICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWFwiIgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk YWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBpZiAgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9u dWxsOyB0aGVuCisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrZmkKKysKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29u ZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKKysgIExERkxBR1M9JHNhdmVfTERGTEFHUworKyAgbGliZGlyPSRzYXZl X2xpYmRpcgorKworKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1 bmFjY2VwdGFibGUuCisrICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZv ciBmYXN0X2luc3RhbGwKKysgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrCisrICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMg dG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iL2xpYjY0IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiIKKysKKysgICMgQXBwZW5kIGxkLnNv LmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1mIC9ldGMvbGQu c28uY29uZjsgdGhlbgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3Rl bShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsgc2tpcCA9IDE7 IH0geyBpZiAoIXNraXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25m IHwgJFNFRCAtZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149 XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4 dHJhIgorKyAgZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5k IGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGlu dXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHlu YW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMs CisrICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0 aGVzZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0 aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5 bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQu c28nCisrICA7OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0i XCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0n TmV0QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz CisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJz aW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisr Km50byogfCAqcW54KikKKysgIHZlcnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGliX3ByZWZpeD1u bworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisrICA7 OworKworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29t ZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJz aW9uZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5i c2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8g IDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRp cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNo byBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3Mt JGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAg bGlibmFtZV9zcGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAk bGlibmFtZS5hJworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRo X3Zhcj1MSUJQQVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNp b25fdHlwZT1vc2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9j bXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysK KytyZG9zKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAg dmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lv bj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxl CisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQq KQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRj b25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lv bj15ZXMKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBydW5wYXRo X3Zhcj1MRF9SVU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9s aWJfcHJlZml4PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJf cHJlZml4PW5vCisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91 c3IvbGliIC91c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2 NCpNUCopCisrICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVy c3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIq KQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vz ci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICBlbHNlCisrICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJworKyAgICBjYXNlICRob3N0X29zIGluCisr ICAgICAgc2NvMy4ydjUqKQorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCisrICA7OworKworK3RwZiopCisr ICAjIFRQRiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBH TlUvTGludXguCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrdXRzNCopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICA7OworKworKyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKytlc2FjCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNf ZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0g bm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r PSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRf Zm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisr ZmkKKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9 IHNldDsgdGhlbgorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIgorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50 byBwcm9ncmFtcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxp YnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2RlX2FjdGlvbl9D WFg9CisraWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8fAorKyAg IHRlc3QgLW4gIiRydW5wYXRoX3Zhcl9DWFgiIHx8CisrICAgdGVzdCAiWCRoYXJkY29kZV9hdXRv bWF0aWNfQ1hYIiA9ICJYeWVzIiA7IHRoZW4KKysKKysgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1l eGlzdGVudCBkaXJlY3Rvcmllcy4KKysgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfQ1hYIiAh PSBubyAmJgorKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGlu ZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQorKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNl IHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQorKyAgICAgIyB3aGVuIHdl IHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQorKyAgICAg IyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgQ1hYKSIgIT0gbm8g JiYKKysgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19MX0NYWCIgIT0gbm87IHRoZW4KKysgICAg IyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9y eS4KKysgICAgaGFyZGNvZGVfYWN0aW9uX0NYWD1yZWxpbmsKKysgIGVsc2UKKysgICAgIyBXZSBj YW4gbGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3Rp bmcgZGlycy4KKysgICAgaGFyZGNvZGVfYWN0aW9uX0NYWD1pbW1lZGlhdGUKKysgIGZpCisrZWxz ZQorKyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkg aGFyZGNvZGUgZXhpc3RpbmcKKysgICMgZGlyZWN0b3JpZXMuCisrICBoYXJkY29kZV9hY3Rpb25f Q1hYPXVuc3VwcG9ydGVkCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkaGFyZGNvZGVfYWN0aW9uX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rpb25f Q1hYIiA+JjY7IH0KKysKKytpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uX0NYWCIgPSByZWxpbmsg fHwKKysgICB0ZXN0ICIkaW5oZXJpdF9ycGF0aF9DWFgiID0geWVzOyB0aGVuCisrICAjIEZhc3Qg aW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8K KytlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisrICAg ICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBubzsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlv biBpcyBub3QgbmVjZXNzYXJ5CisrICBlbmFibGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCisrZmkK KysKKysKKysKKysKKysKKysKKysKKysgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAg Q0M9JGx0X3NhdmVfQ0MKKysgIExEQ1hYPSRMRAorKyAgTEQ9JGx0X3NhdmVfTEQKKysgIEdDQz0k bHRfc2F2ZV9HQ0MKKysgIHdpdGhfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCisrICBsdF9j dl9wYXRoX0xEQ1hYPSRsdF9jdl9wYXRoX0xECisrICBsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3Bh dGhfTEQKKysgIGx0X2N2X3Byb2dfZ251X2xkY3h4PSRsdF9jdl9wcm9nX2dudV9sZAorKyAgbHRf Y3ZfcHJvZ19nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKKytmaSAjIHRlc3QgIiRfbHRfY2F1 Z2h0X0NYWF9lcnJvciIgIT0geWVzCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysgICAgICAgIGFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5k cyBsaWJ0b29sIgorKworKworKworKworKyMgT25seSBleHBhbmQgb25jZToKKysKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3JrcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQor K0xOX1M9JGFzX2xuX3MKKytpZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v LCB1c2luZyAkTE5fUyIgPiY1CisrJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9Cisr ZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01B S0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQorK3NldCB4ICR7TUFLRS1t YWtlfQorK2FjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVow LTlfXS9fL2cnYAorK2lmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsg ZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FD RU9GCisrU0hFTEwgPSAvYmluL3NoCisrYWxsOgorKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBA JSUlJworK19BQ0VPRgorKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50 ZXJpbmcuLi4iLCB3aGljaCB3b3VsZCBjb25mdXNlIHVzLgorK2Nhc2UgYCR7TUFLRS1tYWtlfSAt ZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBpbgorKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQor KyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OworKyAgKikKKysg ICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OworK2VzYWMKKytybSAt ZiBjb25mdGVzdC5tYWtlCisrZmkKKytpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHth Y19tYWtlfV9zZXQgPSB5ZXM7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrICBTRVRfTUFLRT0KKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKysgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKKytmaQor KworKworKyMgU2V0IGRlZmF1bHQgbGFuZ3VhZ2UgdG8gQysrCisrYWNfZXh0PWNwcAorK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisr CisrIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFi bGUtZXhjZXB0aW9ucyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfZXhjZXB0aW9ucytz ZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfZXhjZXB0aW9uczsKKytjYXQg Pj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgU09DSV9FWENFUFRJT05TIDEKKytfQUNF T0YKKysKKytmaQorKworK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBlbmFi bGVfZXhjZXB0aW9ucz15ZXMKKyt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0geG5v ICYmIGVuYWJsZV9leGNlcHRpb25zPXllcworKworKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMKKysj IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaW5mby1kb2Mgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7 ZW5hYmxlX2luZm9fZG9jK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9p bmZvX2RvYzsKKytmaQorKworK3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm8gJiYgZW5h YmxlX2luZm9fZG9jPXllcworKworKworKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3aXRjaAorKyMg Q2hlY2sgd2hldGhlciAtLWVuYWJsZS1odG1sLWRvYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtl bmFibGVfaHRtbF9kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2h0 bWxfZG9jOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBlbmFi bGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRlIC0td2l0aC1kb2NkaXIKKysKKysjIENo ZWNrIHdoZXRoZXIgLS13aXRoLWRvY2RpciB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2Rv Y2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9kb2NkaXI7IERPQ19ESVI9 IiR3aXRodmFsIgorK2Vsc2UKKysgIERPQ19ESVI9IiIKKytmaQorKworK2lmIHRlc3QgIngkRE9D X0RJUiIgIT0geDsgdGhlbgorKyAgZG9jZGlyPSIkRE9DX0RJUiIKKytlbHNlCisrICBkb2NkaXI9 IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgorK2ZpCisrCisrCisrCisrIyBDaGVj ayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKKysjIENoZWNrIHdo ZXRoZXIgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2Vu YWJsZV9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5h YmxlX2J1cnJpZWRfaGVhZGVyczsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysg ICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKyAgICAgIGVuYWJsZV9i dXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2J1cnJpZWRfaGVh ZGVycz1ubworK2ZpCisrCisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVy YXRpb24KKytlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyBpZiB0ZXN0ICJ4JGVuYWJsZV9i dXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgU09DSV9IRUFERVJTX0JVUklFRF9UUlVF PQorKyAgU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKKytlbHNlCisrICBTT0NJX0hFQURF UlNfQlVSSUVEX1RSVUU9JyMnCisrICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQorK2ZpCisr CisrCisraWYgdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysg ICBDUFBGTEFHUz0iLURTT0NJX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKyMg Q2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50KQorKyMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgorK2lm IHRlc3QgIiR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgor KyAgZW5hYmxldmFsPSRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVu YWJsZXZhbCIgPSBubzsgdGhlbgorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCisr ICAgZWxzZQorKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxz ZQorKyAgIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9y YXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX215c3FsX2J1cnJp ZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJz IiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRT0KKysgIFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9JyMnCisrZWxzZQorKyAgU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxT RT0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIg PSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCAk Q1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9y IFBvc3RHcmVTUUwgY2xpZW50KQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1wb3N0Z3Jlc3Fs LWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfcG9zdGdyZXNx bF9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsg dGhlbgorKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisr CWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaQorK2Vsc2UKKysg ICBlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9y YXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX3Bvc3RncmVzcWxf YnVycmllZF9oZWFkZXJzPXllcworKyBpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RURfVFJVRT0KKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKKytl bHNlCisrICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKKysgIFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KKytmaQorKworKworK2lmIHRlc3QgIngk ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBG TEFHUz0iLURTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisr CisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJvb3N0Lm9yZykK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ib29zdCB3YXMgZ2l2ZW4uCisraWYg dGVzdCAiJHt3aXRoX2Jvb3N0K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2Jv b3N0OworKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisr CQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKKysgICAgICAgICAgICAgICAgZWxpZiB0ZXN0 ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgd2FudF9ib29z dD0ieWVzIgorKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgorKyAgICAgICAg ICAgICAgICBlbHNlCisrCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAg CQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKKysJCSAgICAgICAgZmkKKysKKytlbHNlCisrICB3 YW50X2Jvb3N0PSJ5ZXMiCisrZmkKKysKKysKKysjICAgIEFDX0NBTk9OSUNBTF9CVUlMRAorK0JP T1NUX01EV19WRVJTSU9OPSIxLTMzLTEiCisrQk9PU1RMSUJfTURXX1ZFUlNJT049IjFfMzNfMSIK KysKKysJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgorKwkJYm9vc3RfbGli X3ZlcnNpb25fcmVxPTEuMzMKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuPWBleHBy ICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AKKysJCWJvb3N0 X2xpYl92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1wo WzAtOV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRib29zdF9s aWJfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJz aW9uX3JlcV9zdWJfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpc LlswLTldKlwuXChbMC05XSpcKSdgCisrCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3Jl cV9zdWJfbWlub3IiID0gIngiIDsgdGhlbgorKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJf bWlub3I9IjAiCisrICAgIAlmaQorKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9s aWJfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVx X21pbm9yIFwqIDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKKysJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJvb3N0 X2xpYl92ZXJzaW9uX3JlcSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGJvb3N0bGli ID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysJCXN1Y2NlZWRlZD1ubwor KworKwkJCQkJCQkJCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgorKwkJCUJPT1NUX0xJQkRJUlRZ UEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKKysJCWZpCisr CQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KKysJCQlpZiB0ZXN0ICIkQk9P U1RfTElCRElSVFlQRSIgPT0gImxpYjY0IjsgdGhlbgorKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9v c3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJP T1NUX0xJQkRJUlRZUEUiOyB0aGVuCisrCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRh Y19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQllbHNlCisrICAgICAgICAgICAg ICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJCQkJZmkKKysJCQll bHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgorKwkJCWZpCisrCQkJ Qk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCisrCQllbHNlCisrCQkJZm9y IGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29z dCA7IGRvCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0 IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRoZW4KKysJ CQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgor KwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgorKwkJCQkJ YnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNs dWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0 X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IjsgdGhlbgor KwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUi CisrCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3Qt JEJPT1NUX01EV19WRVJTSU9OIgorKworKwkJCQkJCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3Rf cGF0aF90bXAvbGliIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiAmJiB0ZXN0 ICEgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWI2NCI7IHRoZW4KKysJCQkJCQlCT09TVF9MSUJT PSItTCRhY19ib29zdF9wYXRoX3RtcC9saWIiCisrCQkJCQkJZWNobyAiSGFjazogJEJPT1NUX0xJ QlMiCisrCQkJCQlmaQorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJZG9uZQorKwkJZmkKKysK KysJCUNQUEZMQUdTX1NBVkVEPSIkQ1BQRkxBR1MiCisrCQlDUFBGTEFHUz0iJENQUEZMQUdTICRC T09TVF9DRkxBR1MiCisrCQlleHBvcnQgQ1BQRkxBR1MKKysKKysJCUxERkxBR1NfU0FWRUQ9IiRM REZMQUdTIgorKwkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisrCQlleHBvcnQgTERG TEFHUworKworKyAgICAgCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrCisrI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgorKworK2ludAorK21haW4gKCkKKyt7 CisrCisrI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgorKy8vIEV2ZXJ5 dGhpbmcgaXMgb2theQorKyNlbHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xk CisrI2VuZGlmCisrCisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKwkJIHN1Y2NlZWRlZD15 ZXMKKysJCSBmb3VuZF9zeXN0ZW09eWVzCisrICAgICAgICAgOgorKworK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKworKwkJCQkJCWlmIHRl c3QgIngkc3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KKysJCQlfdmVyc2lvbj0wCisrCQkJaWYg dGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCisrICAgICAgICAgICAgICAgIEJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJ CQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2 L251bGxgOyBkbworKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9v c3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AK KysJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJ CWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJX3ZlcnNpb249JF92ZXJz aW9uX3RtcAorKwkJCQkJCWZpCisrCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVy c2lvbiB8IHNlZCAncy9cLi9fLydgCisrCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9w YXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJCWRvbmUKKysJCQkJ ZmkKKysJCQllbHNlCisrCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAv b3B0IDsgZG8KKysJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIk YWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3Bh dGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQkJX3ZlcnNpb25fdG1w PWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwv Ym9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAorKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lv bl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0 aGVuCisrCQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJCQliZXN0X3BhdGg9 JGFjX2Jvb3N0X3BhdGgKKysJCQkJCQkJZmkKKysJCQkJCQlkb25lCisrCQkJCQlmaQorKwkJCQlk b25lCisrCisrCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3Mv XC4vXy8nYAorKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRW RVJTSU9OX1VOREVSU0NPUkUiCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1Rf TElCRElSVFlQRSIKKysKKysJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRo ZW4KKysJCQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9P VCI7IHRoZW4KKysJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1wo LipcKSdgCisrCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3Mv Ym9vc3RfLy8nIHwgc2VkICdzL18vLi9nJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49 YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAnXChbMC05XSpcLlswLTldKlwpJ2AKKysJCQkJCQlWX0NI RUNLPWBleHByICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNpb25gCisrCQkJCQkJ aWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQl7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09T VF9ST09UIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29z dCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QiID4mNjt9CisrCQkJCQkJCUJPT1NUX0NGTEFHUz0i LUkkQk9PU1RfUk9PVCIKKysJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8k Qk9PU1RfTElCRElSVFlQRSIKKysJCQkJCQlmaQorKwkJCQkJZmkKKysJICAgIAkJZmkKKysJCQlm aQorKworKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKKysJCQlleHBvcnQg Q1BQRkxBR1MKKysJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKKysJCQlleHBvcnQg TERGTEFHUworKworKyAgICAgCQljYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworKyNpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKysKKytpbnQKKyttYWluICgp CisreworKworKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04KKysvLyBF dmVyeXRoaW5nIGlzIG9rYXkKKysjZWxzZQorKyMgIGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9v IG9sZAorKyNlbmRpZgorKworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0OyB0aGVuCisrCisrICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogeWVzICgkX3ZlcnNpb24pIiA+JjUKKyskYXNfZWNobyAieWVzICgkX3ZlcnNp b24pIiA+JjY7IH0KKysJCSBzdWNjZWVkZWQ9eWVzCisrICAgICAgICAgOgorKworK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyAoJF92ZXJzaW9uKSIgPiY1CisrJGFzX2VjaG8gIm5vICgk X3ZlcnNpb24pIiA+JjY7IH0KKysgICAgICAgICA6CisrCisrZmkKKysKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCWZpCisr CisrCQlpZiB0ZXN0ICIkc3VjY2VlZGVkIiAhPSAieWVzIiA7IHRoZW4KKysJCQlpZiB0ZXN0ICIk X3ZlcnNpb24iID0gIjAiIDsgdGhlbgorKwkJCQl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogV2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9u ICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBh IHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lm eSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRI IHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3Qg aW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9v c3QvdmVyc2lvbi5ocHA+LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFdlIGNvdWxk IG5vdCBkZXRlY3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNp b25fcmVxX3Nob3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGli cmFyeSAoc3RpbGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGlu IHlvdXIgZW52aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qg b3B0aW9uLiAgSWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBj aGVjayB5b3VyIHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi4i ID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCQkJZWxzZQorKwkJCQl7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJ1lvdXIgYm9vc3QgbGlicmFyaWVzIHNl ZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9vc3Rf bGliX3ZlcnNpb25fc2hvcnRlbiciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAnWW91 ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBu ZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKysJCQlmaQorKwkJZWxzZQorKworKworKworK2NhdCA+PmNv bmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUIC8qKi8KKytfQUNFT0YKKysK KysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxh YmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9maWxlc3lzdGVtK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJ CQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+CisraW50Cisr bWFpbiAoKQorK3sKKyt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEu dHh0IiApOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysg IGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQorKworKwlheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vCisrZmkKKysKKytybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCSAJ CSAgICAgICAgCQkJYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPiY1CisrJGFzX2VjaG8g IiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9v c3RfZmlsZXN5c3RlbSIgPSAieWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FD RU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX0ZJTEVTWVNURU0gLyoqLworK19BQ0VPRgorKworKwkJ CQlCTj1ib29zdF9maWxlc3lzdGVtCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJO LW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBh c19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3No YAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRh eF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4u LiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNf dmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNf ZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Cisr CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNl CisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisr ZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3Zh bD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidg CisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9GSUxFU1lT VEVNX0xJQj0iLWwkYXhfbGliIiAgbGlua19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFrCisrZWxzZQor KyAgbGlua19maWxlc3lzdGVtPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVz dCAieCRsaW5rX2ZpbGVzeXN0ZW0iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Cisr CQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1f T3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhf Y3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBh Y19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKKysKKysJCQkgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBw PgorK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6b3B0aW9uc19k ZXNjcmlwdGlvbiBnZW5lcmljKCJHZW5lcmljIG9wdGlvbnMiKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlv bnM9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29z dF9wcm9ncmFtX29wdGlvbnM9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSAgICAgICAgICAgICAgIGFj X2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9i b29zdF9wcm9ncmFtX29wdGlvbnMiID4mNjsgfQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9w cm9ncmFtX29wdGlvbnMiID0geWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF T0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TIC8qKi8KKytfQUNFT0YKKysK KysJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lm IHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNl dCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWlu ICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAg ICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYg Y29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyth Y19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3Jl cyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAi eCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSIt bCRheF9saWIiICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxp bmtfcHJvZ3JhbV9vcHRpb25zPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVz dCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh IiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFi bGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQg bGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0 X3RocmVhZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwor K2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhG TEFHUworKworKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisr ICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgorKwkJCSBlbGlmIHRlc3QgIngk YnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgorKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAk Q1hYRkxBR1MiCisrCQkJIGVsc2UKKysJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIK KysJCQkgZmkKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+CisraW50CisrbWFpbiAoKQorK3sK Kytib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisr ICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMKKytlbHNlCisrICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3RocmVhZD1ubworK2ZpCisr Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCisrCQkJIGFjX2V4dD1jcHAKKyth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQor KworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jv b3N0X3RocmVhZCIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF90aHJlYWQiID4mNjsgfQor KwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAgICAg ICAgICAgICAgIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4KKysgCQkJ CSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBlbGlmIHRl c3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9 Ii1tdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGVsc2UKKysJCQkJICBCT09TVF9DRkxB R1M9Ii1wdGhyZWFkICRCT09TVF9DRkxBR1MiCisrCQkJICAgZmkKKysKKysKKysKKytjYXQgPj5j b25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9USFJFQUQgLyoqLworK19B Q0VPRgorKworKwkJCQlCTj1ib29zdF90aHJlYWQKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO 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 IngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfVEhSRUFEX0xJQj0iLWwkYXhfbGli IiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisr ZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7 IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFt cyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfaW9zdHJlYW1zK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Cisr CisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1 ZGUgPGJvb3N0L2lvc3RyZWFtcy9maWx0ZXJpbmdfc3RyZWFtLmhwcD4KKysJCQkJCQkJCQkJCQkg I2luY2x1ZGUgPGJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KKysKKytpbnQKKyttYWlu ICgpCisreworK3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOworKwkJCQkJCQkJ CSBuYW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOworKwkJCQkJCQkJCSBpbzo6ZmlsdGVy aW5nX2lzdHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7CisrCQkJ CQkJCQkJIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzCisrZWxzZQor KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9pb3N0cmVhbXM9bm8K KytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNQorKyRh c19lY2hvICIkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4 X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9JT1NUUkVBTVMgLyoqLworK19BQ0VPRgor KworKwkJCQlCTj1ib29zdF9pb3N0cmVhbXMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRD QyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1n dyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10 LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNo byAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7 IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQi OyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgor K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAo KQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFj X3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK Kytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIp IDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAg fTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNv bmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNf cmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwi J2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMi ID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0k eyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngk YXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfSU9TVFJFQU1TX0xJQj0iLWwkYXhfbGli IiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisr ZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7 IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6 YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNf ZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrI2luY2x1ZGUgPGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJICNpbmNsdWRlIDxib29zdC9h cmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZl LmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3N0ZDo6b2ZzdHJlYW0gb2ZzKCJmaWxlbmFt ZSIpOworKwkJCQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9hKG9mcyk7Cisr CQkJCQkJCQkJIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVy MQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3Rfc2VyaWFs aXphdGlvbj1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NlcmlhbGl6 YXRpb24iID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPiY2OyB9 CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA9ICJ4eWVzIjsgdGhl bgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1NF UklBTElaQVRJT04gLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9u CisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMg JEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJO LSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsg ZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFp biIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4g aW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAi dGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisr TElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7Cisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigo JGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl eHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0 X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19M aWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFz X2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19h Y19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIg PiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2Vj aG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysg IEJPT1NUX1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBi cmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJ CQkJQk49Ym9vc3Rfd3NlcmlhbGl6YXRpb24KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRD QyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1n dyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10 LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNo byAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7 IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQi OyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgor K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAo KQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFj X3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK Kytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIp IDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0 ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4 eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAg fTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNv bmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBj b25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNf cmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwi J2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMi ID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0k eyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngk YXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfV1NFUklBTElaQVRJT05fTElCPSItbCRh eF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJu byIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAi eG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2ln bmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NpZ25hbHMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVk ZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK2Jvb3N0OjpzaWdu YWw8dm9pZCAoKT4gc2lnOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i amV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8KKytmaQorKworK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9zaWduYWxzIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2 X2Jvb3N0X3NpZ25hbHMiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2lnbmFs cyIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZp bmUgSEFWRV9CT09TVF9TSUdOQUxTIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3Rfc2ln bmFscworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1t 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 CisrICBCT09TVF9TSUdOQUxTX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJl YWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJ CWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9 CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf ZGF0ZV90aW1lK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVn b3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3VzaW5n IG5hbWVzcGFjZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9v c3RfZGF0ZV90aW1lPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ YXhfY3ZfYm9vc3RfZGF0ZV90aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAor K2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251 CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3Zf Ym9vc3RfZGF0ZV90aW1lIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIg PiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0 aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1Rf REFURV9USU1FIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCisrCQkJ CWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRD Qy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBs aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJ CQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAk YXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBc IlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0i LWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg eworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVz IgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xp Yj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysg ICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNr X2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWIn fQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9 CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRh c192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NU X0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxz ZQorKyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfdGhyZWFkIj0ibm8iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Cisr CQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBh dmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3JlZ2V4K3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJ CQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3JlZ2V4LmhwcD4KKysKKytpbnQKKyttYWluICgp CisreworK2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9yZWdleD15 ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3Jl Z2V4PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisr YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNQor KyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhf Y3ZfYm9vc3RfcmVnZXgiID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxf QUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfUkVHRVggLyoqLworK19BQ0VPRgorKworKwkJCQlC Tj1ib29zdF9yZWdleAorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQg JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMg IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9N RFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJf JGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19h Y19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVf TElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVy biBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGlu ayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8 CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBl dmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2Fz X3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2Vj aG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWIn fQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIi eWVzOyB0aGVuCisrICBCT09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5 ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9u ZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAh IiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0 PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrI2luY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD4KKytpbnQKKyttYWluICgpCisr eworK3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7CisrCQkJCQkgICAgICAgICAg ICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhh bXBsZSAxIiApOyByZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz15 ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3Vu aXRfdGVzdF9mcmFtZXdvcms9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3VuaXRf dGVzdF9mcmFtZXdvcmsiID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90 ZXN0X2ZyYW1ld29yayIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8KKytfQUNF T0YKKysKKysJCQlCTj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrCisrICAgIAkJc2F2ZWRfbGRm bGFncz0iJHtMREZMQUdTfSIKKysJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0Mt bXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10ICRCTi1t Z3ctbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKyAgICAgICAgICAgICAgICBMREZMQUdTPSIk e0xERkxBR1N9IC1sJGF4X2xpYiIKKysgICAgCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFy eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0 VGVzdEZyYW1ld29yayBsaWJyYXJ5Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn CisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICAg ICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVk ZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcg Ym9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFt cGxlIDEiICk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5 PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5j b25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0 aGVuCisrICBsaW5rX3RocmVhZD0ieWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K KytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0CisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQor KyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9CisrICAg ICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCisrCQkJICAgIGlmIHRlc3Qg IngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgorKworKwkJCQkJYnJlYWsKKysJ CQkJZmkKKysgICAgICAgICAgICAgIGRvbmUKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291 bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENv dWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisr CQlmaQorKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKKysgICAgICAgIExERkxB R1M9IiRMREZMQUdTX1NBVkVEIgorKwlmaQorKworKworKworKworKworKworKworKworKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0 dHA6Ly93d3cubXlzcWwub3JnCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVu YWJsZS1iYWNrZW5kLW15c3FsIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5k X215c3FsK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX215 c3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2Jh Y2tlbmRfbXlzcWw9bm8KKysgICAgICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMK KysgICAgICBmaQorK2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9teXNxbD1ubworKworK2ZpCisr CisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KKysg ICBNWVNRTF9ESVJTPSJteXNxbCIKKysgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCisrCisr CisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1teXNxbCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3 aXRoX215c3FsK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX215c3FsOworKwlN WVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIk d2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9teXNxbD0ibm8iCisrICAg ICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2Fu dF9teXNxbD0ieWVzIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9Inll cyIKKysgICAgICAgICAgICBNWVNRTF9DT05GSUc9IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysK KytlbHNlCisrICB3YW50X215c3FsPSJ5ZXMiCisrCU1ZU1FMX2luY19jaGVjaz0iL3Vzci9pbmNs dWRlIC91c3IvbG9jYWwgL29wdCIKKysKKytmaQorKworKworKyAgICBNWVNRTF9DRkxBR1M9IiIK KysgICAgTVlTUUxfTERGTEFHUz0iIgorKyAgICBNWVNRTF9WRVJTSU9OPSIiCisrCisrCisrICAg IGlmIHRlc3QgIiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0 IC16ICIkTVlTUUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICJteXNxbF9jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBteXNxbF9jb25maWc7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfTVlTUUxfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhc2UgJE1ZU1FMX0NPTkZJRyBpbgorKyAgW1xc L10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJE1ZU1FMX0NPTkZJ RyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7Owor KyAgKikKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcGF0aF9NWVNRTF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUK KytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7OworK2VzYWMKKytmaQorK01ZU1FMX0NPTkZJRz0k YWNfY3ZfcGF0aF9NWVNRTF9DT05GSUcKKytpZiB0ZXN0IC1uICIkTVlTUUxfQ09ORklHIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FMX0NPTkZJRyIg PiY1CisrJGFzX2VjaG8gIiRNWVNRTF9DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrICAgICAgICBmaQorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICEg LXggIiRNWVNRTF9DT05GSUciOyB0aGVuCisrICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6ICRNWVNRTF9DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMg bm90IGFuIGV4ZWN0dWFibGUgZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICRN WVNRTF9DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmls ZSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgICAgICAgICBNWVNR TF9DT05GSUc9Im5vIgorKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJubyIKKysgICAgICAgIGZp CisrCisrICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAg ICAgICAgICAgIworKyAgICAgICAgICAgICMgTG9vayBmb3IgTXlTUUwgQyBBUEkgaGVhZGVycwor KyAgICAgICAgICAgICMKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KKysgICAgICAg ICAgICBNWVNRTF9pbmNkaXI9CisrICAgICAgICAgICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1Z U1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3Qg LWQgIiRteXNxbF9pbmNfZGlyIiBcCisrICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNx bF9pbmNfZGlyL215c3FsL215c3FsLmgiCisrICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAg ICAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0kbXlzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAg ICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisr ICAgICAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVu CisrICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBE aWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1 ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIGNhc2UgIiRNWVNRTF9p bmNkaXIiIGluCisrICAgICAgICAgICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiAp ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUg ZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgk TVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKyAgICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfaW5jZGlyIiA+JjUK KyskYXNfZWNobyAiJE1ZU1FMX2luY2RpciIgPiY2OyB9CisrCisrICAgICAgICAgICAgaWYgdGVz dCAiJE1ZU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAgICAgICAgICAg TVlTUUxfQ0ZMQUdTPSIiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgTVlTUUxf Q0ZMQUdTPSItSSR7TVlTUUxfaW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAg ICAgIE1ZU1FMX0xERkxBR1M9ImAkTVlTUUxfQ09ORklHIC0tbGlic2AiCisrCisrICAgICAgICAg ICAgTVlTUUxfVkVSU0lPTj1gJE1ZU1FMX0NPTkZJRyAtLXZlcnNpb25gCisrCisrCisrY2F0ID4+ Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfTVlTUUwgMQorK19BQ0VPRgorKwor KworKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAg ICAgICAgZm91bmRfbXlzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysg ICAgbXlzcWxfdmVyc2lvbl9yZXE9JE1ZU1FMX1JFUV9WRVJTSU9OCisrCisrICAgIGlmIHRlc3Qg IiRmb3VuZF9teXNxbCIgPSAieWVzIiAtYSAtbiAiJG15c3FsX3ZlcnNpb25fcmVxIjsgdGhlbgor KworKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE15U1FM IHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBpZiBNeVNRTCB2ZXJzaW9uIGlzID49ICRteXNxbF92ZXJzaW9uX3JlcS4uLiAiID4mNjsg fQorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21ham9yPWBl eHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAgIG15c3FsX3Zl cnNpb25fcmVxX21pbm9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJG15c3FsX3Zl cnNpb25fcmVxIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysgICAgICAgIGlmIHRl c3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAg bXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAgbXlz cWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAx MDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92 ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKKysKKysgICAgICAgICAgICAgICAg ICAgICAgICBteXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1woWzAt OV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkTVlTUUxfVkVSU0lP TiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz1g ZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCisrICAg ICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCisrICAgICAg ICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBt eXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAw IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9u X21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JG15c3FsX3ZlcnNpb25fbWljcm9gCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX2NoZWNrPWBl eHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3JlcV9udW1iZXJg CisrICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQor KyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysKKysKKytmaQorKyBpZiB0ZXN0 ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfTVlTUUxfVFJV RT0KKysgIEhBVkVfTVlTUUxfRkFMU0U9JyMnCisrZWxzZQorKyAgSEFWRV9NWVNRTF9UUlVFPScj JworKyAgSEFWRV9NWVNRTF9GQUxTRT0KKytmaQorKworKyNNWVNRTF9ESVJTPSJteXNxbCIKKysK KysKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5kCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlIHdh cyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX29yYWNsZStzZXR9IiA9IHNldDsg dGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9vcmFjbGU7ICBpZiB0ZXN0ICIkZW5h YmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysg ICAgICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9eWVzCisrICAgICAgZmkKKytlbHNl CisrICAgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCisrCisrZmkKKysKKysKKytpZiB0ZXN0ICJ4 JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSAieHllcyI7IHRoZW4KKysgICBPUkFDTEVfRElSUz0i b3JhY2xlIgorKyAgIE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKKysKKysKKysKKysjIENo ZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZSB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX29y YWNsZStzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7CisrICAgICAg ICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIGlmIHRlc3Qg LW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGly PSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBvcmFj bGVfaG9tZV9kaXI9IiIKKysgICAgICAgICAgICBmaQorKyAgICAgICAgZmkKKysKKytlbHNlCisr CisrICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisrICAgICAgICAgICAg b3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCisrICAgICAgICBlbHNlCisrICAgICAgICAg ICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAgICBmaQorKworKworK2ZpCisrCisrCisrCisr IyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4uCisraWYgdGVz dCAiJHt3aXRoX29yYWNsZV9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3 aXRoX29yYWNsZV9pbmNsdWRlOyBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdpdGh2YWwiCisr ZWxzZQorKyAgb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiIKKysKKytmaQorKworKworKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtb3JhY2xlLWxpYiB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRo X29yYWNsZV9saWIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2xp Yjsgb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwiCisrZWxzZQorKyAgb3JhY2xlX2hvbWVf bGliX2Rpcj0iIgorKworK2ZpCisrCisrCisrICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIiCisrICAg IE9SQUNMRV9PQ0lfTERGTEFHUz0iIgorKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiIKKysKKysg ICAgICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgorKworKyAgICBpZiB0 ZXN0IC1uICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAiJG9y YWNsZV9ob21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0gInllcyI7IHRo ZW4KKysKKysgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFj bGVfaG9tZV9kaXIvcmRibXMvcHVibGljIgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9y YWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVtbyIKKysKKysgICAg ICAgICAgICAgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIi CisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KKysg ICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysK KysgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3Jh Y2xlX2hvbWVfbGliX2RpciI7IHRoZW4KKysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9t ZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAi eWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21l X2luY2x1ZGVfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9k aXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0i eWVzIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJf ZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KKysg ICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIiCisrICAgICAg ICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAg ICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrICAgIGZp CisrCisrICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhl bgorKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IE9yYWNsZSBz dXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRl ZC4gXAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3Jh Y2xlIG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9w dGlvbnMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUgc3VwcG9ydCBp cyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNsZSBwYXRocyBoYXZlIGJlZW4gcHJvdmlkZWQuIFwKKytQ bGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13aXRoLW9yYWNsZSBvciBc CisrLS13aXRoLW9yYWNsZS1pbmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xlLWxpYiBvcHRpb25zLiIg PiYyO30KKysgICAgZmkKKysKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9p bmNsdWRlX2RpciIgLWEgLW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KKysKKysgICAgICAgIHNh dmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisrICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1J JG9yYWNsZV9pbmNsdWRlX2RpciIKKysKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9y YWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCisrICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFH UyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAgZmkKKysKKysgICAgICAgICMgRmln dXJlIG91dCBpZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2luMzIuCisrICAgICAgICBjYXNlICRob3N0 X29zIGluCisrICAgICAgICAgICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7CisrICAgICAgICAg ICAgKmN5Z3dpbiogKSAgV0lOMzI9eWVzIDs7CisrICAgICAgICAgICAgKikgV0lOMzI9bm8gOzsK KysgICAgICAgIGVzYWMKKysKKysgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8iCisrICAg ICAgICB0aGVuCisrICAgICAgICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEiCisrICAg ICAgICBlbHNlCisrICAgICAgICAgICAgb2NpX2xpYnM9Ii1sb2NpIgorKyAgICAgICAgZmkKKysK KysgICAgICAgIHNhdmVkX0xERkxBR1M9IiRMREZMQUdTIgorKyAgICAgICAgc2F2ZWRfTElCUz0i JExJQlMiCisrICAgICAgICBvY2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCisrICAgICAg ICBMREZMQUdTPSIkTERGTEFHUyAkb2NpX2xkZmxhZ3MiCisrICAgICAgICBMSUJTPSIkTElCUyAk b2NpX2xpYnMiCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3Jh Y2xlX2luY2x1ZGVfZGlyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgT3JhY2xlIE9D SSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KKysKKysgICAgICAg IGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrCisrICAgICAgICAgICAgLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8b2NpLmg+CisraW50CisrbWFp biAoKQorK3sKKysKKysjaWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKKysjaWYgT0NJX01B Sk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgorKy8vIE9yYWNsZSAx MC4yIGRldGVjdGVkCisrI2VuZGlmCisrI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lOVEFYKQorKy8v IE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKKysvLyBUT0RPIC0gbWxvc2tvdDogZmluZCBiZXR0 ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNpb25zOworKyNlbHNlCisrIyAgZXJyb3Ig T3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJl dHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKworKyAgICAgICAg ICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCisrCisrICAgICAg ICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCisrICAgICAgICAg ICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkkb3JhY2xlX2lu Y2x1ZGVfZGlyMiIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIG9jaV9oZWFkZXJf Zm91bmQ9InllcyIKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKworK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJu byIKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub3Qg Zm91bmQiID4mNQorKyRhc19lY2hvICJub3QgZm91bmQiID4mNjsgfQorKworKworK2ZpCisrCisr cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0CisrICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKyth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCisrCisr ICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBPcmFj bGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIuLi4gIiA+ JjY7IH0KKysKKysgICAgICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysgICAgICAgICAgICBjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysKKysgICAgICAgICAgICAgICAgLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSA8b2NpLmg+CisraW50CisrbWFpbiAoKQorK3sKKysKKytPQ0lFbnYqIGVudmgg PSAwOworK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDAp OworK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOworKworKwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrCisrICAgICAgICAgICAg ICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIKKysgICAgICAg ICAgICAgICAgb2NpX2xpYl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsg fQorKworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKysgICAgICAgICAg ICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1CisrJGFzX2VjaG8gIm5vdCBmb3Vu ZCIgPiY2OyB9CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICAg ICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysgICAgICAgIGZpCisrCisrICAgICAgICBDUFBGTEFH Uz0iJHNhdmVkX0NQUEZMQUdTIgorKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCisr ICAgICAgICBMSUJTPSIkc2F2ZWRfTElCUyIKKysgICAgZmkKKysKKysgICAgICAgICAgICAgICAg b3JhY2xlX3ZlcnNpb25fcmVxPSRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OCisrCisrICAgIGlmIHRl c3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVz IiAtYSBcCisrICAgICAgICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4KKysKKysgICAg ICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpP Ul9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdz LyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICovLycgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysgICAgICAgIG9yYWNs ZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9O LionIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUg T0NJX01JTk9SX1ZFUlNJT04gICovLycgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNs ZV92ZXJzaW9uX3JlcSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2 ZXJzaW9uIGlzID49ICRvcmFjbGVfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysgICAgICAg IGlmIHRlc3QgLW4gIiRvcmFjbGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFjbGVfdmVyc2lv bl9taW5vciI7IHRoZW4KKysKKysgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiRvcmFj bGVfdmVyc2lvbl9tYWpvci4kb3JhY2xlX3ZlcnNpb25fbWlub3IiCisrCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRv cmFjbGVfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCisrICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFsw LTldKlwpJ2AKKysKKysgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHBy ICRvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX3JlcV9taW5vciBcKiAx MDAwYAorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX251bWJlcj1g ZXhwciAkb3JhY2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAxMDAwYAorKwor KyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVfdmVyc2lvbl9u dW1iZXIgXD5cPSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgICAgICBpZiB0 ZXN0ICIkb3JhY2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8g InllcyIgPiY2OyB9CisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhB VkVfT1JBQ0xFIDEKKytfQUNFT0YKKysKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNo byAibm8iID4mNjsgfQorKyAgICAgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJl ZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVkIHZl cnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKysgICAgICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIE9S QUNMRV9PQ0lfVkVSU0lPTj0iVU5LTk9XTiIKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAg ICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3JhY2xlIHZlcnNp b24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSB2ZXJzaW9uIHVua25vd24sIHBy b2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlIiA+JjI7fQorKyAgICAgICAg ZmkKKysgICAgZmkKKysKKysKKysKKysKKysKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNr ZW5kX29yYWNsZSIgPSB4eWVzOyB0aGVuCisrICBIQVZFX09SQUNMRV9UUlVFPQorKyAgSEFWRV9P UkFDTEVfRkFMU0U9JyMnCisrZWxzZQorKyAgSEFWRV9PUkFDTEVfVFJVRT0nIycKKysgIEhBVkVf T1JBQ0xFX0ZBTFNFPQorK2ZpCisrCisrI09SQUNMRV9ESVJTPSJvcmFjbGUiCisrCisrCisrCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsIHdhcyBn aXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsgIGlmIHRlc3Qg IiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVz cWw9bm8KKysgICAgICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcworKyAg ICAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KKysKKytmaQor KworKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRo ZW4KKysgICBQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCisrICAgUE9TVEdSRVNRTF9SRVFf VkVSU0lPTj0iNy4xLjQiCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wb3N0Z3Jlc3Fs IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhl bgorKyAgd2l0aHZhbD0kd2l0aF9wb3N0Z3Jlc3FsOworKwlQT1NUR1JFU1FMX2luY19jaGVjaz0i JHdpdGhfcG9zdGdyZXNxbC9pbmNsdWRlIgorKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0g Im5vIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBl bGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0 Z3Jlc3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3Fs PSJ5ZXMiCisrICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKKysgICAgICAgIGZpCisr CisrZWxzZQorKyAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisrCVBPU1RHUkVTUUxfaW5jX2NoZWNr PSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgorKworK2ZpCisrCisrCisrICAgIFBPU1RH UkVTUUxfQ0ZMQUdTPSIiCisrICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgorKyAgICBQT1NUR1JF U1FMX1BPU1RHUkVTUUw9IiIKKysKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfcG9zdGdyZXNxbCIg PSAieWVzIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJRyIgLW8gdGVz dDsgdGhlbgorKyAgICAgICAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGdfY29u ZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkg cGdfY29uZmlnOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX1BHX0NPTkZJRytzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQ R19DT05GSUcgaW4KKysgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgYWNfY3ZfcGF0aF9QR19DT05G SUc9IiRQR19DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBw YXRoLgorKyAgOzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfUEdfQ09ORklHPSIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgOzsKKytlc2FjCisrZmkKKytQR19D T05GSUc9JGFjX2N2X3BhdGhfUEdfQ09ORklHCisraWYgdGVzdCAtbiAiJFBHX0NPTkZJRyI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQR19DT05GSUciID4m NQorKyRhc19lY2hvICIkUEdfQ09ORklHIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJ RyI7IHRoZW4KKysgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBm aWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFBHX0NPTkZJRyBkb2VzIG5vdCBl eGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCisrICAgICAgICAg ICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVz dCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgICMKKysgICAgICAgICAg ICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFBvc3Rn cmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQ b3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5Li4uICIgPiY2OyB9CisrICAgICAgICAgICAgUE9T VEdSRVNRTF9pbmNkaXI9CisrICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5jX2RpciBpbiAk UE9TVEdSRVNRTF9pbmNfY2hlY2sKKysgICAgICAgICAgICBkbworKyAgICAgICAgICAgICAgICBp ZiB0ZXN0IC1kICIkcG9zdGdyZXNxbF9pbmNfZGlyIiBcCisrICAgICAgICAgICAgICAgICYmIHRl c3QgLWYgIiRwb3N0Z3Jlc3FsX2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCisrICAgICAgICAgICAg ICAgIHRoZW4KKysgICAgICAgICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jl c3FsX2luY19kaXIKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAg IGZpCisrICAgICAgICAgICAgZG9uZQorKworKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRQT1NU R1JFU1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAgIHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNx bCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJyIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyIGlu ICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgY2FzZSAiJFBPU1RHUkVTUUxf aW5jZGlyIiBpbgorKyAgICAgICAgICAgICAgICAvKiApIDs7CisrICAgICAgICAgICAgICAgICog KSAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGlu Y2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUg cGF0aC4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgUG9zdGdyZXNxbCBpbmNs dWRlIGRpcmVjdG9yeSAoJFBPU1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBh dGguIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKyAgICAgICAgICAg IGVzYWMKKysKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkUE9TVEdSRVNRTF9pbmNkaXIiID4mNQorKyRhc19lY2hvICIkUE9TVEdSRVNRTF9pbmNkaXIi ID4mNjsgfQorKworKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAi L3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIK KysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkk e1BPU1RHUkVTUUxfaW5jZGlyfSIKKysgICAgICAgICAgICBmaQorKworKyAgICAgICAgICAgIFBP U1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAg ICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1l ICdzI1Bvc3RncmVTUUwgIyMnYAorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisr I2RlZmluZSBIQVZFX1BPU1RHUkVTUUwgMQorK19BQ0VPRgorKworKworKyAgICAgICAgICAgIGZv dW5kX3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBmb3VuZF9w b3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrCisrCisrICAgIHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXE9JFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04KKysKKysgICAgaWYgdGVz dCAiJGZvdW5kX3Bvc3RncmVzcWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxIjsgdGhlbgorKworKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9CisrCisrICAgICAgICAgICAgICAgICAg ICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJz aW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFf bWlub3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwp J2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAg aWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAg ICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCisrICAgICAgICBmaQor KworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21pY3JvYAorKworKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9tYWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woWzAtOV0qXCknYAorKyAg ICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04g OiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNy bz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwp J2AKKysgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4Ijsg dGhlbgorKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKKysgICAgICAg IGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jl c3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNy b2AKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNx bF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKKysg ICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisr ICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUK KyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKysgICAgICAgIGZpCisrICAgIGZpCisrCisrCisrCisrCisrCisrZmkKKysgaWYgdGVz dCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfUE9T VEdSRVNRTF9UUlVFPQorKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPScjJworK2Vsc2UKKysgIEhB VkVfUE9TVEdSRVNRTF9UUlVFPScjJworKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPQorK2ZpCisr CisrI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysKKysKKysKKysKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNr cyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZv X29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKKysjaWYgdGVzdCAieCRlbmFibGVfaW5mb19k b2MiICE9IHhubzsgdGhlbgorKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFi bGVfaW5mb19kb2M9bm8KKysjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQorKyNm aQorKyBpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzOyB0aGVuCisrICBJTkZPX0RP Q19UUlVFPQorKyAgSU5GT19ET0NfRkFMU0U9JyMnCisrZWxzZQorKyAgSU5GT19ET0NfVFJVRT0n IycKKysgIElORk9fRE9DX0ZBTFNFPQorK2ZpCisrCisrCisrIyBDaGVja3MgZm9yIGRvY3VtZW50 YXRpb24gYnVpbGQgdG9vbHMKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRveHlnZW4i LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkb3h5 Z2VuOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2RveHlnZW5fb2src2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAi JGRveHlnZW5fb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2RveHlnZW5fb2s9IiRkb3h5Z2VuX29r IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2Rv eHlnZW5fb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25l CisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2Rv eHlnZW5fb2siICYmIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ibm8iCisrZmkKKytmaQorK2RveHln ZW5fb2s9JGFjX2N2X3Byb2dfZG94eWdlbl9vaworK2lmIHRlc3QgLW4gIiRkb3h5Z2VuX29rIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRveHlnZW5fb2si ID4mNQorKyRhc19lY2hvICIkZG94eWdlbl9vayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9 CisrZmkKKysKKysKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxhdGV4Iiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgbGF0ZXg7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfbGF0ZXhfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGxhdGV4X29rIjsg dGhlbgorKyAgYWNfY3ZfcHJvZ19sYXRleF9vaz0iJGxhdGV4X29rIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2xhdGV4X29rPSJ5ZXMiCisrICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19sYXRleF9vayIgJiYgYWNfY3ZfcHJv Z19sYXRleF9vaz0ibm8iCisrZmkKKytmaQorK2xhdGV4X29rPSRhY19jdl9wcm9nX2xhdGV4X29r CisraWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGxhdGV4X29rIiA+JjUKKyskYXNfZWNobyAiJGxhdGV4X29rIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiZHZpcHMiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSBkdmlwczsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kdmlwc19vaytzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCisrICBhY19jdl9wcm9nX2R2aXBzX29rPSIkZHZp cHNfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfZHZpcHNfb2s9InllcyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9n X2R2aXBzX29rIiAmJiBhY19jdl9wcm9nX2R2aXBzX29rPSJubyIKKytmaQorK2ZpCisrZHZpcHNf b2s9JGFjX2N2X3Byb2dfZHZpcHNfb2sKKytpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHZpcHNfb2siID4mNQorKyRh c19lY2hvICIkZHZpcHNfb2siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJncyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGdzOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX2dzX29rK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZ3Nf b2s9IiRnc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcHJvZ19nc19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQor K2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3By b2dfZ3Nfb2siICYmIGFjX2N2X3Byb2dfZ3Nfb2s9Im5vIgorK2ZpCisrZmkKKytnc19vaz0kYWNf Y3ZfcHJvZ19nc19vaworK2lmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRnc19vayIgPiY1CisrJGFzX2VjaG8gIiRnc19vayIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJs ZV9odG1sX2RvYyIgIT0geG5vOyB0aGVuCisrICB0ZXN0ICJ4JGRveHlnZW5fb2siICE9IHh5ZXMg JiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4eWVzICYmIGVu YWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAmJiBlbmFibGVf aHRtbF9kb2M9bm8KKysgIHRlc3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9j PW5vCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInBlcmwiLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBwZXJsOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wYXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkUEVSTCBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSop CisrICBhY19jdl9wYXRoX1BFUkw9IiRQRVJMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdCB3aXRoIGEgcGF0aC4KKysgIDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19z YXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysg IGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7OworK2VzYWMKKytm aQorK1BFUkw9JGFjX2N2X3BhdGhfUEVSTAorK2lmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFBFUkwiID4mNQorKyRhc19lY2hv ICIkUEVSTCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorKyBp ZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVzOyB0aGVuCisrICBIVE1MX0RPQ19UUlVF PQorKyAgSFRNTF9ET0NfRkFMU0U9JyMnCisrZWxzZQorKyAgSFRNTF9ET0NfVFJVRT0nIycKKysg IEhUTUxfRE9DX0ZBTFNFPQorK2ZpCisrCisrCisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFt IHVzZWQgZm9yIHRlc3RzCisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkaWZmIiwgc28g aXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZGlmZjsgYWNf d29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kaWZmX29rK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRkaWZmX29rIjsg dGhlbgorKyAgYWNfY3ZfcHJvZ19kaWZmX29rPSIkZGlmZl9vayIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19kaWZmX29rPSJ5ZXMiCisrICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19kaWZmX29rIiAmJiBhY19jdl9wcm9nX2Rp ZmZfb2s9Im5vIgorK2ZpCisrZmkKKytkaWZmX29rPSRhY19jdl9wcm9nX2RpZmZfb2sKKytpZiB0 ZXN0IC1uICIkZGlmZl9vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRkaWZmX29rIiA+JjUKKyskYXNfZWNobyAiJGRpZmZfb2siID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNo byAibm8iID4mNjsgfQorK2ZpCisrCisrCisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJz ZWQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBz ZWQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfc2VkX29rK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRzZWRf b2siOyB0aGVuCisrICBhY19jdl9wcm9nX3NlZF9vaz0iJHNlZF9vayIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19zZWRfb2s9InllcyIKKysgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYgYWNfY3ZfcHJvZ19z ZWRfb2s9Im5vIgorK2ZpCisrZmkKKytzZWRfb2s9JGFjX2N2X3Byb2dfc2VkX29rCisraWYgdGVz dCAtbiAiJHNlZF9vayI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRzZWRfb2siID4mNQorKyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KKytlbHNlCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5v IiA+JjY7IH0KKytmaQorKworKworK2VuYWJsZV90ZXN0cz15ZXMKKyt0ZXN0ICJ4JGRpZmZfb2si ICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrdGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYg ZW5hYmxlX3Rlc3RzPW5vCisrIGlmIHRlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5ZXM7IHRoZW4K KysgIFJVTl9URVNUU19UUlVFPQorKyAgUlVOX1RFU1RTX0ZBTFNFPScjJworK2Vsc2UKKysgIFJV Tl9URVNUU19UUlVFPScjJworKyAgUlVOX1RFU1RTX0ZBTFNFPQorK2ZpCisrCisrCisrCisrIyBD aGVja3MgZm9yIGhlYWRlciBmaWxlcworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2 X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVkZSA8 c3RyaW5nLmg+CisrI2luY2x1ZGUgPGZsb2F0Lmg+CisrCisraW50CisrbWFpbiAoKQorK3sKKysK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisr ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJ TkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAg KGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgor KyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKwlhY19jdl9oZWFkZXJfc3RkYz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCisraWYgdGVzdCAk YWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMgU3VuT1MgNC54IHN0cmluZy5oIGRv ZXMgbm90IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KKysgIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKworK19B Q0VPRgorK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKysgICRF R1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIDoKKytlbHNlCisrICBhY19j dl9oZWFkZXJfc3RkYz1ubworK2ZpCisrcm0gLWYgY29uZnRlc3QqCisrCisrZmkKKysKKytpZiB0 ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyBJU0MgMi4wLjIgc3RkbGli LmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgorKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+Cisr CisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAor KyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIDoKKytlbHNlCisrICBh Y19jdl9oZWFkZXJfc3RkYz1ubworK2ZpCisrcm0gLWYgY29uZnRlc3QqCisrCisrZmkKKysKKytp ZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyAvYmluL2NjIGluIEly aXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgor KyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKysgIDoKKytlbHNlCisr ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxj dHlwZS5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaWYgKCgnICcgJiAweDBGRikgPT0gMHgw MjApCisrIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQorKyMg ZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkK KysjZWxzZQorKyMgZGVmaW5lIElTTE9XRVIoYykgXAorKwkJICAgKCgnYScgPD0gKGMpICYmIChj KSA8PSAnaScpIFwKKysJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAorKwkJ ICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKKysjIGRlZmluZSBUT1VQUEVSKGMp IChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQorKyNlbmRpZgorKworKyNkZWZpbmUg WE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCisraW50CisrbWFpbiAo KQorK3sKKysgIGludCBpOworKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQorKyAgICBpZiAo WE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCisrCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQ RVIgKGkpKQorKyAgICAgIHJldHVybiAyOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPwor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKysg IHsgKGNhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKKysgIGFjX3N0 YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyggZXhpdCAkYWNfc3RhdHVzICkKKythY19j dl9oZWFkZXJfc3RkYz1ubworK2ZpCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3Jl ICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorKworKworK2ZpCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0 ZGMiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQorK2lmIHRlc3Qg JGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxf QUNFT0YKKysjZGVmaW5lIFNURENfSEVBREVSUyAxCisrX0FDRU9GCisrCisrZmkKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90 aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGltZS5oIGFuZCBzeXMvdGltZS5oIG1heSBib3RoIGJlIGluY2x1ZGVkLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfdGltZStzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKysjaW5jbHVk ZSA8c3lzL3RpbWUuaD4KKysjaW5jbHVkZSA8dGltZS5oPgorKworK2ludAorK21haW4gKCkKKyt7 CisraWYgKChzdHJ1Y3QgdG0gKikgMCkKKytyZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfaGVhZGVyX3RpbWU9 eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9oZWFkZXJf dGltZT1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVy X3RpbWUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl90aW1lID0geWVzOyB0aGVuCisr CisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxCisrX0FDRU9GCisrCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKytmb3IgYWNfaGVhZGVyIGluIGNtYXRoIFwKKysgIGRlcXVlIFwKKysgIGZzdHJl YW0gXAorKyAgaW9tYW5pcCBcCisrICBpb3N0cmVhbSBcCisrICBzc3RyZWFtIFwKKysgIGxpbWl0 cyBcCisrICBsaXN0IFwKKysgIHNldCBcCisrICB2ZWN0b3IgXAorKyAgbWFwIFwKKysgIHF1ZXVl IFwKKysgIHN0ZGV4Y2VwdCBcCisrICBzdHJpbmcKKytkbworK2FzX2FjX0hlYWRlcj1gJGFzX2Vj aG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKKytpZiB7IGFzX3Zhcj0k YXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFk ZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9 CisraWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0 fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytmaQor K2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRhc19lY2hvICIk YXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrZWxzZQorKyAgIyBJcyB0 aGUgaGVhZGVyIGNvbXBpbGFibGU/CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyAkYWNf aGVhZGVyIHVzYWJpbGl0eS4uLiAiID4mNjsgfQorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQKKysjaW5jbHVkZSA8JGFjX2hl YWRlcj4KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5 PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxl IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfaGVhZGVyX2NvbXBp bGVyPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfaGVhZGVy X2NvbXBpbGVyPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKKyskYXNfZWNobyAiJGFjX2hlYWRlcl9j b21waWxlciIgPiY2OyB9CisrCisrIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gIiA+JjY7IH0KKytjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDwkYWNfaGVh ZGVyPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Igor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Iikg Mj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3Qg LXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICBhY19oZWFkZXJfcHJl cHJvYz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICBhY19oZWFk ZXJfcHJlcHJvYz1ubworK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l eHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXBy b2MiID4mNQorKyRhc19lY2hvICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQorKworKyMgU28/ ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPworK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNf aGVhZGVyX3ByZXByb2M6JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbgorKyAgeWVzOm5vOiAp CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBh Y2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0 aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQorKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGlu ZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIg PiYyO30KKysgICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCisrICAgIDs7CisrICBubzp5ZXM6KiAp CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBw cmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30K KysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAg ICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVy ZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2Nv bmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJl IENvbXBpbGVkXCIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6 ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Cisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9j ZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNz b3IncyByZXN1bHQiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHBy ZWNlZGVuY2UiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGlu IHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KKysg ICAgKCBjYXQgPDxcX0FTQk9YCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCisrIyMgUmVwb3J0IHRoaXMgdG8gbXNvYmN6YWtAdXNlcnMuc291cmNl Zm9yZ2UubmV0ICMjCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMjCisrX0FTQk9YCisrICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAg ICAgLyIgPiYyCisrICAgIDs7CisrZXNhYworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y19oZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0 ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRhY19oZWFkZXJf cHJlcHJvYyIKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQor KwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Cisr CisrZmkKKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNf ZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgor KyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRh Y19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQorKwor KworKworKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKKythY19jb25maWdfZmlsZXM9IiRhY19j b25maWdfZmlsZXMgTWFrZWZpbGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMgc29jaS9N YWtlZmlsZSBzb2NpL2NvcmUvTWFrZWZpbGUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUgc29jaS9i YWNrZW5kcy9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIHNvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUg c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSBtYW4vTWFrZWZp bGUgZG9jL01ha2VmaWxlIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSBidWlsZC9NYWtlZmlsZSBidWls ZC91bml4L01ha2VmaWxlIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSBidWlsZC9tc3ZjODAvZGxsL01h a2VmaWxlIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiCisrCisrCisrY2F0ID5jb25mY2FjaGUg PDxcX0FDRU9GCisrIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhl IHJlc3VsdHMgb2YgY29uZmlndXJlCisrIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhl eSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCisrIyBzY3JpcHRzIGFuZCBjb25maWd1 cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KKysjIEl0IGlz IG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91 IGRvbid0CisrIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCisrIwor KyMgY29uZmlnLnN0YXR1cyBvbmx5IHBheXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlm IHlvdSBnaXZlIGl0CisrIyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUu CisrIworKyMgYGFjX2N2X2Vudl9mb28nIHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJl IG92ZXJyaWRkZW4gd2hlbgorKyMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFj X2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKKysjIGZvbGxvd2luZyB2YWx1ZXMuCisrCisr X0FDRU9GCisrCisrIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNo YW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKKysjIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91 bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgorKyMgU28sIHdlIGtp bGwgdmFyaWFibGVzIGNvbnRhaW5pbmcgbmV3bGluZXMuCisrIyBVbHRyaXggc2ggc2V0IHdyaXRl cyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCisrIyBhbmQgc2V0 cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUg dmFycy4KKysoCisrICBmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdzL15cKFth LXpBLVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ2A7IGRvCisrICAgIGV2YWwgYWNfdmFsPVwk JGFjX3ZhcgorKyAgICBjYXNlICRhY192YWwgaW4gIygKKysgICAgKiR7YXNfbmx9KikKKysgICAg ICBjYXNlICRhY192YXIgaW4gIygKKysgICAgICAqX2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGlu ZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3Zh ciBjb250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2Ug JGFjX3ZhciBpbiAjKAorKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKKysgICAgICBCQVNI X0FSR1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAorKyAgICAgICopICRhc191 bnNldCAkYWNfdmFyIDs7CisrICAgICAgZXNhYyA7OworKyAgICBlc2FjCisrICBkb25lCisrCisr ICAoc2V0KSAyPiYxIHwKKysgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0KSAyPiYx YCBpbiAjKAorKyAgICAqJHthc19ubH1hY19zcGFjZT1cICopCisrICAgICAgIyBgc2V0JyBkb2Vz IG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQorKyAgICAg ICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRv IFwpLgorKyAgICAgIHNlZCAtbiBcCisrCSJzLycvJ1xcXFwnJy9nOworKwkgIHMvXlxcKFtfJGFz X2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIK KysgICAgICA7OyAjKAorKyAgICAqKQorKyAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBh cyByZXF1aXJlZCBieSBQT1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCisrICAgICAgc2VkIC1u ICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAgICA7Owor KyAgICBlc2FjIHwKKysgICAgc29ydAorKykgfAorKyAgc2VkICcKKysgICAgIC9eYWNfY3ZfZW52 Xy9iIGVuZAorKyAgICAgdCBjbGVhcgorKyAgICAgOmNsZWFyCisrICAgICBzL15cKFtePV0qXCk9 XCguKlt7fV0uKlwpJC90ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCisrICAgICB0IGVuZAor KyAgICAgcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCisrICAgICA6ZW5kJyA+PmNv bmZjYWNoZQorK2lmIGRpZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIDo7IGVsc2UKKysgIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAgICB0 ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJgorKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogdXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICAgIGNhdCBj b25mY2FjaGUgPiRjYWNoZV9maWxlCisrICBlbHNlCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2Zp bGUiID4mNjt9CisrICBmaQorK2ZpCisrcm0gLWYgY29uZmNhY2hlCisrCisrdGVzdCAieCRwcmVm aXgiID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAorKyMgTGV0IG1ha2UgZXhw YW5kIGV4ZWNfcHJlZml4LgorK3Rlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19w cmVmaXg9JyR7cHJlZml4fScKKysKKytERUZTPS1ESEFWRV9DT05GSUdfSAorKworK2FjX2xpYm9i anM9CisrYWNfbHRsaWJvYmpzPQorK2ZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngk YWNfaSIgPSB4OiAmJiBjb250aW51ZQorKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5k ICRVIGlmIGFscmVhZHkgaW5zdGFsbGVkLgorKyAgYWNfc2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5v JC8vO3MvXC5vYmokLy8nCisrICBhY19pPWAkYXNfZWNobyAiJGFjX2kiIHwgc2VkICIkYWNfc2Ny aXB0ImAKKysgICMgMi4gUHJlcGVuZCBMSUJPQkpESVIuICBXaGVuIHVzZWQgd2l0aCBhdXRvbWFr ZT49MS4xMCBMSUJPQkpESVIKKysgICMgICAgd2lsbCBiZSBzZXQgdG8gdGhlIGRpcmVjdG9yeSB3 aGVyZSBMSUJPQkpTIG9iamVjdHMgYXJlIGJ1aWx0LgorKyAgYWNfbGlib2Jqcz0iJGFjX2xpYm9i anMgXCR7TElCT0JKRElSfSRhY19pXCRVLiRhY19vYmpleHQiCisrICBhY19sdGxpYm9ianM9IiRh Y19sdGxpYm9ianMgXCR7TElCT0JKRElSfSRhY19pIickVS5sbycKKytkb25lCisrTElCT0JKUz0k YWNfbGlib2JqcworKworK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCisrCisrCisraWYgdGVzdCAt eiAiJHtIQVZFX0NQUFVOSVRfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9DUFBVTklUX0ZBTFNF fSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRp b25hbCBcIkhBVkVfQ1BQVU5JVFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5l dmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQor K2ZpCisraWYgdGVzdCAteiAiJHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtBTURFUF9GQUxT RX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0 aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiQU1ERVBcIiB3YXMgbmV2ZXIgZGVmaW5lZC4K KytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9u YWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0 IC16ICIke2FtX19mYXN0ZGVwQ1hYX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hY X0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxs eSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENY WFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19UUlVFfSIgJiYgdGVz dCAteiAiJHthbV9fZmFzdGRlcENDX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRp b25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke2FtX19mYXN0 ZGVwQ1hYX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX0ZBTFNFfSI7IHRoZW4K KysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFt X19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBuZXZlciBk ZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBj b25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQor K2lmIHRlc3QgLXogIiR7U09DSV9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtT T0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfSEVBREVSU19CVVJJRURcIiB3YXMg bmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGlu dm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25k aXRpb25hbCBcIlNPQ0lfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIk e1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9NWVNR TF9IRUFERVJTX0JVUklFRF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXCIg d2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25s eSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y29uZGl0aW9uYWwgXCJTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYg dGVzdCAteiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3Qg LXogIiR7U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9 IiAmJiB0ZXN0IC16ICIke0hBVkVfTVlTUUxfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBu ZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRp dGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9PUkFD TEVfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfRkFMU0V9IjsgdGhlbgorKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFD TEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb25kaXRpb25hbCBcIkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAi JHtIQVZFX1BPU1RHUkVTUUxfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FMX0ZB TFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25k aXRpb25hbCBcIkhBVkVfUE9TVEdSRVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FM XCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAi JHtJTkZPX0RPQ19GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1Vz dWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5 LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSU5GT19ET0Nc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke0hUTUxfRE9DX1RSVUV9IiAmJiB0ZXN0IC16ICIk e0hUTUxfRE9DX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb25kaXRpb25hbCBcIkhUTUxfRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIVE1MX0RPQ1wi IHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7UlVOX1RFU1RTX1RSVUV9IiAmJiB0ZXN0IC16ICIk e1JVTl9URVNUU19GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY29uZGl0aW9uYWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytV c3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxs eS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNU U1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKytmaQorKworKzogJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30KKyth Y193cml0ZV9mYWlsPTAKKythY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworK2Fj X2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY2O30KKytjYXQgPiRDT05GSUdf U1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMhICRTSEVMTAorKyMgR2VuZXJh dGVkIGJ5ICRhc19tZS4KKysjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQg Y29uZmlndXJhdGlvbi4KKysjIENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUs IHVzZWZ1bCBmb3IgZGVidWdnaW5nCisrIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYg aXQgZXhpc3RzLgorKworK2RlYnVnPWZhbHNlCisrYWNfY3NfcmVjaGVjaz1mYWxzZQorK2FjX2Nz X3NpbGVudD1mYWxzZQorK1NIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrX0FDRU9GCisr CisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIwor KyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKworKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0 aWJsZQorK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytpZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysgIGVtdWxhdGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25z IG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNv bnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcg JyR7MSsiJEAifSc9JyIkQCInCisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNh c2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7 CisrZXNhYworKworK2ZpCisrCisrCisrCisrCisrIyBQQVRIIG5lZWRzIENSCisrIyBBdm9pZCBk ZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgorK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6JworK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNU VVZXWFlaJworK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworK2Fz X2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKKythc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19j cl9kaWdpdHMKKysKKythc19ubD0nCisrJworK2V4cG9ydCBhc19ubAorKyMgUHJpbnRpbmcgYSBs b25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCisrYXNfZWNobz0n XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKythc19lY2hv PSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKythc19lY2hvPSRhc19l Y2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworK2lmICh0ZXN0ICJY YHByaW50ZiAlcyAkYXNfZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCisr ICBhc19lY2hvPSdwcmludGYgJXNcbicKKysgIGFzX2VjaG9fbj0ncHJpbnRmICVzJworK2Vsc2UK KysgIGlmIHRlc3QgIlhgKC91c3IvdWNiL2VjaG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxs YCIgPSAiWC1uICRhc19lY2hvIjsgdGhlbgorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91 Y2IvZWNobyAtbiAiJDEkYXNfbmwiJworKyAgICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4n CisrICBlbHNlCisrICAgIGFzX2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxc KSInCisrICAgIGFzX2VjaG9fbl9ib2R5PSdldmFsCisrICAgICAgYXJnPSQxOworKyAgICAgIGNh c2UgJGFyZyBpbgorKyAgICAgICoiJGFzX25sIiopCisrCWV4cHIgIlgkYXJnIiA6ICJYXFwoLipc XCkkYXNfbmwiOworKwlhcmc9YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7Owor KyAgICAgIGVzYWM7CisrICAgICAgZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSIgfCB0ciAtZCAi JGFzX25sIgorKyAgICAnCisrICAgIGV4cG9ydCBhc19lY2hvX25fYm9keQorKyAgICBhc19lY2hv X249J3NoIC1jICRhc19lY2hvX25fYm9keSBhc19lY2hvJworKyAgZmkKKysgIGV4cG9ydCBhc19l Y2hvX2JvZHkKKysgIGFzX2VjaG89J3NoIC1jICRhc19lY2hvX2JvZHkgYXNfZWNobycKKytmaQor KworKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgorK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFU T1Irc2V0fSIgIT0gc2V0OyB0aGVuCisrICBQQVRIX1NFUEFSQVRPUj06CisrICAoUEFUSD0nL2Jp bjsvYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSAmJiB7CisrICAg IChQQVRIPScvYmluOi9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYx IHx8CisrICAgICAgUEFUSF9TRVBBUkFUT1I9JzsnCisrICB9CisrZmkKKysKKysjIFN1cHBvcnQg dW5zZXQgd2hlbiBwb3NzaWJsZS4KKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0 KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgYXNf dW5zZXQ9ZmFsc2UKKytmaQorKworKworKyMgSUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5k IG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKKysjIHRoZXJl IHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KKysj IChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBk aXNhYmxlIHdvcmQKKysjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4p CisrSUZTPSIgIiIJJGFzX25sIgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUg cGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisrY2FzZSAkMCBpbgor KyAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OworKyAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19z YXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIHRlc3QgLXIgIiRh c19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKysgICAgIDs7CisrZXNhYworKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNl bHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKysjIGluIHdo aWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKytpZiB0ZXN0ICJ4 JGFzX215c2VsZiIgPSB4OyB0aGVuCisrICBhc19teXNlbGY9JDAKKytmaQorK2lmIHRlc3QgISAt ZiAiJGFzX215c2VsZiI7IHRoZW4KKysgICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fu bm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCisr ICB7IChleGl0IDEpOyBleGl0IDE7IH0KKytmaQorKworKyMgV29yayBhcm91bmQgYnVncyBpbiBw cmUtMy4wIFVXSU4ga3NoLgorK2ZvciBhc192YXIgaW4gRU5WIE1BSUwgTUFJTFBBVEgKKytkbyAo JGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3Zhcgor K2RvbmUKKytQUzE9JyQgJworK1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBudWlzYW5j ZXMuCisrTENfQUxMPUMKKytleHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5H VUFHRQorKworKyMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgorK2lmIGV4cHIgYSA6ICdcKGFc KScgPi9kZXYvbnVsbCAyPiYxICYmCisrICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5c KSdgIiA9IFgwMDE7IHRoZW4KKysgIGFzX2V4cHI9ZXhwcgorK2Vsc2UKKysgIGFzX2V4cHI9ZmFs c2UKKytmaQorKworK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAi WGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KKysgIGFzX2Jhc2VuYW1lPWJhc2Vu YW1lCisrZWxzZQorKyAgYXNfYmFzZW5hbWU9ZmFsc2UKKytmaQorKworKworKyMgTmFtZSBvZiB0 aGUgZXhlY3V0YWJsZS4KKythc19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKKyskYXNfZXhw ciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoLy9c KSQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19l Y2hvIFgvIiQwIiB8CisrICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveworKwkgICAg cy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwvXChcL1wvXCkkL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysKKysjIENEUEFUSC4KKyskYXNfdW5zZXQg Q0RQQVRICisrCisrCisrCisrICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9fMj0k TElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKysg IHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgewor KworKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0 IHdpdGggJExJTkVOTworKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVy LiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVy IGVhY2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQnCisrICAjIGRvZXMgdGhl IHJlYWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAorKyAg IyBsaW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQg YXBwZW5kcworKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRM SU5FTk8gaXMgbm90IGEgc3BlY2lhbAorKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgorKyAgIyAoUmFq YSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhl CisrICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmku ICBCbGFtZSBMZWUKKysgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4 LiAgOi0pCisrICBzZWQgLW4gJworKyAgICBwCisrICAgIC9bJF1MSU5FTk8vPQorKyAgJyA8JGFz X215c2VsZiB8CisrICAgIHNlZCAnCisrICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KKysgICAgICB0 IGxpbmVubworKyAgICAgIGIKKysgICAgICA6bGluZW5vCisrICAgICAgTgorKyAgICAgIDpsb29w CisrICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwx XDIvCisrICAgICAgdCBsb29wCisrICAgICAgcy8tXG4uKi8vCisrICAgICcgPiRhc19tZS5saW5l bm8gJiYKKysgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQ T1NJWCBzaGVsbCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrICAjIERv bid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBw cm9ibGVtcworKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJl IHdlIG1pZ2h0IGZpbmQgdGhlCisrICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlz IGVzcGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8kYXNfbWUubGluZW5vIgor KyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisrICBleGl0Cisr fQorKworKworK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0g WC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQor KyAgYXNfZGlybmFtZT1mYWxzZQorK2ZpCisrCisrRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KKytj YXNlIGBlY2hvIC1uIHhgIGluCisrLW4qKQorKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KKysgICpj KikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgorKyAgKikg ICBFQ0hPX0M9J1xjJzs7CisrICBlc2FjOzsKKysqKQorKyAgRUNIT19OPSctbic7OworK2VzYWMK KytpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhw ciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytl bHNlCisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBj b25mJCQuZmlsZQorK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgorKyAgcm0gLWYgY29uZiQk LmRpci9jb25mJCQuZmlsZQorK2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5kaXIKKysgIG1rZGlyIGNv bmYkJC5kaXIgMj4vZGV2L251bGwKKytmaQorK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2 L251bGw7IHRoZW4KKysgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsg dGhlbgorKyAgICBhc19sbl9zPSdsbiAtcycKKysgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28g Z290Y2hhczoKKysgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBs biBmaWxlIGRpcicgZmFpbC4KKysgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtz OyBgbG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCisrICAgICMgSW4gYm90aCBj YXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCisrICAgIGxuIC1zIGNvbmYkJC5m aWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKKysg ICAgICBhc19sbl9zPSdjcCAtcCcKKysgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rl di9udWxsOyB0aGVuCisrICAgIGFzX2xuX3M9bG4KKysgIGVsc2UKKysgICAgYXNfbG5fcz0nY3Ag LXAnCisrICBmaQorK2Vsc2UKKysgIGFzX2xuX3M9J2NwIC1wJworK2ZpCisrcm0gLWYgY29uZiQk IGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQorK3JtZGlyIGNv bmYkJC5kaXIgMj4vZGV2L251bGwKKysKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVu CisrICBhc19ta2Rpcl9wPToKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAor KyAgYXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4m MTsgdGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4v ZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAg IGFzX2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMg J1wnJworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysg ICAgICBlbHNlCisrCWNhc2UgJDEgaW4KKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNh c2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCisrCT8/P1tz eF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKKysgICAgJ1wnJyBzaAorKyAgJworK2ZpCisrYXNfZXhl Y3V0YWJsZV9wPSRhc190ZXN0X3gKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmlu ZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCisrYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2Ny X2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysj IFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFt ZS4KKythc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcn IgorKworKworK2V4ZWMgNj4mMQorKworKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAg JFswXSBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5kIHRvCisrIyByZXBvcnQgYWN0dWFsIGlucHV0 IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCisrIyB2YWx1ZXMg YWZ0ZXIgb3B0aW9ucyBoYW5kbGluZy4KKythY19sb2c9IgorK1RoaXMgZmlsZSB3YXMgZXh0ZW5k ZWQgYnkgU09DSSAkYXNfbWUgMy4wLjAsIHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0 b2NvbmYgMi42My4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcworKworKyAgQ09ORklHX0ZJ TEVTICAgID0gJENPTkZJR19GSUxFUworKyAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFE RVJTCisrICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCisrICBDT05GSUdfQ09NTUFO RFMgPSAkQ09ORklHX0NPTU1BTkRTCisrICAkICQwICRACisrCisrb24gYChob3N0bmFtZSB8fCB1 bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisrIgorKworK19BQ0VPRgorKworK2Nhc2Ug JGFjX2NvbmZpZ19maWxlcyBpbiAqIgorKyIqKSBzZXQgeCAkYWNfY29uZmlnX2ZpbGVzOyBzaGlm dDsgYWNfY29uZmlnX2ZpbGVzPSQqOzsKKytlc2FjCisrCisrY2FzZSAkYWNfY29uZmlnX2hlYWRl cnMgaW4gKiIKKysiKikgc2V0IHggJGFjX2NvbmZpZ19oZWFkZXJzOyBzaGlmdDsgYWNfY29uZmln X2hlYWRlcnM9JCo7OworK2VzYWMKKysKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKKysjIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFk ZSBmb3IuCisrY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIgorK2NvbmZpZ19oZWFkZXJz PSIkYWNfY29uZmlnX2hlYWRlcnMiCisrY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1h bmRzIgorKworK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKKythY19jc191c2FnZT0iXAorK1xgJGFzX21lJyBpbnN0YW50aWF0ZXMg ZmlsZXMgZnJvbSB0ZW1wbGF0ZXMgYWNjb3JkaW5nIHRvIHRoZQorK2N1cnJlbnQgY29uZmlndXJh dGlvbi4KKysKKytVc2FnZTogJDAgW09QVElPTl0uLi4gW0ZJTEVdLi4uCisrCisrICAtaCwgLS1o ZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisrICAtViwgLS12ZXJzaW9uICAg IHByaW50IHZlcnNpb24gbnVtYmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4 aXQKKysgIC1xLCAtLXF1aWV0LCAtLXNpbGVudAorKyAgICAgICAgICAgICAgICAgICBkbyBub3Qg cHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKKysgIC1kLCAtLWRlYnVnICAgICAgZG9uJ3QgcmVtb3Zl IHRlbXBvcmFyeSBmaWxlcworKyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJl Y29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucworKyAgICAgIC0tZmlsZT1GSUxFWzpU RU1QTEFURV0KKysgICAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRp b24gZmlsZSBGSUxFCisrICAgICAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCisrICAgICAgICAg ICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCisrCisr Q29uZmlndXJhdGlvbiBmaWxlczoKKyskY29uZmlnX2ZpbGVzCisrCisrQ29uZmlndXJhdGlvbiBo ZWFkZXJzOgorKyRjb25maWdfaGVhZGVycworKworK0NvbmZpZ3VyYXRpb24gY29tbWFuZHM6Cisr JGNvbmZpZ19jb21tYW5kcworKworK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9y Zz4uIgorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dy aXRlX2ZhaWw9MQorK2FjX2NzX3ZlcnNpb249IlxcCisrU09DSSBjb25maWcuc3RhdHVzIDMuMC4w CisrY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLAorKyAg d2l0aCBvcHRpb25zIFxcImAkYXNfZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9e IC8vOyBzL1tcXCIiXGBcJF0vXFxcXCYvZydgXFwiCisrCisrQ29weXJpZ2h0IChDKSAyMDA4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorK1RoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCisr CisrYWNfcHdkPSckYWNfcHdkJworK3NyY2Rpcj0nJHNyY2RpcicKKytJTlNUQUxMPSckSU5TVEFM TCcKKytNS0RJUl9QPSckTUtESVJfUCcKKytBV0s9JyRBV0snCisrdGVzdCAtbiAiXCRBV0siIHx8 IEFXSz1hd2sKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwg YWNfd3JpdGVfZmFpbD0xCisrIyBUaGUgZGVmYXVsdCBsaXN0cyBhcHBseSBpZiB0aGUgdXNlciBk b2VzIG5vdCBzcGVjaWZ5IGFueSBmaWxlLgorK2FjX25lZWRfZGVmYXVsdHM9OgorK3doaWxlIHRl c3QgJCMgIT0gMAorK2RvCisrICBjYXNlICQxIGluCisrICAtLSo9KikKKysgICAgYWNfb3B0aW9u PWBleHByICJYJDEiIDogJ1hcKFtePV0qXCk9J2AKKysgICAgYWNfb3B0YXJnPWBleHByICJYJDEi IDogJ1hbXj1dKj1cKC4qXCknYAorKyAgICBhY19zaGlmdD06CisrICAgIDs7CisrICAqKQorKyAg ICBhY19vcHRpb249JDEKKysgICAgYWNfb3B0YXJnPSQyCisrICAgIGFjX3NoaWZ0PXNoaWZ0Cisr ICAgIDs7CisrICBlc2FjCisrCisrICBjYXNlICRhY19vcHRpb24gaW4KKysgICMgSGFuZGxpbmcg b2YgdGhlIG9wdGlvbnMuCisrICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1y ZWNoZSB8IC0tcmVjaCB8IC0tcmVjIHwgLS1yZSB8IC0tcikKKysgICAgYWNfY3NfcmVjaGVjaz06 IDs7CisrICAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8 IC0tdmUgfCAtLXYgfCAtViApCisrICAgICRhc19lY2hvICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQg OzsKKysgIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCApCisrICAg IGRlYnVnPTogOzsKKysgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisrICAgICRhY19z aGlmdAorKyAgICBjYXNlICRhY19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNf ZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNh YworKyAgICBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgJyRhY19vcHRhcmcnIgorKyAgICBh Y19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8 IC0taGVhICkKKysgICAgJGFjX3NoaWZ0CisrICAgIGNhc2UgJGFjX29wdGFyZyBpbgorKyAgICAq XCcqKSBhY19vcHRhcmc9YCRhc19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxc XCcnL2ciYCA7OworKyAgICBlc2FjCisrICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURF UlMgJyRhY19vcHRhcmcnIgorKyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGUg fCAtLWgpCisrICAgICMgQ29uZmxpY3QgYmV0d2VlbiAtLWhlbHAgYW5kIC0taGVhZGVyCisrICAg IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCisrVHJ5IFxg JDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7CisrICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKKysgICAgJGFzX2VjaG8gIiRh Y19jc191c2FnZSI7IGV4aXQgOzsKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8 IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4g fCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCisrICAgIGFjX2NzX3NpbGVudD06IDs7Cisr CisrICAjIFRoaXMgaXMgYW4gZXJyb3IuCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJv cjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKKytUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrCisrICAq KSBhY19jb25maWdfdGFyZ2V0cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIgorKyAgICAgYWNfbmVl ZF9kZWZhdWx0cz1mYWxzZSA7OworKworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisrYWNf Y29uZmlndXJlX2V4dHJhX2FyZ3M9CisrCisraWYgJGFjX2NzX3NpbGVudDsgdGhlbgorKyAgZXhl YyA2Pi9kZXYvbnVsbAorKyAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVf ZXh0cmFfYXJncyAtLXNpbGVudCIKKytmaQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2lmIFwkYWNfY3NfcmVjaGVjazsgdGhl bgorKyAgc2V0IFggJyRTSEVMTCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1 cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgorKyAgc2hpZnQKKysgIFwk YXNfZWNobyAicnVubmluZyBDT05GSUdfU0hFTEw9JFNIRUxMIFwkKiIgPiY2CisrICBDT05GSUdf U0hFTEw9JyRTSEVMTCcKKysgIGV4cG9ydCBDT05GSUdfU0hFTEwKKysgIGV4ZWMgIlwkQCIKKytm aQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKKytleGVjIDU+PmNvbmZpZy5sb2cKKyt7CisrICBlY2hvCisrICBzZWQgJ2g7cy8u Ly0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAorKyMjIFJ1bm5p bmcgJGFzX21lLiAjIworK19BU0JPWAorKyAgJGFzX2VjaG8gIiRhY19sb2ciCisrfSA+JjUKKysK KytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKysjCisrIyBJTklULUNPTU1BTkRTCisrIworK0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBh Y19hdXhfZGlyPSIkYWNfYXV4X2RpciIKKysKKysKKysjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lY IHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYgQ0RQQVRI IGlzIHNldC4KKysodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRI CisrCisrc2VkX3F1b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JworK2RvdWJsZV9xdW90ZV9z dWJzdD0nJGRvdWJsZV9xdW90ZV9zdWJzdCcKKytkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5 X3ZhcmlhYmxlX3N1YnN0JworK2VuYWJsZV9zaGFyZWQ9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVk IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX3N0YXRp Yz0nYCRFQ0hPICJYJGVuYWJsZV9zdGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKyttYWNyb192ZXJzaW9uPSdgJEVDSE8gIlgkbWFjcm9fdmVyc2lvbiIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21hY3JvX3JldmlzaW9uPSdg JEVDSE8gIlgkbWFjcm9fcmV2aXNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytwaWNfbW9kZT0nYCRFQ0hPICJYJHBpY19tb2RlIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Zhc3RfaW5zdGFsbD0nYCRFQ0hPICJY JGVuYWJsZV9mYXN0X2luc3RhbGwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytob3N0X2FsaWFzPSdgJEVDSE8gIlgkaG9zdF9hbGlhcyIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hvc3Q9J2AkRUNITyAiWCRob3N0IiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraG9zdF9vcz0nYCRFQ0hPICJYJGhv c3Rfb3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytidWlsZF9h bGlhcz0nYCRFQ0hPICJYJGJ1aWxkX2FsaWFzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrYnVpbGQ9J2AkRUNITyAiWCRidWlsZCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2J1aWxkX29zPSdgJEVDSE8gIlgkYnVpbGRfb3MiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytTRUQ9J2AkRUNITyAiWCRT RUQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytYc2VkPSdgJEVD SE8gIlgkWHNlZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0dS RVA9J2AkRUNITyAiWCRHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrRUdSRVA9J2AkRUNITyAiWCRFR1JFUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK0ZHUkVQPSdgJEVDSE8gIlgkRkdSRVAiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytMRD0nYCRFQ0hPICJYJExEIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTk09J2AkRUNITyAiWCROTSIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0xOX1M9J2AkRUNITyAiWCRMTl9TIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWF4X2NtZF9sZW49J2Ak RUNITyAiWCRtYXhfY21kX2xlbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2FjX29iamV4dD0nYCRFQ0hPICJYJGFjX29iamV4dCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4ZWV4dD0nYCRFQ0hPICJYJGV4ZWV4dCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Vuc2V0PSdgJEVDSE8gIlgk bHRfdW5zZXQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9T UDJOTD0nYCRFQ0hPICJYJGx0X1NQMk5MIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrbHRfTkwyU1A9J2AkRUNITyAiWCRsdF9OTDJTUCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3JlbG9hZF9mbGFnPSdgJEVDSE8gIlgkcmVsb2Fk X2ZsYWciIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytyZWxvYWRf Y21kcz0nYCRFQ0hPICJYJHJlbG9hZF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrT0JKRFVNUD0nYCRFQ0hPICJYJE9CSkRVTVAiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytkZXBsaWJzX2NoZWNrX21ldGhvZD0nYCRFQ0hP ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZmlsZV9tYWdpY19jbWQ9J2AkRUNITyAiWCRmaWxlX21hZ2ljX2NtZCIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0FSPSdgJEVDSE8gIlgkQVIi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytBUl9GTEFHUz0nYCRF Q0hPICJYJEFSX0ZMQUdTIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrU1RSSVA9J2AkRUNITyAiWCRTVFJJUCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK1JBTkxJQj0nYCRFQ0hPICJYJFJBTkxJQiIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgk b2xkX3Bvc3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkb2xkX3Bvc3R1bmluc3Rh bGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9h cmNoaXZlX2NtZHM9J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9jbWRzIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrQ0M9J2AkRUNITyAiWCRDQyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0NGTEFHUz0nYCRFQ0hPICJYJENGTEFHUyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyPSdgJEVD SE8gIlgkY29tcGlsZXIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytHQ0M9J2AkRUNITyAiWCRHQ0MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSdgJEVDSE8gIlgkbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdgJEVDSE8gIlgkbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0n YCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0nYCRFQ0hPICJYJGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvYmpkaXI9J2AkRUNITyAiWCRvYmpkaXIiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytTSEVMTD0nYCRFQ0hPICJY JFNIRUxMIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrRUNITz0n YCRFQ0hPICJYJEVDSE8iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytNQUdJQ19DTUQ9J2AkRUNITyAiWCRNQUdJQ19DTUQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nYCRF Q0hPICJYJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl93bD0nYCRFQ0hPICJY JGx0X3Byb2dfY29tcGlsZXJfd2wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3BpYz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJf cGljIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3Byb2dfY29tcGlsZXJf Y19vPSdgJEVDSE8gIlgkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytuZWVkX2xvY2tzPSdgJEVDSE8gIlgkbmVlZF9sb2Nr cyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0RTWU1VVElMPSdg JEVDSE8gIlgkRFNZTVVUSUwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytOTUVESVQ9J2AkRUNITyAiWCROTUVESVQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytMSVBPPSdgJEVDSE8gIlgkTElQTyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK09UT09MPSdgJEVDSE8gIlgkT1RPT0wiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytPVE9PTDY0PSdgJEVDSE8gIlgkT1RP T0w2NCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpYmV4dD0n YCRFQ0hPICJYJGxpYmV4dCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK3NocmV4dF9jbWRzPSdgJEVDSE8gIlgkc2hyZXh0X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleHRyYWN0X2V4cHN5bXNfY21kcz0nYCRFQ0hPICJY JGV4dHJhY3RfZXhwc3ltc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrYXJjaGl2ZV9jbWRzX25lZWRfbGM9J2AkRUNITyAiWCRhcmNoaXZlX2NtZHNfbmVl ZF9sYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9z aGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSdgJEVDSE8gIlgkZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9J2AkRUNITyAiWCR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX25lZWRzX29i amVjdD0nYCRFQ0hPICJYJGNvbXBpbGVyX25lZWRzX29iamVjdCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J2AkRUNI TyAiWCRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9J2AkRUNITyAi WCRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfY21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfY21kcyIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfZXhwc3lt X2NtZHM9J2AkRUNITyAiWCRhcmNoaXZlX2V4cHN5bV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbW9kdWxlX2NtZHM9J2AkRUNITyAiWCRtb2R1bGVfY21k cyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9leHBz eW1fY21kcz0nYCRFQ0hPICJYJG1vZHVsZV9leHBzeW1fY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3dpdGhfZ251X2xkPSdgJEVDSE8gIlgkd2l0aF9nbnVf bGQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythbGxvd191bmRl ZmluZWRfZmxhZz0nYCRFQ0hPICJYJGFsbG93X3VuZGVmaW5lZF9mbGFnIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbm9fdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAi WCRub191bmRlZmluZWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9J2AkRUNITyAiWCRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyto YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2Rl X2RpcmVjdD0nYCRFQ0hPICJYJGhhcmRjb2RlX2RpcmVjdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0nYCRFQ0hPICJY JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2hhcmRjb2RlX21pbnVzX0w9J2AkRUNITyAiWCRoYXJkY29kZV9taW51c19M IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj0nYCRFQ0hPICJYJGhhcmRjb2RlX3NobGlicGF0aF92YXIiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9hdXRvbWF0aWM9J2AkRUNI TyAiWCRoYXJkY29kZV9hdXRvbWF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytpbmhlcml0X3JwYXRoPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpbmtfYWxsX2RlcGxpYnM9J2Ak RUNITyAiWCRsaW5rX2FsbF9kZXBsaWJzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrZml4X3NyY2ZpbGVfcGF0aD0nYCRFQ0hPICJYJGZpeF9zcmNmaWxlX3BhdGgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythbHdheXNfZXhwb3J0 X3N5bWJvbHM9J2AkRUNITyAiWCRhbHdheXNfZXhwb3J0X3N5bWJvbHMiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleHBvcnRfc3ltYm9sc19jbWRzPSdgJEVDSE8g IlgkZXhwb3J0X3N5bWJvbHNfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2V4Y2x1ZGVfZXhwc3ltcz0nYCRFQ0hPICJYJGV4Y2x1ZGVfZXhwc3ltcyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2luY2x1ZGVfZXhwc3ltcz0n YCRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK3ByZWxpbmtfY21kcz0nYCRFQ0hPICJYJHByZWxpbmtfY21kcyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpbGVfbGlzdF9zcGVjPSdgJEVD SE8gIlgkZmlsZV9saXN0X3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0nYCRFQ0hPICJYJHZhcmlhYmxlc19z YXZlZF9mb3JfcmVsaW5rIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrbmVlZF9saWJfcHJlZml4PSdgJEVDSE8gIlgkbmVlZF9saWJfcHJlZml4IiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbmVlZF92ZXJzaW9uPSdgJEVDSE8gIlgk bmVlZF92ZXJzaW9uIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr dmVyc2lvbl90eXBlPSdgJEVDSE8gIlgkdmVyc2lvbl90eXBlIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcnVucGF0aF92YXI9J2AkRUNITyAiWCRydW5wYXRoX3Zh ciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3NobGlicGF0aF92 YXI9J2AkRUNITyAiWCRzaGxpYnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSdgJEVDSE8gIlgkc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrbGlibmFtZV9zcGVjPSdgJEVDSE8gIlgkbGlibmFtZV9zcGVjIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbGlicmFyeV9uYW1lc19zcGVjPSdg JEVDSE8gIlgkbGlicmFyeV9uYW1lc19zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrc29uYW1lX3NwZWM9J2AkRUNITyAiWCRzb25hbWVfc3BlYyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3RpbnN0YWxsX2NtZHM9J2Ak RUNITyAiWCRwb3N0aW5zdGFsbF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrcG9zdHVuaW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkcG9zdHVuaW5zdGFsbF9j bWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZmluaXNoX2Nt ZHM9J2AkRUNITyAiWCRmaW5pc2hfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2ZpbmlzaF9ldmFsPSdgJEVDSE8gIlgkZmluaXNoX2V2YWwiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9pbnRvX2xpYnM9J2Ak RUNITyAiWCRoYXJkY29kZV9pbnRvX2xpYnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiWCRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nYCRFQ0hPICJYJHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr aGFyZGNvZGVfYWN0aW9uPSdgJEVDSE8gIlgkaGFyZGNvZGVfYWN0aW9uIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbj0nYCRFQ0hPICJYJGVu YWJsZV9kbG9wZW4iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytl bmFibGVfZGxvcGVuX3NlbGY9J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuX3NlbGYiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytlbmFibGVfZGxvcGVuX3NlbGZfc3Rh dGljPSdgJEVDSE8gIlgkZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9zdHJpcGxpYj0nYCRFQ0hPICJYJG9sZF9z dHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3N0cmlw bGliPSdgJEVDSE8gIlgkc3RyaXBsaWIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9J2AkRUNITyAiWCRjb21waWxlcl9s aWJfc2VhcmNoX2RpcnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytwcmVkZXBfb2JqZWN0cz0nYCRFQ0hPICJYJHByZWRlcF9vYmplY3RzIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcG9zdGRlcF9vYmplY3RzPSdgJEVDSE8gIlgk cG9zdGRlcF9vYmplY3RzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn CisrcHJlZGVwcz0nYCRFQ0hPICJYJHByZWRlcHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytwb3N0ZGVwcz0nYCRFQ0hPICJYJHBvc3RkZXBzIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo PSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTERfQ1hYPSdgJEVDSE8gIlgkTERfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVfY21kc19DWFg9 J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX0NYWCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0dDQ19DWFg9J2AkRUNI TyAiWCRHQ0NfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19j b21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl93bF9DWFg9J2AkRUNITyAiWCRsdF9wcm9n X2NvbXBpbGVyX3dsX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X2N2X3By b2dfY29tcGlsZXJfY19vX0NYWD0nYCRFQ0hPICJYJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfY21k c19uZWVkX2xjX0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXNfQ1hYPSdgJEVDSE8gIlgkZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytl eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIlgkZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3do b2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICJYJHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBp bGVyX25lZWRzX29iamVjdF9DWFg9J2AkRUNITyAiWCRjb21waWxlcl9uZWVkc19vYmplY3RfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kc19DWFg9J2AkRUNITyAiWCRvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZl X2Zyb21fZXhwc3ltc19jbWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3lt c19jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2Fy Y2hpdmVfY21kc19DWFg9J2AkRUNITyAiWCRhcmNoaXZlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2Ak RUNITyAiWCRhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9jbWRzX0NYWD0nYCRFQ0hPICJYJG1vZHVsZV9jbWRz X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9l eHBzeW1fY21kc19DWFg9J2AkRUNITyAiWCRtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrd2l0aF9nbnVfbGRfQ1hYPSdgJEVD SE8gIlgkd2l0aF9nbnVfbGRfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSdgJEVDSE8gIlgkYWxsb3dfdW5kZWZp bmVkX2ZsYWdfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr bm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPSdgJEVDSE8gIlgkbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfbGRfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19s ZF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNv ZGVfZGlyZWN0X0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2RpcmVjdF9DWFgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVf Q1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX21pbnVzX0xfQ1hYPSdgJEVD SE8gIlgkaGFyZGNvZGVfbWludXNfTF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD0nYCRFQ0hPICJYJGhhcmRj b2RlX3NobGlicGF0aF92YXJfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisraGFyZGNvZGVfYXV0b21hdGljX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2F1dG9t YXRpY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytpbmhl cml0X3JwYXRoX0NYWD0nYCRFQ0hPICJYJGluaGVyaXRfcnBhdGhfQ1hYIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbGlua19hbGxfZGVwbGlic19DWFg9J2AkRUNI TyAiWCRsaW5rX2FsbF9kZXBsaWJzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2ZpeF9zcmNmaWxlX3BhdGhfQ1hYPSdgJEVDSE8gIlgkZml4X3NyY2ZpbGVf cGF0aF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythbHdh eXNfZXhwb3J0X3N5bWJvbHNfQ1hYPSdgJEVDSE8gIlgkYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4cG9ydF9zeW1i b2xzX2NtZHNfQ1hYPSdgJEVDSE8gIlgkZXhwb3J0X3N5bWJvbHNfY21kc19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleGNsdWRlX2V4cHN5bXNfQ1hYPSdg JEVDSE8gIlgkZXhjbHVkZV9leHBzeW1zX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK2luY2x1ZGVfZXhwc3ltc19DWFg9J2AkRUNITyAiWCRpbmNsdWRlX2V4 cHN5bXNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJl bGlua19jbWRzX0NYWD0nYCRFQ0hPICJYJHByZWxpbmtfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaWxlX2xpc3Rfc3BlY19DWFg9J2AkRUNITyAi WCRmaWxlX2xpc3Rfc3BlY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytoYXJkY29kZV9hY3Rpb25fQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfYWN0aW9uX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xp Yl9zZWFyY2hfZGlyc19DWFg9J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwX29iamVj dHNfQ1hYPSdgJEVDSE8gIlgkcHJlZGVwX29iamVjdHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcG9zdGRlcF9vYmplY3RzX0NYWD0nYCRFQ0hPICJYJHBv c3RkZXBfb2JqZWN0c19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytwcmVkZXBzX0NYWD0nYCRFQ0hPICJYJHByZWRlcHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcG9zdGRlcHNfQ1hYPSdgJEVDSE8gIlgkcG9zdGRl cHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKysKKytMVEND PSckTFRDQycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGlsZXJfREVG QVVMVCcKKysKKysjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgorK2ZvciB2YXIgaW4gU0VEIFwKKytH UkVQIFwKKytFR1JFUCBcCisrRkdSRVAgXAorK0xEIFwKKytOTSBcCisrTE5fUyBcCisrbHRfU1Ay TkwgXAorK2x0X05MMlNQIFwKKytyZWxvYWRfZmxhZyBcCisrT0JKRFVNUCBcCisrZGVwbGlic19j aGVja19tZXRob2QgXAorK2ZpbGVfbWFnaWNfY21kIFwKKytBUiBcCisrQVJfRkxBR1MgXAorK1NU UklQIFwKKytSQU5MSUIgXAorK0NDIFwKKytDRkxBR1MgXAorK2NvbXBpbGVyIFwKKytsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF9waXBlIFwKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVj bCBcCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MgXAorK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXggXAorK1NIRUxM IFwKKytFQ0hPIFwKKytsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyBcCisrbHRfcHJv Z19jb21waWxlcl93bCBcCisrbHRfcHJvZ19jb21waWxlcl9waWMgXAorK2x0X3Byb2dfY29tcGls ZXJfc3RhdGljIFwKKytsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyBcCisrbmVlZF9sb2NrcyBcCisr RFNZTVVUSUwgXAorK05NRURJVCBcCisrTElQTyBcCisrT1RPT0wgXAorK09UT09MNjQgXAorK3No cmV4dF9jbWRzIFwKKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWMgXAorK3dob2xlX2FyY2hpdmVf ZmxhZ19zcGVjIFwKKytjb21waWxlcl9uZWVkc19vYmplY3QgXAorK3dpdGhfZ251X2xkIFwKKyth bGxvd191bmRlZmluZWRfZmxhZyBcCisrbm9fdW5kZWZpbmVkX2ZsYWcgXAorK2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMgXAorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQgXAorK2hhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IgXAorK2ZpeF9zcmNmaWxlX3BhdGggXAorK2V4Y2x1ZGVfZXhw c3ltcyBcCisraW5jbHVkZV9leHBzeW1zIFwKKytmaWxlX2xpc3Rfc3BlYyBcCisrdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbmsgXAorK2xpYm5hbWVfc3BlYyBcCisrbGlicmFyeV9uYW1lc19zcGVj IFwKKytzb25hbWVfc3BlYyBcCisrZmluaXNoX2V2YWwgXAorK29sZF9zdHJpcGxpYiBcCisrc3Ry aXBsaWIgXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycyBcCisrcHJlZGVwX29iamVjdHMgXAor K3Bvc3RkZXBfb2JqZWN0cyBcCisrcHJlZGVwcyBcCisrcG9zdGRlcHMgXAorK2NvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCBcCisrTERfQ1hYIFwKKytjb21waWxlcl9DWFggXAorK2x0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWCBcCisrbHRfcHJvZ19jb21waWxlcl93bF9DWFggXAor K2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWCBcCisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY IFwKKytsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFggXAorK2V4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFggXAorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWCBcCisrY29tcGlsZXJfbmVl ZHNfb2JqZWN0X0NYWCBcCisrd2l0aF9nbnVfbGRfQ1hYIFwKKythbGxvd191bmRlZmluZWRfZmxh Z19DWFggXAorK25vX3VuZGVmaW5lZF9mbGFnX0NYWCBcCisraGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFggXAorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYIFwKKytoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0NYWCBcCisrZml4X3NyY2ZpbGVfcGF0aF9DWFggXAorK2V4Y2x1 ZGVfZXhwc3ltc19DWFggXAorK2luY2x1ZGVfZXhwc3ltc19DWFggXAorK2ZpbGVfbGlzdF9zcGVj X0NYWCBcCisrY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWCBcCisrcHJlZGVwX29iamVjdHNf Q1hYIFwKKytwb3N0ZGVwX29iamVjdHNfQ1hYIFwKKytwcmVkZXBzX0NYWCBcCisrcG9zdGRlcHNf Q1hYIFwKKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYOyBkbworKyAgICBjYXNlIFxgZXZh bCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKysgICAgKltcXFxcXFxcYFxcIlxcXCRd KikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2 YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIi CisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwk dmFyXFxcXFxcIiIKKysgICAgICA7OworKyAgICBlc2FjCisrZG9uZQorKworKyMgRG91YmxlLXF1 b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKytmb3IgdmFyIGluIHJlbG9hZF9jbWRzIFwKKytv bGRfcG9zdGluc3RhbGxfY21kcyBcCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcyBcCisrb2xkX2Fy Y2hpdmVfY21kcyBcCisrZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorK29sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHMgXAorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIFwKKythcmNoaXZlX2Nt ZHMgXAorK2FyY2hpdmVfZXhwc3ltX2NtZHMgXAorK21vZHVsZV9jbWRzIFwKKyttb2R1bGVfZXhw c3ltX2NtZHMgXAorK2V4cG9ydF9zeW1ib2xzX2NtZHMgXAorK3ByZWxpbmtfY21kcyBcCisrcG9z dGluc3RhbGxfY21kcyBcCisrcG9zdHVuaW5zdGFsbF9jbWRzIFwKKytmaW5pc2hfY21kcyBcCisr c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIFwKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBc Cisrb2xkX2FyY2hpdmVfY21kc19DWFggXAorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hY IFwKKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFggXAorK2FyY2hpdmVfY21kc19D WFggXAorK2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYIFwKKyttb2R1bGVfY21kc19DWFggXAorK21v ZHVsZV9leHBzeW1fY21kc19DWFggXAorK2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYIFwKKytwcmVs aW5rX2NtZHNfQ1hYOyBkbworKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2 YXIiXGAgaW4KKysgICAgKltcXFxcXFxcYFxcIlxcXCRdKikKKysgICAgICBldmFsICJsdF9cJHZh cj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJc XFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUg XFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysg ICAgKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysg ICAgICA7OworKyAgICBlc2FjCisrZG9uZQorKworKyMgRml4LXVwIGZhbGxiYWNrIGVjaG8gaWYg aXQgd2FzIG1hbmdsZWQgYnkgdGhlIGFib3ZlIHF1b3RpbmcgcnVsZXMuCisrY2FzZSBcJGx0X0VD SE8gaW4KKysqJ1xcXCQwIC0tZmFsbGJhY2stZWNobyInKSAgbHRfRUNITz1cYFwkRUNITyAiWFwk bHRfRUNITyIgfCBcJFhzZWQgLWUgJ3MvXFxcXFxcXFxcXFxcXFxcJDAgLS1mYWxsYmFjay1lY2hv IlwkL1wkMCAtLWZhbGxiYWNrLWVjaG8iLydcYAorKyAgOzsKKytlc2FjCisrCisrYWNfYXV4X2Rp cj0nJGFjX2F1eF9kaXInCisreHNpX3NoZWxsPSckeHNpX3NoZWxsJworK2x0X3NoZWxsX2FwcGVu ZD0nJGx0X3NoZWxsX2FwcGVuZCcKKysKKysjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gs IGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCisrIyBjb21tYW5kcyB0aHJvdWdo IHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMgSU5JVC4KKytpZiB0ZXN0IC1uICJcJHtaU0hf VkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisr CisrICAgIFBBQ0tBR0U9JyRQQUNLQUdFJworKyAgICBWRVJTSU9OPSckVkVSU0lPTicKKysgICAg VElNRVNUQU1QPSckVElNRVNUQU1QJworKyAgICBSTT0nJFJNJworKyAgICBvZmlsZT0nJG9maWxl JworKworKworKworKworKworKworK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8 XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysKKysjIEhhbmRsaW5nIG9mIGFyZ3VtZW50cy4K Kytmb3IgYWNfY29uZmlnX3RhcmdldCBpbiAkYWNfY29uZmlnX3RhcmdldHMKKytkbworKyAgY2Fz ZSAkYWNfY29uZmlnX3RhcmdldCBpbgorKyAgICAic29jaS9jb25maWcuaCIpIENPTkZJR19IRUFE RVJTPSIkQ09ORklHX0hFQURFUlMgc29jaS9jb25maWcuaCIgOzsKKysgICAgImRlcGZpbGVzIikg Q09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGRlcGZpbGVzIiA7OworKyAgICAibGli dG9vbCIpIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBsaWJ0b29sIiA7OworKyAg ICAiTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgTWFrZWZpbGUiIDs7Cisr ICAgICJzb2NpLWNvbmZpZyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLWNvbmZp ZyIgOzsKKysgICAgInNvY2kucGMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS5w YyIgOzsKKysgICAgInNvY2kuc3BlYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2Np LnNwZWMiIDs7CisrICAgICJzb2NpL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIHNvY2kvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2NvcmUvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9jb3JlL01ha2VmaWxlIiA7OworKyAgICAic29jaS9j b3JlL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9jb3Jl L3Rlc3QvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvTWFrZWZpbGUiIDs7CisrICAgICJz b2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNr ZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv TWFrZWZpbGUiIDs7CisrICAgICJtYW4vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgbWFuL01ha2VmaWxlIiA7OworKyAgICAiZG9jL01ha2VmaWxlIikgQ09ORklHX0ZJTEVT PSIkQ09ORklHX0ZJTEVTIGRvYy9NYWtlZmlsZSIgOzsKKysgICAgImRvYy9iYWNrZW5kcy9NYWtl ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBkb2MvYmFja2VuZHMvTWFrZWZpbGUi IDs7CisrICAgICJidWlsZC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBi dWlsZC9NYWtlZmlsZSIgOzsKKysgICAgImJ1aWxkL3VuaXgvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgYnVpbGQvdW5peC9NYWtlZmlsZSIgOzsKKysgICAgImJ1aWxkL21z dmM4MC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAv TWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIikgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUiIDs7CisrICAgICJi dWlsZC9tc3ZjODAvbGliL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiIDs7CisrCisrICAqKSB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmln X3RhcmdldCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworKyAgZXNhYwor K2RvbmUKKysKKysKKysjIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8g c3BlY2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCisrIyB0aGVuIHRoZSBlbnZ2YXIgaW50 ZXJmYWNlIGlzIHVzZWQuICBTZXQgb25seSB0aG9zZSB0aGF0IGFyZSBub3QuCisrIyBXZSB1c2Ug dGhlIGxvbmcgZm9ybSBmb3IgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4 dHJlbWVseQorKyMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCisraWYgJGFjX25lZWRfZGVm YXVsdHM7IHRoZW4KKysgIHRlc3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJ R19GSUxFUz0kY29uZmlnX2ZpbGVzCisrICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0g c2V0IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdfaGVhZGVycworKyAgdGVzdCAiJHtDT05GSUdf Q09NTUFORFMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0NPTU1BTkRTPSRjb25maWdfY29tbWFuZHMK KytmaQorKworKyMgSGF2ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIGNvbnZlbmllbmNlLiAg TWFrZSBpdCBpbiB0aGUgYnVpbGQgdHJlZQorKyMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8g cmVhc29uIGFnYWluc3QgaGF2aW5nIGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKKysjIGNyZWF0 aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAvdG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxl bXMuCisrIyBIb29rIGZvciBpdHMgcmVtb3ZhbCB1bmxlc3MgZGVidWdnaW5nLgorKyMgTm90ZSB0 aGF0IHRoZXJlIGlzIGEgc21hbGwgd2luZG93IGluIHdoaWNoIHRoZSBkaXJlY3Rvcnkgd2lsbCBu b3QgYmUgY2xlYW5lZDoKKysjIGFmdGVyIGl0cyBjcmVhdGlvbiBidXQgYmVmb3JlIGl0cyBuYW1l IGhhcyBiZWVuIGFzc2lnbmVkIHRvIGAkdG1wJy4KKyskZGVidWcgfHwKKyt7CisrICB0bXA9Cisr ICB0cmFwICdleGl0X3N0YXR1cz0kPworKyAgeyB0ZXN0IC16ICIkdG1wIiB8fCB0ZXN0ICEgLWQg IiR0bXAiIHx8IHJtIC1mciAiJHRtcCI7IH0gJiYgZXhpdCAkZXhpdF9zdGF0dXMKKysnIDAKKysg IHRyYXAgJ3sgKGV4aXQgMSk7IGV4aXQgMTsgfScgMSAyIDEzIDE1CisrfQorKyMgQ3JlYXRlIGEg KHNlY3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVzLgorKworK3sKKysgIHRtcD1gKHVt YXNrIDA3NyAmJiBta3RlbXAgLWQgIi4vY29uZlhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgorKyAg dGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIKKyt9ICB8fAorK3sKKysgIHRtcD0uL2Nv bmYkJC0kUkFORE9NCisrICAodW1hc2sgMDc3ICYmIG1rZGlyICIkdG1wIikKKyt9IHx8Cisrewor KyAgICRhc19lY2hvICIkYXNfbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5 IGluIC4iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorK30KKysKKysjIFNldCB1cCB0 aGUgc2NyaXB0cyBmb3IgQ09ORklHX0ZJTEVTIHNlY3Rpb24uCisrIyBObyBuZWVkIHRvIGdlbmVy YXRlIHRoZW0gaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KKysjIFRoaXMgaGFwcGVucyBm b3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIGNvbmZpZy5oJy4KKytpZiB0ZXN0IC1u ICIkQ09ORklHX0ZJTEVTIjsgdGhlbgorKworKworK2FjX2NyPScNJworK2FjX2NzX2F3a19jcj1g JEFXSyAnQkVHSU4geyBwcmludCAiYVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYvbnVsbGAKKytp ZiB0ZXN0ICIkYWNfY3NfYXdrX2NyIiA9ICJhJHthY19jcn1iIjsgdGhlbgorKyAgYWNfY3NfYXdr X2NyPSdcXHInCisrZWxzZQorKyAgYWNfY3NfYXdrX2NyPSRhY19jcgorK2ZpCisrCisrZWNobyAn QkVHSU4geycgPiIkdG1wL3N1YnMxLmF3ayIgJiYKKytfQUNFT0YKKysKKysKKyt7CisrICBlY2hv ICJjYXQgPmNvbmYkJHN1YnMuYXdrIDw8X0FDRU9GIiAmJgorKyAgZWNobyAiJGFjX3N1YnN0X3Zh cnMiIHwgc2VkICdzLy4qLyYhJCYkYWNfZGVsaW0vJyAmJgorKyAgZWNobyAiX0FDRU9GIgorK30g PmNvbmYkJHN1YnMuc2ggfHwKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorK2FjX2RlbGltX251bT1gZWNobyAiJGFjX3N1YnN0X3ZhcnMiIHwg Z3JlcCAtYyAnJCdgCisrYWNfZGVsaW09JyUhXyEjICcKKytmb3IgYWNfbGFzdF90cnkgaW4gZmFs c2UgZmFsc2UgZmFsc2UgZmFsc2UgZmFsc2UgOjsgZG8KKysgIC4gLi9jb25mJCRzdWJzLnNoIHx8 CisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFr ZSAkQ09ORklHX1NUQVRVUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v dCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQorKworKyAgYWNfZGVsaW1fbj1gc2VkIC1uICJzLy4qJGFjX2RlbGltXCQvWC9wIiBjb25mJCRz dWJzLmF3ayB8IGdyZXAgLWMgWGAKKysgIGlmIHRlc3QgJGFjX2RlbGltX24gPSAkYWNfZGVsaW1f bnVtOyB0aGVuCisrICAgIGJyZWFrCisrICBlbGlmICRhY19sYXN0X3RyeTsgdGhlbgorKyAgICB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJ R19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAk Q09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGVs c2UKKysgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKKysg IGZpCisrZG9uZQorK3JtIC1mIGNvbmYkJHN1YnMuc2gKKysKKytjYXQgPj4kQ09ORklHX1NUQVRV UyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKytjYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8 PFxcX0FDQVdLICYmCisrX0FDRU9GCisrc2VkIC1uICcKKytoCisrcy9eL1NbIi87IHMvIS4qLyJd PS8KKytwCisrZworK3MvXlteIV0qIS8vCisrOnJlcGwKKyt0IHJlcGwKKytzLyciJGFjX2RlbGlt IickLy8KKyt0IGRlbGltCisrOm5sCisraAorK3MvXCguXHsxNDhcfVwpLiovXDEvCisrdCBtb3Jl MQorK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kL1xcbiJcXC8KKytwCisrbgorK2IgcmVwbAor Kzptb3JlMQorK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyJcXC8KKytwCisrZworK3MvLlx7 MTQ4XH0vLworK3QgbmwKKys6ZGVsaW0KKytoCisrcy9cKC5cezE0OFx9XCkuKi9cMS8KKyt0IG1v cmUyCisrcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi8KKytwCisrYgorKzptb3JlMgorK3Mv WyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyJcXC8KKytwCisrZworK3MvLlx7MTQ4XH0vLworK3Qg ZGVsaW0KKysnIDxjb25mJCRzdWJzLmF3ayB8IHNlZCAnCisrL15bXiIiXS97CisrICBOCisrICBz L1xuLy8KKyt9CisrJyA+PiRDT05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQorK3JtIC1m IGNvbmYkJHN1YnMuYXdrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCisrX0FDQVdLCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxfQUNBV0sgJiYK KysgIGZvciAoa2V5IGluIFMpIFNfaXNfc2V0W2tleV0gPSAxCisrICBGUyA9ICIHIgorKworK30K Kyt7CisrICBsaW5lID0gJCAwCisrICBuZmllbGRzID0gc3BsaXQobGluZSwgZmllbGQsICJAIikK KysgIHN1YnN0ZWQgPSAwCisrICBsZW4gPSBsZW5ndGgoZmllbGRbMV0pCisrICBmb3IgKGkgPSAy OyBpIDwgbmZpZWxkczsgaSsrKSB7CisrICAgIGtleSA9IGZpZWxkW2ldCisrICAgIGtleWxlbiA9 IGxlbmd0aChrZXkpCisrICAgIGlmIChTX2lzX3NldFtrZXldKSB7CisrICAgICAgdmFsdWUgPSBT W2tleV0KKysgICAgICBsaW5lID0gc3Vic3RyKGxpbmUsIDEsIGxlbikgIiIgdmFsdWUgIiIgc3Vi c3RyKGxpbmUsIGxlbiArIGtleWxlbiArIDMpCisrICAgICAgbGVuICs9IGxlbmd0aCh2YWx1ZSkg KyBsZW5ndGgoZmllbGRbKytpXSkKKysgICAgICBzdWJzdGVkID0gMQorKyAgICB9IGVsc2UKKysg ICAgICBsZW4gKz0gMSArIGtleWxlbgorKyAgfQorKworKyAgcHJpbnQgbGluZQorK30KKysKKytf QUNBV0sKKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCisraWYgc2VkICJzLyRhY19jci8vIiA8IC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAy PiYxOyB0aGVuCisrICBzZWQgInMvJGFjX2NyXCQvLzsgcy8kYWNfY3IvJGFjX2NzX2F3a19jci9n IgorK2Vsc2UKKysgIGNhdAorK2ZpIDwgIiR0bXAvc3ViczEuYXdrIiA+ICIkdG1wL3N1YnMuYXdr IiBcCisrICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90 IHNldHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIgPiYyO30KKysgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytfQUNFT0YKKysKKysjIFZQQVRIIG1heSBjYXVzZSB0 cm91YmxlIHdpdGggc29tZSBtYWtlcywgc28gd2UgcmVtb3ZlICQoc3JjZGlyKSwKKysjICR7c3Jj ZGlyfSBhbmQgQHNyY2RpckAgZnJvbSBWUEFUSCBpZiBzcmNkaXIgaXMgIi4iLCBzdHJpcCBsZWFk aW5nIGFuZAorKyMgdHJhaWxpbmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgbGlu ZSBpZiBWUEFUSCBiZWNvbWVzIGVtcHR5CisrIyAoYWN0dWFsbHkgd2UgbGVhdmUgYW4gZW1wdHkg bGluZSB0byBwcmVzZXJ2ZSBsaW5lIG51bWJlcnMpLgorK2lmIHRlc3QgIngkc3JjZGlyIiA9IHgu OyB0aGVuCisrICBhY192cHN1Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKKytzLzoqXCQoc3JjZGly KToqLzovCisrcy86Klwke3NyY2Rpcn06Ki86LworK3MvOipAc3JjZGlyQDoqLzovCisrcy9eXChb Xj1dKj1bCSBdKlwpOiovXDEvCisrcy86KiQvLworK3MvXltePV0qPVsJIF0qJC8vCisrfScKKytm aQorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEK KytmaSAjIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiCisrCisrIyBTZXQgdXAgdGhlIHNjcmlwdHMg Zm9yIENPTkZJR19IRUFERVJTIHNlY3Rpb24uCisrIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0g aWYgdGhlcmUgYXJlIG5vIENPTkZJR19IRUFERVJTLgorKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0 YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgTWFrZWZpbGUnLgorK2lmIHRlc3QgLW4gIiRDT05G SUdfSEVBREVSUyI7IHRoZW4KKytjYXQgPiIkdG1wL2RlZmluZXMuYXdrIiA8PFxfQUNBV0sgfHwK KytCRUdJTiB7CisrX0FDRU9GCisrCisrIyBUcmFuc2Zvcm0gY29uZmRlZnMuaCBpbnRvIGFuIGF3 ayBzY3JpcHQgYGRlZmluZXMuYXdrJywgZW1iZWRkZWQgYXMKKysjIGhlcmUtZG9jdW1lbnQgaW4g Y29uZmlnLnN0YXR1cywgdGhhdCBzdWJzdGl0dXRlcyB0aGUgcHJvcGVyIHZhbHVlcyBpbnRvCisr IyBjb25maWcuaC5pbiB0byBwcm9kdWNlIGNvbmZpZy5oLgorKworKyMgQ3JlYXRlIGEgZGVsaW1p dGVyIHN0cmluZyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIGNvbmZkZWZzLmgsIHRvIGVhc2UKKysj IGhhbmRsaW5nIG9mIGxvbmcgbGluZXMuCisrYWNfZGVsaW09JyUhXyEjICcKKytmb3IgYWNfbGFz dF90cnkgaW4gZmFsc2UgZmFsc2UgOjsgZG8KKysgIGFjX3Q9YHNlZCAtbiAiLyRhY19kZWxpbS9w IiBjb25mZGVmcy5oYAorKyAgaWYgdGVzdCAteiAiJGFjX3QiOyB0aGVuCisrICAgIGJyZWFrCisr ICBlbGlmICRhY19sYXN0X3RyeTsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19IRUFERVJTIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19IRUFERVJTIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgZWxzZQorKyAgICBhY19kZWxpbT0iJGFj X2RlbGltISRhY19kZWxpbSBfJGFjX2RlbGltISEgIgorKyAgZmkKKytkb25lCisrCisrIyBGb3Ig dGhlIGF3ayBzY3JpcHQsIEQgaXMgYW4gYXJyYXkgb2YgbWFjcm8gdmFsdWVzIGtleWVkIGJ5IG5h bWUsCisrIyBsaWtld2lzZSBQIGNvbnRhaW5zIG1hY3JvIHBhcmFtZXRlcnMgaWYgYW55LiAgUHJl c2VydmUgYmFja3NsYXNoCisrIyBuZXdsaW5lIHNlcXVlbmNlcy4KKysKKythY193b3JkX3JlPVtf JGFzX2NyX0xldHRlcnNdW18kYXNfY3JfYWxudW1dKgorK3NlZCAtbiAnCisrcy8uXHsxNDhcfS8m JyIkYWNfZGVsaW0iJy9nCisrdCByc2V0CisrOnJzZXQKKytzL15bCSBdKiNbCSBdKmRlZmluZVsJ IF1bCSBdKi8gLworK3QgZGVmCisrZAorKzpkZWYKKytzL1xcJC8vCisrdCBic25sCisrcy9bIlxc XS9cXCYvZworK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpXCgoW14oKV0qKVwpWwkgXSpcKC4qXCkv UFsiXDEiXT0iXDIiXAorK0RbIlwxIl09IiBcMyIvcAorK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wp WwkgXSpcKC4qXCkvRFsiXDEiXT0iIFwyIi9wCisrZAorKzpic25sCisrcy9bIlxcXS9cXCYvZwor K3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpXCgoW14oKV0qKVwpWwkgXSpcKC4qXCkvUFsiXDEiXT0i XDIiXAorK0RbIlwxIl09IiBcM1xcXFxcXG4iXFwvcAorK3QgY29udAorK3MvXiBcKCciJGFjX3dv cmRfcmUiJ1wpWwkgXSpcKC4qXCkvRFsiXDEiXT0iIFwyXFxcXFxcbiJcXC9wCisrdCBjb250Cisr ZAorKzpjb250CisrbgorK3MvLlx7MTQ4XH0vJiciJGFjX2RlbGltIicvZworK3QgY2xlYXIKKys6 Y2xlYXIKKytzL1xcJC8vCisrdCBic25sYworK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyIv cAorK2QKKys6YnNubGMKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC9cXFxcXFxuIlxcL3AK KytiIGNvbnQKKysnIDxjb25mZGVmcy5oIHwgc2VkICcKKytzLyciJGFjX2RlbGltIicvIlxcXAor KyIvZycgPj4kQ09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9mYWlsPTEKKysKKytjYXQgPj4kQ09O RklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysgIGZvciAoa2V5IGluIEQp IERfaXNfc2V0W2tleV0gPSAxCisrICBGUyA9ICIHIgorK30KKysvXltcdCBdKiNbXHQgXSooZGVm aW5lfHVuZGVmKVtcdCBdKyRhY193b3JkX3JlKFtcdCAoXXxcJCkvIHsKKysgIGxpbmUgPSBcJCAw CisrICBzcGxpdChsaW5lLCBhcmcsICIgIikKKysgIGlmIChhcmdbMV0gPT0gIiMiKSB7CisrICAg IGRlZnVuZGVmID0gYXJnWzJdCisrICAgIG1hYzEgPSBhcmdbM10KKysgIH0gZWxzZSB7CisrICAg IGRlZnVuZGVmID0gc3Vic3RyKGFyZ1sxXSwgMikKKysgICAgbWFjMSA9IGFyZ1syXQorKyAgfQor KyAgc3BsaXQobWFjMSwgbWFjMiwgIigiKSAjKQorKyAgbWFjcm8gPSBtYWMyWzFdCisrICBwcmVm aXggPSBzdWJzdHIobGluZSwgMSwgaW5kZXgobGluZSwgZGVmdW5kZWYpIC0gMSkKKysgIGlmIChE X2lzX3NldFttYWNyb10pIHsKKysgICAgIyBQcmVzZXJ2ZSB0aGUgd2hpdGUgc3BhY2Ugc3Vycm91 bmRpbmcgdGhlICIjIi4KKysgICAgcHJpbnQgcHJlZml4ICJkZWZpbmUiLCBtYWNybyBQW21hY3Jv XSBEW21hY3JvXQorKyAgICBuZXh0CisrICB9IGVsc2UgeworKyAgICAjIFJlcGxhY2UgI3VuZGVm IHdpdGggY29tbWVudHMuICBUaGlzIGlzIG5lY2Vzc2FyeSwgZm9yIGV4YW1wbGUsCisrICAgICMg aW4gdGhlIGNhc2Ugb2YgX1BPU0lYX1NPVVJDRSwgd2hpY2ggaXMgcHJlZGVmaW5lZCBhbmQgcmVx dWlyZWQKKysgICAgIyBvbiBzb21lIHN5c3RlbXMgd2hlcmUgY29uZmlndXJlIHdpbGwgbm90IGRl Y2lkZSB0byBkZWZpbmUgaXQuCisrICAgIGlmIChkZWZ1bmRlZiA9PSAidW5kZWYiKSB7CisrICAg ICAgcHJpbnQgIi8qIiwgcHJlZml4IGRlZnVuZGVmLCBtYWNybywgIiovIgorKyAgICAgIG5leHQK KysgICAgfQorKyAgfQorK30KKyt7IHByaW50IH0KKytfQUNBV0sKKytfQUNFT0YKKytjYXQgPj4k Q09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFkZXJz IG1hY2hpbmVyeSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBzZXR1 cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiCisrCisrCisrZXZhbCBzZXQg WCAiICA6RiAkQ09ORklHX0ZJTEVTICA6SCAkQ09ORklHX0hFQURFUlMgICAgOkMgJENPTkZJR19D T01NQU5EUyIKKytzaGlmdAorK2ZvciBhY190YWcKKytkbworKyAgY2FzZSAkYWNfdGFnIGluCisr ICA6W0ZITENdKSBhY19tb2RlPSRhY190YWc7IGNvbnRpbnVlOzsKKysgIGVzYWMKKysgIGNhc2Ug JGFjX21vZGUkYWNfdGFnIGluCisrICA6W0ZITF0qOiopOzsKKysgIDpMKiB8IDpDKjoqKSB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB0YWcgJGFjX3RhZyIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdGFnICRhY190YWciID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKysgIDpbRkhdLSkgYWNfdGFnPS06LTs7Cisr ICA6W0ZIXSopIGFjX3RhZz0kYWNfdGFnOiRhY190YWcuaW47OworKyAgZXNhYworKyAgYWNfc2F2 ZV9JRlM9JElGUworKyAgSUZTPToKKysgIHNldCB4ICRhY190YWcKKysgIElGUz0kYWNfc2F2ZV9J RlMKKysgIHNoaWZ0CisrICBhY19maWxlPSQxCisrICBzaGlmdAorKworKyAgY2FzZSAkYWNfbW9k ZSBpbgorKyAgOkwpIGFjX3NvdXJjZT0kMTs7CisrICA6W0ZIXSkKKysgICAgYWNfZmlsZV9pbnB1 dHM9CisrICAgIGZvciBhY19mCisrICAgIGRvCisrICAgICAgY2FzZSAkYWNfZiBpbgorKyAgICAg IC0pIGFjX2Y9IiR0bXAvc3RkaW4iOzsKKysgICAgICAqKSAjIExvb2sgZm9yIHRoZSBmaWxlIGZp cnN0IGluIHRoZSBidWlsZCB0cmVlLCB0aGVuIGluIHRoZSBzb3VyY2UgdHJlZQorKwkgIyAoaWYg dGhlIHBhdGggaXMgbm90IGFic29sdXRlKS4gIFRoZSBhYnNvbHV0ZSBwYXRoIGNhbm5vdCBiZSBE T1Mtc3R5bGUsCisrCSAjIGJlY2F1c2UgJGFjX2YgY2Fubm90IGNvbnRhaW4gYDonLgorKwkgdGVz dCAtZiAiJGFjX2YiIHx8CisrCSAgIGNhc2UgJGFjX2YgaW4KKysJICAgW1xcLyRdKikgZmFsc2U7 OworKwkgICAqKSB0ZXN0IC1mICIkc3JjZGlyLyRhY19mIiAmJiBhY19mPSIkc3JjZGlyLyRhY19m Ijs7CisrCSAgIGVzYWMgfHwKKysJICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRhY19mIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGFjX2YiID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9OzsKKysgICAgICBlc2FjCisrICAgICAgY2FzZSAkYWNfZiBpbiAq XCcqKSBhY19mPWAkYXNfZWNobyAiJGFjX2YiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsg ZXNhYworKyAgICAgIGFjX2ZpbGVfaW5wdXRzPSIkYWNfZmlsZV9pbnB1dHMgJyRhY19mJyIKKysg ICAgZG9uZQorKworKyAgICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScg d2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAorKyAgICAjIHVzZSAkYXNfbWUpLCBwZW9w bGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6CisrICAgICMgICAgLyogY29uZmlnLmguICBH ZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCisrICAgIGNvbmZpZ3VyZV9pbnB1dD0nR2Vu ZXJhdGVkIGZyb20gJ2AKKysJICAkYXNfZWNobyAiJCoiIHwgc2VkICdzfF5bXjpdKi98fDtzfDpb XjpdKi98LCB8ZycKKysJYCcgYnkgY29uZmlndXJlLicKKysgICAgaWYgdGVzdCB4IiRhY19maWxl IiAhPSB4LTsgdGhlbgorKyAgICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAkY29uZmln dXJlX2lucHV0IgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAk YWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9 CisrICAgIGZpCisrICAgICMgTmV1dHJhbGl6ZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW50ZXJwcmV0 ZWQgYnkgc2VkIGluIHJlcGxhY2VtZW50IHN0cmluZ3MuCisrICAgIGNhc2UgJGNvbmZpZ3VyZV9p bnB1dCBpbiAjKAorKyAgICAqXCYqIHwgKlx8KiB8ICpcXCogKQorKyAgICAgICBhY19zZWRfY29u Zl9pbnB1dD1gJGFzX2VjaG8gIiRjb25maWd1cmVfaW5wdXQiIHwKKysgICAgICAgc2VkICdzL1tc XFxcJnxdL1xcXFwmL2cnYDs7ICMoCisrICAgICopIGFjX3NlZF9jb25mX2lucHV0PSRjb25maWd1 cmVfaW5wdXQ7OworKyAgICBlc2FjCisrCisrICAgIGNhc2UgJGFjX3RhZyBpbgorKyAgICAqOi06 KiB8ICo6LSkgY2F0ID4iJHRtcC9zdGRpbiIgXAorKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNh YworKworKyAgYWNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFjX2ZpbGUiIHx8CisrJGFzX2V4cHIg WCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFj X2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcg XHwgXAorKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFz X2VjaG8gWCIkYWNfZmlsZSIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9d KlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14v XS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQvewor KwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMv L1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgIHsgYXNfZGlyPSIkYWNf ZGlyIgorKyAgY2FzZSAkYXNfZGlyIGluICMoCisrICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7Cisr ICBlc2FjCisrICB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7ICRhc19ta2Rpcl9wICYmIG1rZGlyIC1w ICIkYXNfZGlyIjsgfSB8fCB7CisrICAgIGFzX2RpcnM9CisrICAgIHdoaWxlIDo7IGRvCisrICAg ICAgY2FzZSAkYXNfZGlyIGluICMoCisrICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRh c19kaXIiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCisrICAgICAgKikgYXNfcWRp cj0kYXNfZGlyOzsKKysgICAgICBlc2FjCisrICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNf ZGlycyIKKysgICAgICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIkYXNfZGlyIiB8fAorKyRhc19l eHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgi JGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQn IFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFz X2VjaG8gWCIkYXNfZGlyIiB8CisrICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10q XC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXClbXi9d LioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97Cisr CSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wpLioveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKyAgICAgIHRlc3QgLWQgIiRh c19kaXIiICYmIGJyZWFrCisrICAgIGRvbmUKKysgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2 YWwgIm1rZGlyICRhc19kaXJzIgorKyAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFz X2RpciIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0 b3J5ICRhc19kaXIiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICBh Y19idWlsZGRpcj0uCisrCisrY2FzZSAiJGFjX2RpciIgaW4KKysuKSBhY19kaXJfc3VmZml4PSBh Y190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKysqKQorKyAgYWNf ZGlyX3N1ZmZpeD0vYCRhc19lY2hvICIkYWNfZGlyIiB8IHNlZCAnc3xeXC5bXFwvXXx8J2AKKysg ICMgQSAiLi4iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KKysgIGFjX3Rv cF9idWlsZGRpcl9zdWI9YCRhc19lY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3N8L1teXFwv XSp8Ly4ufGc7c3wvfHwnYAorKyAgY2FzZSAkYWNfdG9wX2J1aWxkZGlyX3N1YiBpbgorKyAgIiIp IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyAgKikgIGFj X3RvcF9idWlsZF9wcmVmaXg9JGFjX3RvcF9idWlsZGRpcl9zdWIvIDs7CisrICBlc2FjIDs7Cisr ZXNhYworK2FjX2Fic190b3BfYnVpbGRkaXI9JGFjX3B3ZAorK2FjX2Fic19idWlsZGRpcj0kYWNf cHdkJGFjX2Rpcl9zdWZmaXgKKysjIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OgorK2FjX3Rv cF9idWlsZGRpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeAorKworK2Nhc2UgJHNyY2RpciBpbgorKyAg LikgICMgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgorKyAgICBhY19zcmNkaXI9LgorKyAgICBh Y190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXJfc3ViCisrICAgIGFjX2Fic190b3Bfc3JjZGly PSRhY19wd2QgOzsKKysgIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgbmFtZS4KKysg ICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKKysgICAgYWNfdG9wX3NyY2Rpcj0k c3JjZGlyCisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKKysgICopICMgUmVsYXRp dmUgbmFtZS4KKysgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpciRhY19k aXJfc3VmZml4CisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGly CisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2QvJHNyY2RpciA7OworK2VzYWMKKythY19h YnNfc3JjZGlyPSRhY19hYnNfdG9wX3NyY2RpciRhY19kaXJfc3VmZml4CisrCisrCisrICBjYXNl ICRhY19tb2RlIGluCisrICA6RikKKysgICMKKysgICMgQ09ORklHX0ZJTEUKKysgICMKKysKKysg IGNhc2UgJElOU1RBTEwgaW4KKysgIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElO U1RBTEwgOzsKKysgICopIGFjX0lOU1RBTEw9JGFjX3RvcF9idWlsZF9wcmVmaXgkSU5TVEFMTCA7 OworKyAgZXNhYworKyAgYWNfTUtESVJfUD0kTUtESVJfUAorKyAgY2FzZSAkTUtESVJfUCBpbgor KyAgW1xcLyRdKiB8ID86W1xcL10qICkgOzsKKysgICovKikgYWNfTUtESVJfUD0kYWNfdG9wX2J1 aWxkX3ByZWZpeCRNS0RJUl9QIDs7CisrICBlc2FjCisrX0FDRU9GCisrCisrY2F0ID4+JENPTkZJ R19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMgSWYgdGhlIHRlbXBsYXRl IGRvZXMgbm90IGtub3cgYWJvdXQgZGF0YXJvb3RkaXIsIGV4cGFuZCBpdC4KKysjIEZJWE1FOiBU aGlzIGhhY2sgc2hvdWxkIGJlIHJlbW92ZWQgYSBmZXcgeWVhcnMgYWZ0ZXIgMi42MC4KKythY19k YXRhcm9vdGRpcl9oYWNrPTsgYWNfZGF0YXJvb3RkaXJfc2Vlbj0KKysKKythY19zZWRfZGF0YXJv b3Q9JworKy9kYXRhcm9vdGRpci8geworKyAgcAorKyAgcQorK30KKysvQGRhdGFkaXJAL3AKKysv QGRvY2RpckAvcAorKy9AaW5mb2RpckAvcAorKy9AbG9jYWxlZGlyQC9wCisrL0BtYW5kaXJAL3AK KysnCisrY2FzZSBgZXZhbCAic2VkIC1uIFwiXCRhY19zZWRfZGF0YXJvb3RcIiAkYWNfZmlsZV9p bnB1dHMiYCBpbgorKypkYXRhcm9vdGRpciopIGFjX2RhdGFyb290ZGlyX3NlZW49eWVzOzsKKysq QGRhdGFkaXJAKnwqQGRvY2RpckAqfCpAaW5mb2RpckAqfCpAbG9jYWxlZGlyQCp8KkBtYW5kaXJA KikKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1 dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhl IC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30KKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NU QVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysgIGFjX2RhdGFyb290ZGlyX2hhY2s9 JworKyAgcyZAZGF0YWRpckAmJGRhdGFkaXImZworKyAgcyZAZG9jZGlyQCYkZG9jZGlyJmcKKysg IHMmQGluZm9kaXJAJiRpbmZvZGlyJmcKKysgIHMmQGxvY2FsZWRpckAmJGxvY2FsZWRpciZnCisr ICBzJkBtYW5kaXJAJiRtYW5kaXImZworKyAgICBzJlxcXCR7ZGF0YXJvb3RkaXJ9JiRkYXRhcm9v dGRpciZnJyA7OworK2VzYWMKKytfQUNFT0YKKysKKysjIE5ldXRyYWxpemUgVlBBVEggd2hlbiBg JHNyY2RpcicgPSBgLicuCisrIyBTaGVsbCBjb2RlIGluIGNvbmZpZ3VyZS5hYyBtaWdodCBzZXQg ZXh0cmFzdWIuCisrIyBGSVhNRTogZG8gd2UgcmVhbGx5IHdhbnQgdG8gbWFpbnRhaW4gdGhpcyBm ZWF0dXJlPworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9 MQorK2FjX3NlZF9leHRyYT0iJGFjX3Zwc3ViCisrJGV4dHJhc3ViCisrX0FDRU9GCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKzp0CisrL0BbYS16 QS1aX11bYS16QS1aXzAtOV0qQC8hYgorK3N8QGNvbmZpZ3VyZV9pbnB1dEB8JGFjX3NlZF9jb25m X2lucHV0fDt0IHQKKytzJkB0b3BfYnVpbGRkaXJAJiRhY190b3BfYnVpbGRkaXJfc3ViJjt0IHQK KytzJkB0b3BfYnVpbGRfcHJlZml4QCYkYWNfdG9wX2J1aWxkX3ByZWZpeCY7dCB0CisrcyZAc3Jj ZGlyQCYkYWNfc3JjZGlyJjt0IHQKKytzJkBhYnNfc3JjZGlyQCYkYWNfYWJzX3NyY2RpciY7dCB0 CisrcyZAdG9wX3NyY2RpckAmJGFjX3RvcF9zcmNkaXImO3QgdAorK3MmQGFic190b3Bfc3JjZGly QCYkYWNfYWJzX3RvcF9zcmNkaXImO3QgdAorK3MmQGJ1aWxkZGlyQCYkYWNfYnVpbGRkaXImO3Qg dAorK3MmQGFic19idWlsZGRpckAmJGFjX2Fic19idWlsZGRpciY7dCB0CisrcyZAYWJzX3RvcF9i dWlsZGRpckAmJGFjX2Fic190b3BfYnVpbGRkaXImO3QgdAorK3MmQElOU1RBTExAJiRhY19JTlNU QUxMJjt0IHQKKytzJkBNS0RJUl9QQCYkYWNfTUtESVJfUCY7dCB0CisrJGFjX2RhdGFyb290ZGly X2hhY2sKKysiCisrZXZhbCBzZWQgXCJcJGFjX3NlZF9leHRyYVwiICIkYWNfZmlsZV9pbnB1dHMi IHwgJEFXSyAtZiAiJHRtcC9zdWJzLmF3ayIgPiR0bXAvb3V0IFwKKysgIHx8IHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYy O30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKyt0ZXN0IC16ICIkYWNfZGF0YXJv b3RkaXJfaGFjayRhY19kYXRhcm9vdGRpcl9zZWVuIiAmJgorKyAgeyBhY19vdXQ9YHNlZCAtbiAn L1wke2RhdGFyb290ZGlyfS9wJyAiJHRtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0gJiYK KysgIHsgYWNfb3V0PWBzZWQgLW4gJy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnICIkdG1w L291dCJgOyB0ZXN0IC16ICIkYWNfb3V0IjsgfSAmJgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6ICRhY19maWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJp YWJsZSBcYGRhdGFyb290ZGlyJworK3doaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFz ZSBtYWtlIHN1cmUgaXQgaXMgZGVmaW5lZC4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6ICRhY19maWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFy b290ZGlyJworK3doaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBtYWtlIHN1cmUg aXQgaXMgZGVmaW5lZC4iID4mMjt9CisrCisrICBybSAtZiAiJHRtcC9zdGRpbiIKKysgIGNhc2Ug JGFjX2ZpbGUgaW4KKysgIC0pIGNhdCAiJHRtcC9vdXQiICYmIHJtIC1mICIkdG1wL291dCI7Owor KyAgKikgcm0gLWYgIiRhY19maWxlIiAmJiBtdiAiJHRtcC9vdXQiICIkYWNfZmlsZSI7OworKyAg ZXNhYyBcCisrICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQg bm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxk IG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 CisrIDs7CisrICA6SCkKKysgICMKKysgICMgQ09ORklHX0hFQURFUgorKyAgIworKyAgaWYgdGVz dCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorKyAgICB7CisrICAgICAgJGFzX2VjaG8gIi8qICRj b25maWd1cmVfaW5wdXQgICovIiBcCisrICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZp bmVzLmF3ayInICIkYWNfZmlsZV9pbnB1dHMiCisrICAgIH0gPiIkdG1wL2NvbmZpZy5oIiBcCisr ICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBj cmVhdGUgJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qg Y3JlYXRlICRhY19maWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAg ICBpZiBkaWZmICIkYWNfZmlsZSIgIiR0bXAvY29uZmlnLmgiID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5n ZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY2O30K KysgICAgZWxzZQorKyAgICAgIHJtIC1mICIkYWNfZmlsZSIKKysgICAgICBtdiAiJHRtcC9jb25m aWcuaCIgIiRhY19maWxlIiBcCisrCXx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKysgICAgZmkKKysgIGVsc2UKKysgICAgJGFzX2VjaG8gIi8qICRjb25maWd1 cmVfaW5wdXQgICovIiBcCisrICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3 ayInICIkYWNfZmlsZV9pbnB1dHMiIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAtIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAtIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorKyAgZmkKKysjIENvbXB1dGUgIiRhY19maWxlIidzIGluZGV4IGluICRjb25maWdf aGVhZGVycy4KKytfYW1fYXJnPSIkYWNfZmlsZSIKKytfYW1fc3RhbXBfY291bnQ9MQorK2ZvciBf YW1faGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbworKyAgY2FzZSAkX2FtX2hlYWRlciBp bgorKyAgICAkX2FtX2FyZyB8ICRfYW1fYXJnOiogKQorKyAgICAgIGJyZWFrIDs7CisrICAgICog KQorKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsK KysgIGVzYWMKKytkb25lCisrZWNobyAidGltZXN0YW1wIGZvciAkX2FtX2FyZyIgPmAkYXNfZGly bmFtZSAtLSAiJF9hbV9hcmciIHx8CisrJGFzX2V4cHIgWCIkX2FtX2FyZyIgOiAnWFwoLipbXi9d XCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJF9hbV9hcmciIDogJ1hcKC8vXClbXi9dJyBc fCBcCisrCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkX2FtX2FyZyIgOiAn WFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkX2FtX2FyZyIgfAorKyAg ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisr CSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisr CSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJ ICBzLy4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKKysgOzsKKysKKysgIDpDKSAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjY7 fQorKyA7OworKyAgZXNhYworKworKworKyAgY2FzZSAkYWNfZmlsZSRhY19tb2RlIGluCisrICAg ICJkZXBmaWxlcyI6QykgdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgIyBBdXRvY29uZiAy LjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMK KysjIGFyZSBsaXN0ZWQgd2l0aG91dCAtLWZpbGUuICBMZXQncyBwbGF5IHNhZmUgYW5kIG9ubHkg ZW5hYmxlIHRoZSBldmFsCisrIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCisrY2FzZSAkQ09O RklHX0ZJTEVTIGluCisrKlwnKikgZXZhbCBzZXQgeCAiJENPTkZJR19GSUxFUyIgOzsKKysqKSAg IHNldCB4ICRDT05GSUdfRklMRVMgOzsKKytlc2FjCisrc2hpZnQKKytmb3IgbWYKKytkbworKyAg IyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKysgIG1m PWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisrICAjIENoZWNrIHdoZXRoZXIgdGhp cyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgorKyAgIyBXZSB1c2Vk IHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAorKyAgIyBz b21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNv bnRlbnQuCisrICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUg cGVvcGxlIHBvc3QtcHJvY2VzcworKyAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcg bGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KKysgICMgR3JlcCdpbmcgdGhlIHdo b2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAjIGxp bWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVh c3QgNDAwMC4KKysgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlLiosWCxw JyAiJG1mIiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgZGlycGFydD1gJGFz X2Rpcm5hbWUgLS0gIiRtZiIgfHwKKyskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypb Xi9dW14vXSovKiQnIFx8IFwKKysJIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIk bWYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9u dWxsIHx8CisrJGFzX2VjaG8gWCIkbWYiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypb Xi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwv XC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wv XCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97Cisr CSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICBlbHNlCisr ICAgIGNvbnRpbnVlCisrICBmaQorKyAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJ UiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKKysgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0 aG91dCBydW5uaW5nIGBtYWtlJy4KKysgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3An IDwgIiRtZiJgCisrICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQorKyAgYW1fX2luY2x1 ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCisrICB0ZXN0IC16ICJh bV9faW5jbHVkZSIgJiYgY29udGludWUKKysgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVv dGUgPSAvL3AnIDwgIiRtZiJgCisrICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVt cHR5IG9yIGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAorKyAgVT1gc2VkIC1uICdzL15VID0gLy9w JyA8ICIkbWYiYAorKyAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBh cmUgaW5jbHVkZWQgZmlsZXMgd2l0aAorKyAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBX ZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhlCisrICAjIHNpbXBsZXN0IGFwcHJv YWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAg IyBleHBhbnNpb24uCisrICBmb3IgZmlsZSBpbiBgc2VkIC1uICIKKysgICAgcy9eJGFtX19pbmNs dWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIg fCBcCisrICAgICAgIHNlZCAtZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdzL1wk VS8nIiRVIicvZydgOyBkbworKyAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4K KysgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCisrICAgIGZkaXI9YCRh c19kaXJuYW1lIC0tICIkZmlsZSIgfHwKKyskYXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlteL11c KS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwK KysJIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRmaWxlIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRmaWxlIiB8CisrICAgIHNlZCAnL15YXCgu KlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQor KwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15Y XChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEn YAorKyAgICB7IGFzX2Rpcj0kZGlycGFydC8kZmRpcgorKyAgY2FzZSAkYXNfZGlyIGluICMoCisr ICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7CisrICBlc2FjCisrICB0ZXN0IC1kICIkYXNfZGlyIiB8 fCB7ICRhc19ta2Rpcl9wICYmIG1rZGlyIC1wICIkYXNfZGlyIjsgfSB8fCB7CisrICAgIGFzX2Rp cnM9CisrICAgIHdoaWxlIDo7IGRvCisrICAgICAgY2FzZSAkYXNfZGlyIGluICMoCisrICAgICAg KlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19kaXIiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycv ZyJgOzsgIycoCisrICAgICAgKikgYXNfcWRpcj0kYXNfZGlyOzsKKysgICAgICBlc2FjCisrICAg ICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKKysgICAgICBhc19kaXI9YCRhc19kaXJu YW1lIC0tICIkYXNfZGlyIiB8fAorKyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkv LypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwK KysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoL1wp JyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkYXNfZGlyIiB8CisrICAgIHNlZCAn L15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEK KysJICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisr CSAgfQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9Cisr CSAgL15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiov Li87IHEnYAorKyAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYmIGJyZWFrCisrICAgIGRvbmUKKysg ICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGlyICRhc19kaXJzIgorKyAgfSB8fCB0 ZXN0IC1kICIkYXNfZGlyIiB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog Y2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZp bGUiCisrICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAgZG9uZQorK2Rv bmUKKysgOzsKKysgICAgImxpYnRvb2wiOkMpCisrCisrICAgICMgU2VlIGlmIHdlIGFyZSBydW5u aW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKKysgICAgIyBj b21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCisrICAgIGlmIHRl c3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgICAgc2V0b3B0IE5PX0dMT0Jf U1VCU1QKKysgICAgZmkKKysKKysgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgorKyAgICB0cmFwICIk Uk0gXCIkY2ZnZmlsZVwiOyBleGl0IDEiIDEgMiAxNQorKyAgICAkUk0gIiRjZmdmaWxlIgorKwor KyAgICBjYXQgPDxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysjISAkU0hFTEwKKysKKysjIGAkRUNI TyAiJG9maWxlIiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFy eS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgorKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkg YnkgJGFzX21lICgkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCisrIyBMaWJ0b29sIHdhcyBj b25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBz ZWQgMXFgOgorKyMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6 IGxvb2sgYXQgbHRtYWluLnNoLgorKyMKKysjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAorKyMgICAgICAgICAgICAg ICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyAg IFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYKKysjCisrIyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdOVSBMaWJ0b29sLgorKyMKKysjIEdOVSBMaWJ0b29sIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyMgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKysjIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisr IyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysj CisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSwKKysjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3Jh bSBvciBsaWJyYXJ5IHRoYXQKKysjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5 IGluY2x1ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQorKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMg dGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrIworKyMgR05VIExp YnRvb2wgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBz ZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5CisrIyBjYW4gYmUgZG93bmxvYWRl ZCBmcm9tIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwgb3IKKysjIG9idGFp bmVkIGJ5IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKysj IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg VVNBLgorKworKworKyMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3Vw cG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorK2F2YWlsYWJsZV90YWdzPSJDWFggIgorKworKyMgIyMj IEJFR0lOIExJQlRPT0wgQ09ORklHCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFy ZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAorKworKyMg V2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KKytidWlsZF9vbGRfbGli cz0kZW5hYmxlX3N0YXRpYworKworKyMgV2hpY2ggcmVsZWFzZSBvZiBsaWJ0b29sLm00IHdhcyB1 c2VkPworK21hY3JvX3ZlcnNpb249JG1hY3JvX3ZlcnNpb24KKyttYWNyb19yZXZpc2lvbj0kbWFj cm9fcmV2aXNpb24KKysKKysjIFdoYXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkLgorK3BpY19t b2RlPSRwaWNfbW9kZQorKworKyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3Qg aW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAorKworKyMg VGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKKytob3N0PSRob3N0Cisr aG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhlIGJ1aWxkIHN5c3RlbS4KKytidWlsZF9hbGlhcz0k YnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQKKytidWlsZF9vcz0kYnVpbGRfb3MKKysKKysjIEEg c2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuCisrU0VEPSRsdF9TRUQK KysKKysjIFNlZCB0aGF0IGhlbHBzIHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVj aG8oMSkgb3B0aW9ucyBsaWtlIC1uLgorK1hzZWQ9IlwkU0VEIC1lIDFzL15YLy8iCisrCisrIyBB IGdyZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcy4KKytHUkVQPSRsdF9HUkVQCisr CisrIyBBbiBFUkUgbWF0Y2hlci4KKytFR1JFUD0kbHRfRUdSRVAKKysKKysjIEEgbGl0ZXJhbCBz dHJpbmcgbWF0Y2hlci4KKytGR1JFUD0kbHRfRkdSRVAKKysKKysjIEEgQlNELSBvciBNUy1jb21w YXRpYmxlIG5hbWUgbGlzdGVyLgorK05NPSRsdF9OTQorKworKyMgV2hldGhlciB3ZSBuZWVkIHNv ZnQgb3IgaGFyZCBsaW5rcy4KKytMTl9TPSRsdF9MTl9TCisrCisrIyBXaGF0IGlzIHRoZSBtYXhp bXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/CisrbWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCisrCisr IyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCisrb2JqZXh0PSRhY19vYmpleHQK KysKKysjIEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9JGV4 ZWV4dAorKworKyMgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KKytsdF91 bnNldD0kbHRfdW5zZXQKKysKKysjIHR1cm4gc3BhY2VzIGludG8gbmV3bGluZXMuCisrU1AyTkw9 JGx0X2x0X1NQMk5MCisrCisrIyB0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgorK05MMlNQPSRs dF9sdF9OTDJTUAorKworKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4K KytyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2Nt ZHMKKysKKysjIEFuIG9iamVjdCBzeW1ib2wgZHVtcGVyLgorK09CSkRVTVA9JGx0X09CSkRVTVAK KysKKysjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNo YXJlZCBvYmplY3RzLgorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21l dGhvZAorKworKyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAi ZmlsZV9tYWdpYyIuCisrZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCisrCisrIyBU aGUgYXJjaGl2ZXIuCisrQVI9JGx0X0FSCisrQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBB IHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbS4KKytTVFJJUD0kbHRfU1RSSVAKKysKKysjIENvbW1h bmRzIHVzZWQgdG8gaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KKytSQU5MSUI9JGx0X1JB TkxJQgorK29sZF9wb3N0aW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcworK29s ZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKKysKKysjIEEg QyBjb21waWxlci4KKytMVENDPSRsdF9DQworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytM VENGTEFHUz0kbHRfQ0ZMQUdTCisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1 Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9zeW1ib2xf cGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNmb3JtIHRo ZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKytnbG9iYWxfc3ltYm9s X3RvX2NkZWNsPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAorKworKyMgVHJh bnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyLgorK2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMg bmFtZSBhZGRyZXNzIHBhaXIgd2hlbiBsaWIgcHJlZml4IGlzIG5lZWRlZC4KKytnbG9iYWxfc3lt Ym9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBk aXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9 JG9iamRpcgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4K KytTSEVMTD0kbHRfU0hFTEwKKysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGlu dGVycHJldCBiYWNrc2xhc2hlcy4KKytFQ0hPPSRsdF9FQ0hPCisrCisrIyBVc2VkIHRvIGV4YW1p bmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zIHdpdGggImZpbGUiLgorK01B R0lDX0NNRD0kTUFHSUNfQ01ECisrCisrIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBj b21waWxhdGlvbj8KKytuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tzCisrCisrIyBUb29sIHRvIG1h bmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYLgor K0RTWU1VVElMPSRsdF9EU1lNVVRJTAorKworKyMgVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRvIGxv Y2FsIHN5bWJvbHMgb24gTWFjIE9TIFguCisrTk1FRElUPSRsdF9OTUVESVQKKysKKysjIFRvb2wg dG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2ZXMgb24gTWFjIE9TIFguCisrTElQ Tz0kbHRfTElQTworKworKyMgbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJp ZXMgb24gTWFjIE9TIFguCisrT1RPT0w9JGx0X09UT09MCisrCisrIyBsZGQvcmVhZGVsZiBsaWtl IHRvb2wgZm9yIDY0IGJpdCBNYWNoLU8gYmluYXJpZXMgb24gTWFjIE9TIFggMTAuNC4KKytPVE9P TDY0PSRsdF9PVE9PTDY0CisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIiku CisrbGliZXh0PSRsaWJleHQKKysKKysjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkg Ii5zbyIpLgorK3NocmV4dF9jbWRzPSRsdF9zaHJleHRfY21kcworKworKyMgVGhlIGNvbW1hbmRz IHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2 ZS4KKytleHRyYWN0X2V4cHN5bXNfY21kcz0kbHRfZXh0cmFjdF9leHBzeW1zX2NtZHMKKysKKysj IFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBl ciBzY3JpcHRzIGFuZAorKyMgcmVzdG9yZWQgYXQgbGluayB0aW1lLgorK3ZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rPSRsdF92YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaworKworKyMgRG8gd2Ug bmVlZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzPworK25lZWRfbGliX3ByZWZpeD0kbmVl ZF9saWJfcHJlZml4CisrCisrIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwor K25lZWRfdmVyc2lvbj0kbmVlZF92ZXJzaW9uCisrCisrIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlw ZS4KKyt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQorKworKyMgU2hhcmVkIGxpYnJhcnkgcnVu dGltZSBwYXRoIHZhcmlhYmxlLgorK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgorKworKyMgU2hh cmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KKytzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFy CisrCisrIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJh cnkgc2VhcmNoIHBhdGg/Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGgKKysKKysjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4Lgor K2xpYm5hbWVfc3BlYz0kbHRfbGlibmFtZV9zcGVjCisrCisrIyBMaXN0IG9mIGFyY2hpdmUgbmFt ZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyMg VGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFN RQorK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCisrCisrIyBUaGUg Y29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFt ZS4KKytzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1hbmQgdG8gdXNlIGFm dGVyIGluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK3Bvc3RpbnN0YWxsX2NtZHM9 JGx0X3Bvc3RpbnN0YWxsX2NtZHMKKysKKysjIENvbW1hbmQgdG8gdXNlIGFmdGVyIHVuaW5zdGFs bGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9wb3N0 dW5pbnN0YWxsX2NtZHMKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBs aWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KKytmaW5pc2hfY21kcz0kbHRfZmlu aXNoX2NtZHMKKysKKysjIEFzICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQg ZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAorKyMgbm90IHNob3duLgorK2ZpbmlzaF9ldmFsPSRs dF9maW5pc2hfZXZhbAorKworKyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBw YXRocyBpbnRvIGxpYnJhcmllcy4KKytoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9f bGlicworKworKyMgQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVz LgorK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj CisrCisrIyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcy4KKytzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKKysK KysjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5hYmxl X2Rsb3BlbgorKworKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgor K2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVuIG9m IHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZl9z dGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKKysKKysjIENvbW1hbmRzIHRvIHN0cmlw IGxpYnJhcmllcy4KKytvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRs dF9zdHJpcGxpYgorKworKworKyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4K KytMRD0kbHRfTEQKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFy Y2hpdmUuCisrb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcworKworKyMgQSBs YW5ndWFnZSBzcGVjaWZpYyBjb21waWxlci4KKytDQz0kbHRfY29tcGlsZXIKKysKKysjIElzIHRo ZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyPworK3dpdGhfZ2NjPSRHQ0MKKysKKysjIENvbXBp bGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFn PSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZworKworKyMgSG93IHRvIHBhc3Mg YSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4KKyt3bD0kbHRfbHRfcHJvZ19jb21w aWxlcl93bAorKworKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGli cmFyeSBvYmplY3RzLgorK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpYworKworKyMg Q29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5rX3N0YXRpY19m bGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpYworKworKyMgRG9lcyBjb21waWxlciBzaW11 bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPworK2NvbXBpbGVyX2Nfbz0kbHRf bHRfY3ZfcHJvZ19jb21waWxlcl9jX28KKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMg Zm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRh cmNoaXZlX2NtZHNfbmVlZF9sYworKworKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hh cmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYy4KKythbGxvd19saWJ0b29sX2xp YnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCisrZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWMKKysKKysj IENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBh cmNoaXZlcy4KKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMKKysKKysjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBv YmplY3RzIGRpcmVjdGx5LgorK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVl ZHNfb2JqZWN0CisrCisrIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJl ZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHMKKysKKysjIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0 byBsaW5rIGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX2V4 cHN5bXNfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMKKysKKysjIENvbW1h bmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KKythcmNoaXZlX2NtZHM9JGx0X2Fy Y2hpdmVfY21kcworK2FyY2hpdmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHMK KysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVy ZW50IGZyb20gYnVpbGRpbmcKKysjIGEgc2hhcmVkIGFyY2hpdmUuCisrbW9kdWxlX2NtZHM9JGx0 X21vZHVsZV9jbWRzCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMK KysKKysjIFdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdpdGggR05VIGxkIG9yIG5vdC4KKyt3aXRo X2dudV9sZD0kbHRfd2l0aF9nbnVfbGQKKysKKysjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxp YnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgorK2FsbG93X3VuZGVm aW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZworKworKyMgRmxhZyB0aGF0IGVuZm9y Y2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRl ZmluZWRfZmxhZworKworKyMgRmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5 IGR1cmluZyBsaW5raW5nLgorKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2Vz IG5vdCBleGlzdAorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMKKysKKysjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhh cmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkKKysjIGR1cmluZyBsaW5raW5nLiAgVGhpcyBt dXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KKytoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkCisrCisrIyBX aGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFy Z3VtZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJl ZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworKyMgRElSIGludG8gdGhlIHJlc3VsdGlu ZyBiaW5hcnkuCisraGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3QKKysKKysjIFNldCB0 byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcworKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1 bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCisrIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxl IHRvIGNoYW5nZSBieSBzZXR0aW5nIFwke3NobGlicGF0aF92YXJ9IGlmIHRoZQorKyMgbGlicmFy eSBpcyByZWxvY2F0ZWQuCisraGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJl Y3RfYWJzb2x1dGUKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5 LgorK2hhcmRjb2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0wKKysKKysjIFNldCB0byAieWVz IiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElS CisrIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX3NobGlicGF0aF92YXI9 JGhhcmRjb2RlX3NobGlicGF0aF92YXIKKysKKysjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBh IHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUg bGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5r ZWQKKysjIGFnYWluc3QgaXQuCisraGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0 aWMKKysKKysjIFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBl bmRlbnQgbGlicmFyaWVzCisrIyB0byBydW50aW1lIHBhdGggbGlzdC4KKytpbmhlcml0X3JwYXRo PSRpbmhlcml0X3JwYXRoCisrCisrIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3Jh bSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCisrbGlua19hbGxfZGVwbGli cz0kbGlua19hbGxfZGVwbGlicworKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2Zp bGUgZm9yIHRoZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9w YXRoCisrCisrIyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQu CisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHMKKysKKysjIFRo ZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCisrZXhwb3J0X3N5bWJvbHNfY21k cz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kcworKworKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3Qg YmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KKytleGNsdWRlX2V4cHN5bXM9JGx0 X2V4Y2x1ZGVfZXhwc3ltcworKworKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9y dGVkLgorK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zCisrCisrIyBDb21tYW5k cyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRo IHRlbXBsYXRlcy4KKytwcmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kcworKworKyMgU3BlY2lm eSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzLgorK2ZpbGVfbGlzdF9zcGVjPSRsdF9m aWxlX2xpc3Rfc3BlYworKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0 aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24K KysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3Jl YXRpbmcgYSBzaGFyZWQgbGlicmFyeS4KKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2Nv bXBpbGVyX2xpYl9zZWFyY2hfZGlycworKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9y ZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCisrIyBjcmVhdGUgYSBzaGFy ZWQgbGlicmFyeS4KKytwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHMKKytwb3N0ZGVw X29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0cworK3ByZWRlcHM9JGx0X3ByZWRlcHMKKytwb3N0 ZGVwcz0kbHRfcG9zdGRlcHMKKysKKysjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50 ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5 LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo CisrCisrIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCisrCisrX0xUX0VPRgorKworKyAgY2FzZSAk aG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIK KysjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9n cmFtLiAgRm9yIHNvbWUKKysjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVu dmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysjIHZhbmlzaCBpbiBhIHB1ZmYgb2Yg c21va2UuCisraWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisr ICBDT0xMRUNUX05BTUVTPQorKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKytmaQorK19MVF9FT0YK KysgICAgOzsKKysgIGVzYWMKKysKKysKKytsdG1haW49IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIK KysKKysKKysgICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJhc2ggb24gREpH UFAgZ2V0cyBjb25mdXNlZCBpZgorKyAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25s eSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgorKyAgIyB0ZXh0IG1vZGUsIGl0IHByb3Bl cmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0KKysgICMgaXMg cmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9ucyB0b28/Cisr ICBzZWQgJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRs dG1haW4iID4+ICIkY2ZnZmlsZSIgXAorKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAx KQorKworKyAgY2FzZSAkeHNpX3NoZWxsIGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VP RiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3Jl cGxhY2VtZW50CisrIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwg YWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAorKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9O RElSX1JFUExBQ0VNRU5ULgorK2Z1bmNfZGlybmFtZSAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgor KyAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OworKyAgICAqICAp IGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7CisrICBlc2FjCisrfQorKworKyMgZnVuY19i YXNlbmFtZSBmaWxlCisrZnVuY19iYXNlbmFtZSAoKQorK3sKKysgIGZ1bmNfYmFzZW5hbWVfcmVz dWx0PSIkezEjIyovfSIKKyt9CisrCisrIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUg YXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAorKyMgcGVyZm9ybSBmdW5jX2Jhc2VuYW1lIGFuZCBm dW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KKysjIGNhbGw6CisrIyAgIGRpcm5hbWU6 ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwKKysjICAgICAgICAg ICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNlIHNldCByZXN1bHQKKysjICAg ICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KKysjICAgICAgICAgICAgIHZhbHVlIHJl dHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysjICAgYmFzZW5hbWU6IENvbXB1dGUg ZmlsZW5hbWUgb2YgRklMRS4KKysjICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5j X2Jhc2VuYW1lX3Jlc3VsdCIKKysjIEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJv bml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKKysjIGFuZCBmdW5jX2Jhc2VuYW1lLiBGb3IgZWZmaWNp ZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCisrIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3Rl YWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCisrZnVuY19kaXJuYW1lX2FuZF9i YXNlbmFtZSAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLyopIGZ1bmNfZGlybmFtZV9y ZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OworKyAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7 M30iIDs7CisrICBlc2FjCisrICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCisrfQor KworKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCisrIyBzdHJpcCBQUkVGSVgg YW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KKysjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNv bnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAorKyMgY2hhcmFjdGVycywgaGFzaGVzLCBw ZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworKyMgZG90IChp biB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KKytmdW5jX3N0cmlwbmFtZSAo KQorK3sKKysgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlm IGJvdGggWCBhbmQgWSBhcmUKKysgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24g b25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC4KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dD0kezN9CisrICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQj IiR7MX0ifQorKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0 JSIkezJ9In0KKyt9CisrCisrIyBmdW5jX29wdF9zcGxpdAorK2Z1bmNfb3B0X3NwbGl0ICgpCisr eworKyAgZnVuY19vcHRfc3BsaXRfb3B0PSR7MSUlPSp9CisrICBmdW5jX29wdF9zcGxpdF9hcmc9 JHsxIyo9fQorK30KKysKKysjIGZ1bmNfbG8ybyBvYmplY3QKKytmdW5jX2xvMm8gKCkKKyt7Cisr ICBjYXNlICR7MX0gaW4KKysgICAgKi5sbykgZnVuY19sbzJvX3Jlc3VsdD0kezElLmxvfS4ke29i amV4dH0gOzsKKysgICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7CisrICBlc2FjCisr fQorKworKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCisrZnVuY194Zm9ybSAoKQorK3sK KysgIGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUuKn0ubG8KKyt9CisrCisrIyBmdW5jX2FyaXRoIGFy aXRobWV0aWMtdGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3Vs dD0kKCggJCogKSkKKyt9CisrCisrIyBmdW5jX2xlbiBzdHJpbmcKKysjIFNUUklORyBtYXkgbm90 IHN0YXJ0IHdpdGggYSBoeXBoZW4uCisrZnVuY19sZW4gKCkKKyt7CisrICBmdW5jX2xlbl9yZXN1 bHQ9JHsjMX0KKyt9CisrCisrX0xUX0VPRgorKyAgICA7OworKyAgKikgIyBCb3VybmUgY29tcGF0 aWJsZSBmdW5jdGlvbnMuCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisr IyBmdW5jX2Rpcm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBDb21wdXRl IHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVz dWx0LAorKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorK2Z1 bmNfZGlybmFtZSAoKQorK3sKKysgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJn dW1lbnQuCisrICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUg IiRkaXJuYW1lImAKKysgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0i OyB0aGVuCisrICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCisrICBlbHNlCisrICAgIGZ1 bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKysgIGZpCisrfQor KworKyMgZnVuY19iYXNlbmFtZSBmaWxlCisrZnVuY19iYXNlbmFtZSAoKQorK3sKKysgIGZ1bmNf YmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCisr fQorKworKworKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCisrIyBzdHJpcCBQ UkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KKysjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qg bm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAorKyMgY2hhcmFjdGVycywgaGFz aGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworKyMg ZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KKysjIGZ1bmNfc3Ry aXBfc3VmZml4IHByZWZpeCBuYW1lCisrZnVuY19zdHJpcG5hbWUgKCkKKyt7CisrICBjYXNlICR7 Mn0gaW4KKysgICAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCisr ICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJVxcXFwkezJ9XCQlJSJgOzsK KysgICAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCisrICAgICAg ICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJSR7Mn1cJCUlImA7OworKyAgZXNhYwor K30KKysKKysjIHNlZCBzY3JpcHRzOgorK215X3NlZF9sb25nX29wdD0nMXMvXlwoLVtePV0qXCk9 LiovXDEvO3EnCisrbXlfc2VkX2xvbmdfYXJnPScxcy9eLVtePV0qPS8vJworKworKyMgZnVuY19v cHRfc3BsaXQKKytmdW5jX29wdF9zcGxpdCAoKQorK3sKKysgIGZ1bmNfb3B0X3NwbGl0X29wdD1g JEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAKKysgIGZ1bmNfb3B0 X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAK Kyt9CisrCisrIyBmdW5jX2xvMm8gb2JqZWN0CisrZnVuY19sbzJvICgpCisreworKyAgZnVuY19s bzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrfQorKworKyMg ZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCisrZnVuY194Zm9ybSAoKQorK3sKKysgIGZ1bmNf eGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5bXi5dKiQvLmxvLydg CisrfQorKworKyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KKytmdW5jX2FyaXRoICgp CisreworKyAgZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRAImAKKyt9CisrCisrIyBmdW5jX2xl biBzdHJpbmcKKysjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCisrZnVuY19s ZW4gKCkKKyt7CisrICBmdW5jX2xlbl9yZXN1bHQ9YGV4cHIgIiQxIiA6ICIuKiIgMj4vZGV2L251 bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCisrfQorKworK19MVF9FT0YKKytlc2FjCisrCisrY2Fz ZSAkbHRfc2hlbGxfYXBwZW5kIGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAi JGNmZ2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKysjIEFwcGVuZCBWQUxVRSB0 byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5jX2FwcGVuZCAoKQorK3sKKysg IGV2YWwgIiQxKz1cJDIiCisrfQorK19MVF9FT0YKKysgICAgOzsKKysgICopCisrICAgIGNhdCA8 PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKysj IEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5jX2Fw cGVuZCAoKQorK3sKKysgIGV2YWwgIiQxPVwkJDFcJDIiCisrfQorKworK19MVF9FT0YKKysgICAg OzsKKysgIGVzYWMKKysKKysKKysgIHNlZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlv bnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKysgICAgfHwg KHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKKysKKysgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmls ZSIgfHwKKysgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmlsZSIgJiYg cm0gLWYgIiRjZmdmaWxlIikKKysgIGNobW9kICt4ICIkb2ZpbGUiCisrCisrCisrICAgIGNhdCA8 PF9MVF9FT0YgPj4gIiRvZmlsZSIKKysKKysjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6 IENYWAorKworKyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KKytMRD0kbHRf TERfQ1hYCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZl LgorK29sZF9hcmNoaXZlX2NtZHM9JGx0X29sZF9hcmNoaXZlX2NtZHNfQ1hYCisrCisrIyBBIGxh bmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRsdF9jb21waWxlcl9DWFgKKysKKysjIElz IHRoZSBjb21waWxlciB0aGUgR05VIGNvbXBpbGVyPworK3dpdGhfZ2NjPSRHQ0NfQ1hYCisrCisr IyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgorK25vX2J1aWx0 aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYCisrCisrIyBI b3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgorK3dsPSRsdF9s dF9wcm9nX2NvbXBpbGVyX3dsX0NYWAorKworKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBm b3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgorK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBp bGVyX3BpY19DWFgKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtp bmcuCisrbGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYCisr CisrIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlv bnM/CisrY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgKKysKKysj IFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMu CisrYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgKKysKKysj IFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBsaWJz IGFyZSBzdGF0aWMuCisrYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRl bmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWAorKworKyMgQ29tcGlsZXIgZmxh ZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9 JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFgKKysKKysjIENvbXBpbGVyIGZsYWcgdG8g Z2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KKyt3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYCisrCisrIyBX aGV0aGVyIHRoZSBjb21waWxlciBjb3BlcyB3aXRoIHBhc3Npbmcgbm8gb2JqZWN0cyBkaXJlY3Rs eS4KKytjb21waWxlcl9uZWVkc19vYmplY3Q9JGx0X2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFgK KysKKysjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUu Cisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k c19DWFgKKysKKysjIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5r IGluc3RlYWQgb2YgYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNf Y21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYCisrCisrIyBDb21tYW5k cyB1c2VkIHRvIGJ1aWxkIGEgc2hhcmVkIGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9hcmNo aXZlX2NtZHNfQ1hYCisrYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21k c19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgaWYg ZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKKysjIGEgc2hhcmVkIGFyY2hpdmUuCisrbW9kdWxlX2Nt ZHM9JGx0X21vZHVsZV9jbWRzX0NYWAorK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4 cHN5bV9jbWRzX0NYWAorKworKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQg b3Igbm90LgorK3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZF9DWFgKKysKKysjIEZsYWcgdGhh dCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1 aWx0LgorK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZ19DWFgK KysKKysjIEZsYWcgdGhhdCBlbmZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4KKytub191bmRl ZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYCisrCisrIyBGbGFnIHRvIGhhcmRj b2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCisrIyBUaGlzIG11c3Qg d29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0CisraGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgKKysKKysjIElmIGxkIGlz IHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5h cnkKKysjIGR1cmluZyBsaW5raW5nLiAgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBk b2VzIG5vdCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWAorKworKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xl ICItcnBhdGgiIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KKytoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWAorKworKyMgU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29k ZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdF9DWFgKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2lu ZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcworKyMg RElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSByZXN1bHRpbmcgbGlicmFyeSBk ZXBlbmRlbmN5IGlzCisrIyAiYWJzb2x1dGUiLGkuZSBpbXBvc3NpYmxlIHRvIGNoYW5nZSBieSBz ZXR0aW5nIFwke3NobGlicGF0aF92YXJ9IGlmIHRoZQorKyMgbGlicmFyeSBpcyByZWxvY2F0ZWQu CisraGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hY CisrCisrIyBTZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtp bmcgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29k ZV9taW51c19MPSRoYXJkY29kZV9taW51c19MX0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVz aW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGlu dG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFgKKysKKysjIFNldCB0byAieWVzIiBpZiBidWlsZGluZyBhIHNo YXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgorKyMgaW50byB0aGUgbGli cmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQK KysjIGFnYWluc3QgaXQuCisraGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWNf Q1hYCisrCisrIyBTZXQgdG8geWVzIGlmIGxpbmtlciBhZGRzIHJ1bnRpbWUgcGF0aHMgb2YgZGVw ZW5kZW50IGxpYnJhcmllcworKyMgdG8gcnVudGltZSBwYXRoIGxpc3QuCisraW5oZXJpdF9ycGF0 aD0kaW5oZXJpdF9ycGF0aF9DWFgKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBw cm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2FsbF9k ZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0NYWAorKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJs ZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhf c3JjZmlsZV9wYXRoX0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMg YXJlIHJlcXVpcmVkLgorK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1i b2xzX0NYWAorKworKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KKytl eHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzX0NYWAorKworKyMgU3lt Ym9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4K KytleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19DWFgKKysKKysjIFN5bWJvbHMg dGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KKytpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1 ZGVfZXhwc3ltc19DWFgKKysKKysjIENvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9n cmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxhdGVzLgorK3ByZWxpbmtfY21kcz0k bHRfcHJlbGlua19jbWRzX0NYWAorKworKyMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlu cHV0IGZpbGVzLgorK2ZpbGVfbGlzdF9zcGVjPSRsdF9maWxlX2xpc3Rfc3BlY19DWFgKKysKKysj IEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxl LgorK2hhcmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX0NYWAorKworKyMgVGhlIGRpcmVj dG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBs aWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGliX3NlYXJj aF9kaXJzX0NYWAorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIg dGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCisrIyBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeS4K KytwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHNfQ1hYCisrcG9zdGRlcF9vYmplY3Rz PSRsdF9wb3N0ZGVwX29iamVjdHNfQ1hYCisrcHJlZGVwcz0kbHRfcHJlZGVwc19DWFgKKytwb3N0 ZGVwcz0kbHRfcG9zdGRlcHNfQ1hYCisrCisrIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2Vk IGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZworKyMgYSBzaGFyZWQgbGli cmFyeS4KKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aF9DWFgKKysKKysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiBDWFgKKytfTFRfRU9G CisrCisrIDs7CisrCisrICBlc2FjCisrZG9uZSAjIGZvciBhY190YWcKKysKKysKKyt7IChleGl0 IDApOyBleGl0IDA7IH0KKytfQUNFT0YKKytjaG1vZCAreCAkQ09ORklHX1NUQVRVUworK2FjX2Ns ZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisrCisrdGVzdCAkYWNfd3JpdGVfZmFpbCA9 IDAgfHwKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB3cml0ZSBmYWls dXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogd3JpdGUgZmFpbHVyZSBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKysKKysKKysjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNv bmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCisrIyBjb25maWcuc3RhdHVz IGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCisrIyBV bmZvcnR1bmF0ZWx5LCBvbiBET1MgdGhpcyBmYWlscywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBr ZXB0IG9wZW4KKysjIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxl IHRvIHdyaXRlIHRvIGl0OyBpdHMKKysjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28g d2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9udWxsLAorKyMgZWZmZWN0aXZlbHkgY2xvc2luZyBjb25m aWcubG9nLCBzbyBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQKKysjIGFwcGVuZGVk IHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UK KysjIG5lZWQgdG8gbWFrZSB0aGUgRkQgYXZhaWxhYmxlIGFnYWluLgorK2lmIHRlc3QgIiRub19j cmVhdGUiICE9IHllczsgdGhlbgorKyAgYWNfY3Nfc3VjY2Vzcz06CisrICBhY19jb25maWdfc3Rh dHVzX2FyZ3M9CisrICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgorKyAgICBhY19jb25maWdfc3Rh dHVzX2FyZ3M9IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKKysgIGV4ZWMgNT4vZGV2 L251bGwKKysgICRTSEVMTCAkQ09ORklHX1NUQVRVUyAkYWNfY29uZmlnX3N0YXR1c19hcmdzIHx8 IGFjX2NzX3N1Y2Nlc3M9ZmFsc2UKKysgIGV4ZWMgNT4+Y29uZmlnLmxvZworKyAgIyBVc2UgfHws IG5vdCAmJiwgdG8gYXZvaWQgZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gK KysgICMgd291bGQgbWFrZSBjb25maWd1cmUgZmFpbCBpZiB0aGlzIGlzIHRoZSBsYXN0IGluc3Ry dWN0aW9uLgorKyAgJGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkK KytpZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVkX29wdHMiICYmIHRlc3QgIiRlbmFibGVfb3B0 aW9uX2NoZWNraW5nIiAhPSBubzsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNf dW5yZWNvZ25pemVkX29wdHMiID4mMjt9CisrZmkKKysKKysKKytlY2hvICIKKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246Cisr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrRGlyZWN0b3JpZXM6CisrICAtIHByZWZpeCAuLi4u Li4uLi4uLi4uLi4gOiAke3ByZWZpeH0KKysgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7 ZXhlY19wcmVmaXh9CisrICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9 CisrICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KKysgIC0gZG9jZGlyIC4u Li4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQorKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDog JHttYW5kaXJ9CisrICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9CisrCisr U3dpdGNoZXM6CisrICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRp b25zfQorKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9Cisr ICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KKysgIC0gc2hh cmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KKysgIC0gc3RhdGljIC4uLi4u Li4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KKysKKytEb2N1bWVudGF0aW9uIHRvb2xzOgor KyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQorKyAgLSBkb3h5Z2Vu IC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQorKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4u Li4uIDogJHtsYXRleF9va30KKysgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNf b2t9CisrICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQorKworK1Rlc3Rpbmcg dG9vbHM6CisrICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9CisrICAtIHNl ZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KKysKKytDb21waWxlci9saW5rZXIgZmxh Z3MvbGlicy9kZWZzOgorKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9CisrICAt IENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQorKyAgLSBDUFBGTEFHUyAuLi4u Li4uLi4uLi4uIDogJHtDUFBGTEFHU30KKysgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7 TERGTEFHU30KKysgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KKysKKytCdXJy aWVkIGhlYWRlciBmaWxlczoKKysgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtl bmFibGVfYnVycmllZF9oZWFkZXJzfQorKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4g OiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9CisrICAtIFBPU1RHUkVTUUxfSEVBREVS U19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQorKworK0V4 dGVybmFsIGxpYnJhcmllczoKKysgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6CisrICAgIG8g Qk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059CisrICAgIG8gQk9PU1RfQ0ZM QUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KKysgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4u LiA6ICR7Qk9PU1RfTElCU30KKysgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1Rf REFURV9USU1FX0xJQn0KKysgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQn0KKysKKysgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5h YmxlX2JhY2tlbmRfbXlzcWx9CisrICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FM X1ZFUlNJT059CisrICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30K KysgICAgbyBNWVNRTF9MREZMQUdTIC4uLi4uLiA6ICR7TVlTUUxfTERGTEFHU30KKysKKysgIC0g UG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KKysg ICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQorKyAgICBv IFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KKysgICAgbyBQT1NU R1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfQorKworKyAgLSBPcmFjbGUg c3VwcG9ydCAuLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9CisrICAgIG8gT1JBQ0xF X1ZFUlNJT04gLi4uLi4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KKysgICAgbyBPUkFDTEVfQ0ZM QUdTIC4uLi4uLiA6ICR7T1JBQ0xFX09DSV9DRkxBR1N9CisrICAgIG8gT1JBQ0xFX0xERkxBR1Mg Li4uLi4gOiAke09SQUNMRV9PQ0lfTERGTEFHU30KKysKKysgIC0gQ1BQVW5pdCAuLi4uLi4uLi4u Li4uLiA6CisrICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0K KysgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9CisrICAgIG8g Q1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KKyAKKy1lY2hvICcnCistY2Qg YnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIHBhcnNlLXBhcmFtZXRlcnMudGNsCistCistZWNo byAnJworLWVjaG8gJ0NvbmZpZ3VyZSBkb25lLicKKy1lY2hvICdZZXMsIGl0IHdhcyBzaG9ydC4n CistZWNobyAnJworLWVjaG8gJ1lvdSBjYW4gbm93IHJ1biBtYWtlLicKKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKytOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBp bnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysiCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNvY2ktMy4wLjBf dHJlcDMwMC9jb25maWd1cmUuYWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlndXJlLmFjCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDQwMCBAQAorKyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9k dWNlIGEgY29uZmlndXJlIHNjcmlwdAorKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfUFJFUkVRKDIuNTkpCisr QUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNv YmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pl0pCisrQUNfSU5JVChbU09DSV0sWzMuMC4wXSxb bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0XSxbc29jaV0pCisrQUNfQ09ORklHX0hFQURF Uihbc29jaS9jb25maWcuaF0pCisrQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3JlL2Vycm9yLmNw cF0pCisrQUNfQ09ORklHX0FVWF9ESVIoW2NvbmZpZ10pCisrQU1fSU5JVF9BVVRPTUFLRQorK0FN X1BBVEhfQ1BQVU5JVCgxLjEwKQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVOSVRdLCBbdGVz dCAieCRDUFBVTklUX0xJQlMiICE9IHhdKQorKworKyMgUlBNIHJlbGVhc2UgbnVtYmVyCisrUlBN X1JFTEVBU0U9IjEzIgorK0FDX1NVQlNUKFJQTV9SRUxFQVNFKQorKworKyMgU2hhcmVkIGxpYnJh cnkgdmVyc2lvbmluZworK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKKysjICAgICAg ICAgICAgICAgICAgICAgICAgfCB8IHwKKysjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICst LS0rCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAorKyMgICAgICAgICAgICAg IGN1cnJlbnQ6cmV2aXNpb246YWdlCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAg fAorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRl cmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiAKKysjICAgICAgICAgICAg ICAgICB8ICAgICAgICB8ICAgICAgICByZW1vdmVkIG9yIGNoYW5nZWQKKysjICAgICAgICAgICAg ICAgICB8ICAgICAgICArLSBpbmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5nZWQ7Cisr IyAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVudCBpcyBp bmNyZW1lbnRlZAorKyMgICAgICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2Vz IGhhdmUgYmVlbiBhZGRlZCwgcmVtb3ZlZAorKyMgICAgICAgICAgICAgICAgICAgIG9yIGNoYW5n ZWQKKytBQ19TVUJTVChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKysjIFVwbG9hZCBjb21t YW5kIGZvciBTb3VyY2VGb3JnZQorK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQu c291cmNlZm9yZ2UubmV0IC9pbmNvbWluZyIKKytBQ19TVUJTVChVUExPQURfQ09NTUFORCkKKysK KysjIENoZWNrIGZvciBob3N0IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkg aW4gV2luZG93cworK0FDX0NBTk9OSUNBTF9IT1NUCisrY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1z ZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdpbmRv d3MqKSAKKysgICAgQUNfRElTQUJMRV9TSEFSRUQKKysgICAgQUNfRU5BQkxFX1NUQVRJQworKyAg ICA7OworKyAgKikgIAorKyAgICBBQ19FTkFCTEVfU0hBUkVECisrICAgIEFDX0RJU0FCTEVfU1RB VElDCisrICAgIDs7CisrZXNhYworKworKyMgQ2hlY2tzIGZvciBwcm9ncmFtcworK3NhdmVfQ1hY RkxBR1M9IiRDWFhGTEFHUyIKKytBQ19QUk9HX0NYWAorK0FDX1BST0dfQ1hYQ1BQCisrQ1hYRkxB R1M9IiRzYXZlX0NYWEZMQUdTIgorK0FDX1BST0dfSU5TVEFMTAorK0FDX1BST0dfTElCVE9PTAor K0FDX1BST0dfTE5fUworK0FDX1BST0dfTUFLRV9TRVQKKysKKysjIFNldCBkZWZhdWx0IGxhbmd1 YWdlIHRvIEMrKworK0FDX0xBTkcoW0MrK10pCisrCisrIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBz d2l0Y2gKKytBQ19BUkdfRU5BQkxFKGV4Y2VwdGlvbnMsCisrICAgICAgICAgICAgICBbQVNfSEVM UF9TVFJJTkcoWy0tZW5hYmxlLWV4Y2VwdGlvbnNdLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtlbmFibGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCisrICAgICAg ICAgICAgICBbQUNfREVGSU5FKFtTT0NJX0VYQ0VQVElPTlNdLCBbMV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgIFtEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGluZ10pXSkK Kyt0ZXN0ICJ4JGVuYWJsZV9leGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9 eWVzCisrdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFibGVfZXhj ZXB0aW9ucz15ZXMKKysKKysjIENoZWNrIGZvciBpbmZvIHBhZ2VzCisrQUNfQVJHX0VOQUJMRShp bmZvLWRvYywgCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pbmZv LWRvY10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBJ bmZvIGRvY3VtZW50YXRpb25dKV0pCisrdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAm JiBlbmFibGVfaW5mb19kb2M9eWVzCisrCisrCisrIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNo CisrQUNfQVJHX0VOQUJMRShodG1sLWRvYywgCisrICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJ TkcoWy0tZGlzYWJsZS1odG1sLWRvY10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W2RvIG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb25dKV0pCisrdGVzdCAieCRlbmFibGVf aHRtbF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCisrCisrCisrIyBQcm92aWRl IC0td2l0aC1kb2NkaXIKKytBQ19BUkdfV0lUSChkb2NkaXIsCisrICAgICAgICAgICAgW0FTX0hF TFBfU1RSSU5HKFstLXdpdGgtZG9jZGlyPURJUl0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtzZXQgZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSXSldLAorKyAgICAgICAgICAg IFtET0NfRElSPSIkd2l0aHZhbCJdLAorKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkKKytpZiB0 ZXN0ICJ4JERPQ19ESVIiICE9IHg7IHRoZW4KKysgIGRvY2Rpcj0iJERPQ19ESVIiCisrZWxzZQor KyAgZG9jZGlyPSIke2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKKytmaQorK0FDX1NV QlNUKGRvY2RpcikKKysKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9y IFNPQ0kgaXRzZWxmKQorK0FDX0FSR19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVM UF9TVFJJTkcoWy0tZW5hYmxlLWJ1cnJpZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBoZWFkZXIg ZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxl dmFsIiA9IG5vOyB0aGVuCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVs c2UKKysgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsgZW5h YmxlX2J1cnJpZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNr YWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKytBTV9DT05ESVRJ T05BTChbU09DSV9IRUFERVJTX0JVUklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRl cnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9IRUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4 JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNP Q0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmll ZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCisrQUNfQVJHX0VOQUJMRShteXNxbC1i dXJyaWVkLWhlYWRlcnMsIAorKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwtYnVycmll ZC1oZWFkZXJzXSwKKysJCVtpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0 b3J5IHN0cnVjdHVyZV0pLAorKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJ ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysJZW5hYmxlX215c3Fs X2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVuYWJsZV9teXNxbF9idXJyaWVk X2hlYWRlcnM9bm8gXSkKKysjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJh dGlvbgorK2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrQU1fQ09ORElUSU9OQUwo W1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURdLAorKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVu YWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRCkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRl cnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQgJENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMg KGZvciBQb3N0R3JlU1FMIGNsaWVudCkKKytBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwtYnVycmll ZC1oZWFkZXJzLCAKKysgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmll ZC1oZWFkZXJzXSwKKysJCVtpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBk aXJlY3Rvcnkgc3RydWN0dXJlXSksCisrIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhl bgorKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVu YWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVuYWJs ZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhl IFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFk ZXJzPXllcworK0FNX0NPTkRJVElPTkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURd LAorKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVh ZGVycyIgPSB4eWVzXSkKKytBQ19TVUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQp CisraWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsg dGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQ RkxBR1MiCisrZmkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93 d3cuYm9vc3Qub3JnKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKytBWF9CT09TVChbMS4zM10pCisrQUNfU1VCU1QoQk9PU1RfVkVS U0lPTikKKytBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrQUNfU1VCU1QoQk9PU1RfTElCUykKKytB Q19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQorK0FDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIpCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFj a2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrQUNfQVJHX0VOQUJMRShbYmFja2VuZC1teXNxbF0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFst LWVuYWJsZS1iYWNrZW5kLW15c3FsXSwKKysgICAgICAgIFtidWlsZC1pbiBNeVNRTCBiYWNrZW5k IHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXQorKyAgICApLAorKyAgICBbIGlmIHRlc3QgIiRl bmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCisr ICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9eWVzCisrICAgICAgZmkgXSwKKysg ICAgWyBlbmFibGVfYmFja2VuZF9teXNxbD1ubyBdCisrKQorKworK2lmIHRlc3QgIngkZW5hYmxl X2JhY2tlbmRfbXlzcWwiID0gInh5ZXMiOyB0aGVuCisrICAgTVlTUUxfRElSUz0ibXlzcWwiCisr ICAgTVlTUUxfUkVRX1ZFUlNJT049IjMuMC4wIgorKyAgIEFYX0xJQl9NWVNRTChbJE1ZU1FMX1JF UV9WRVJTSU9OXSkKKytmaQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rlc3QgIngk ZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllc10pCisrI01ZU1FMX0RJUlM9Im15c3FsIgorKwor K0FDX1NVQlNUKFtNWVNRTF9ESVJTXSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQg Zm9yIE9yYWNsZSBiYWNrZW5kCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShbYmFja2Vu ZC1vcmFjbGVdLAorKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1vcmFjbGVd LAorKwkJICAgW2J1aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9A Oj5AXSksCisrICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkg ZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2JhY2tlbmRf b3JhY2xlPXllcworKyAgICAgIGZpIF0sCisrICAgIFsgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5v IF0KKyspCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5ZXMiOyB0 aGVuCisrICAgT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysgICBPUkFDTEVfT0NJX1JFUV9WRVJTSU9O PSI5LjAiCisrICAgQVhfTElCX09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04pCisr ZmkKKytBTV9DT05ESVRJT05BTChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVfYmFja2Vu ZF9vcmFjbGUiID0geHllc10pCisrI09SQUNMRV9ESVJTPSJvcmFjbGUiCisrCisrQUNfU1VCU1Qo W09SQUNMRV9ESVJTXSkKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVT UUwgYmFja2VuZAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtcG9zdGdy ZXNxbF0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWxd LAorKyAgICAgICAgW2J1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZh dWx0PW5vQDo+QF0KKysgICAgKSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCisrICAgICAgZWxzZQor KwkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD15ZXMKKysgICAgICBmaSBdLAorKyAgICBbIGVu YWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9i YWNrZW5kX3Bvc3RncmVzcWwiID0gInh5ZXMiOyB0aGVuCisrICAgUE9TVEdSRVNRTF9ESVJTPSJw b3N0Z3Jlc3FsIgorKyAgIFBPU1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgorKyAgIEFYX0xJ Ql9QT1NUR1JFU1FMKCRQT1NUR1JFU1FMX1JFUV9WRVJTSU9OKQorK2ZpCisrQU1fQ09ORElUSU9O QUwoW0hBVkVfUE9TVEdSRVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwi ID0geHllc10pCisrI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysKKytBQ19TVUJTVChb UE9TVEdSRVNRTF9ESVJTXSkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIGRv Y3VtZW50YXRpb24KKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBi dWlsZCB0b29scworKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVz XSwgW25vXSkKKysjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgorKyMg IHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8KKysjICBB Q19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQorKyNmaQorK0FNX0NPTkRJVElPTkFMKFtJ TkZPX0RPQ10sIFt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKKysKKysjIENoZWNr cyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scworK0FDX0NIRUNLX1BST0coW2RveHlnZW5f b2tdLCBbZG94eWdlbl0sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW2xhdGV4X29rXSwg W2xhdGV4XSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBbZHZpcHNd LCBbeWVzXSwgW25vXSkKKytBQ19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNdLCBbbm9d KQorK2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngk ZG94eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0 ZXhfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29r IiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHll cyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwg W10pCisrZmkKKytBTV9DT05ESVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFibGVfaHRt bF9kb2MiID0geHllc10pCisrCisrCisrIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVzZWQgZm9y IHRlc3RzCisrQUNfQ0hFQ0tfUFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtub10pCisr QUNfQ0hFQ0tfUFJPRyhbc2VkX29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQorK2VuYWJsZV90ZXN0 cz15ZXMKKyt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrdGVz dCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCisrQU1fQ09ORElUSU9OQUwo W1JVTl9URVNUU10sIFt0ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKKysKKysKKysjIENo ZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrQUNfSEVBREVSX1NUREMKKytBQ19IRUFERVJfVElNRQor K0FDX0NIRUNLX0hFQURFUlMoW2NtYXRoIFwKKysgIGRlcXVlIFwKKysgIGZzdHJlYW0gXAorKyAg aW9tYW5pcCBcCisrICBpb3N0cmVhbSBcCisrICBzc3RyZWFtIFwKKysgIGxpbWl0cyBcCisrICBs aXN0IFwKKysgIHNldCBcCisrICB2ZWN0b3IgXAorKyAgbWFwIFwKKysgIHF1ZXVlIFwKKysgIHN0 ZGV4Y2VwdCBcCisrICBzdHJpbmddKQorKworKworKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMK KytBQ19DT05GSUdfRklMRVMoCisrCU1ha2VmaWxlCisrCXNvY2ktY29uZmlnCisrCXNvY2kucGMK KysJc29jaS5zcGVjCisrCXNvY2kvTWFrZWZpbGUKKysJc29jaS9jb3JlL01ha2VmaWxlCisrCXNv Y2kvY29yZS90ZXN0L01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKKysJc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZp bGUKKysJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxl CisrCXNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKKysJbWFuL01ha2VmaWxlCisr ICAgICAgICBkb2MvTWFrZWZpbGUKKysgICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQorKwli dWlsZC9NYWtlZmlsZQorKwlidWlsZC91bml4L01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9NYWtl ZmlsZQorKwlidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9saWIvTWFr ZWZpbGUpCisrCisrQUNfT1VUUFVUCisrCisrZWNobyAiCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeSBjb25maWd1cmF0aW9uOgorKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKworK0RpcmVjdG9yaWVzOgorKyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4u IDogJHtwcmVmaXh9CisrICAtIGV4ZWNfcHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4 fQorKyAgLSBpbmNsdWRlZGlyIC4uLi4uLi4uLi4uIDogJHtpbmNsdWRlZGlyfQorKyAgLSBsaWJk aXIgLi4uLi4uLi4uLi4uLi4uIDogJHtsaWJkaXJ9CisrICAtIGRvY2RpciAuLi4uLi4uLi4uLi4u Li4gOiAke2RvY2Rpcn0KKysgIC0gbWFuZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQor KyAgLSBpbmZvZGlyIC4uLi4uLi4uLi4uLi4uIDogJHtpbmZvZGlyfQorKworK1N3aXRjaGVzOgor KyAgLSBleGNlcHRpb25zIC4uLi4uLi4uLi4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30KKysgIC0g aW5mby1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2luZm9fZG9jfQorKyAgLSBodG1sLWRv YyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaHRtbF9kb2N9CisrICAtIHNoYXJlZCAuLi4uLi4u Li4uLi4uLi4gOiAke2VuYWJsZV9zaGFyZWR9CisrICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4g OiAke2VuYWJsZV9zdGF0aWN9CisrCisrRG9jdW1lbnRhdGlvbiB0b29sczoKKysgIC0gdGV4aW5m byAuLi4uLi4uLi4uLi4uLiA6ICR7dGV4aW5mb19va30KKysgIC0gZG94eWdlbiAuLi4uLi4uLi4u Li4uLiA6ICR7ZG94eWdlbl9va30KKysgIC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0 ZXhfb2t9CisrICAtIGR2aXBzIC4uLi4uLi4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQorKyAgLSBn aG9zdHNjcmlwdCAuLi4uLi4uLi4uIDogJHtnc19va30KKysKKytUZXN0aW5nIHRvb2xzOgorKyAg LSBkaWZmIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtkaWZmX29rfQorKyAgLSBzZWQgLi4uLi4uLi4u Li4uLi4uLi4uIDogJHtzZWRfb2t9CisrCisrQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVm czoKKysgIC0gQ1hYIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7Q1hYfQorKyAgLSBDWFhGTEFHUyAu Li4uLi4uLi4uLi4uIDogJHtDWFhGTEFHU30KKysgIC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6 ICR7Q1BQRkxBR1N9CisrICAtIExERkxBR1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxBR1N9Cisr ICAtIExJQlMgLi4uLi4uLi4uLi4uLi4uLi4gOiAke0xJQlN9CisrCisrQnVycmllZCBoZWFkZXIg ZmlsZXM6CisrICAtIFNPQ0lfSEVBREVSU19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJp ZWRfaGVhZGVyc30KKysgIC0gTVlTUUxfSEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVf bXlzcWxfYnVycmllZF9oZWFkZXJzfQorKyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4g OiAke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyc30KKysKKytFeHRlcm5hbCBsaWJy YXJpZXM6CisrICAtIEJvb3N0IC4uLi4uLi4uLi4uLi4uLi4gOgorKyAgICBvIEJPT1NUX1ZFUlNJ T04gLi4uLi4uIDogJHtCT09TVF9WRVJTSU9OfQorKyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4u IDogJHtCT09TVF9DRkxBR1N9CisrICAgIG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NU X0xJQlN9CisrICAgIG8gQk9PU1RfRFRfTElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9M SUJ9CisrICAgIG8gQk9PU1RfUE9fTElCIC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUJ9CisrCisrICAtIE15U1FMIHN1cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5k X215c3FsfQorKyAgICBvIE1ZU1FMX1ZFUlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQor KyAgICBvIE1ZU1FMX0NGTEFHUyAuLi4uLi4uIDogJHtNWVNRTF9DRkxBR1N9CisrICAgIG8gTVlT UUxfTERGTEFHUyAuLi4uLi4gOiAke01ZU1FMX0xERkxBR1N9CisrCisrICAtIFBvc3RHcmVTUUwg c3VwcG9ydCAuLi4gOiAke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWx9CisrICAgIG8gUE9TVEdS RVNRTF9WRVJTSU9OIC4gOiAke1BPU1RHUkVTUUxfVkVSU0lPTn0KKysgICAgbyBQT1NUR1JFU1FM X0NGTEFHUyAuLiA6ICR7UE9TVEdSRVNRTF9DRkxBR1N9CisrICAgIG8gUE9TVEdSRVNRTF9MREZM QUdTIC4gOiAke1BPU1RHUkVTUUxfTERGTEFHU30gCisrCisrICAtIE9yYWNsZSBzdXBwb3J0IC4u Li4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KKysgICAgbyBPUkFDTEVfVkVSU0lPTiAu Li4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQorKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4u IDogJHtPUkFDTEVfT0NJX0NGTEFHU30KKysgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7 T1JBQ0xFX09DSV9MREZMQUdTfSAKKysKKysgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4uLiA6Cisr ICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KKysgICAgbyBD UFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9CisrICAgIG8gQ1BQVU5JVF9M SUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KKysKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KytOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQ QUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysiCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svQ09QWUlORyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlO RworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0NPUFlJTkcJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAw MDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwkyMDA5LTA1LTIyIDIy OjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTIxLDMgKzIxLDQgQEAKKyBGT1IgQU5ZIERBTUFH RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwKKyBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisr CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxl LmFtCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE2IEBA CisrIyMgZG9jL2JhY2tlbmRzIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworKyMjIFNv dXJjZSBkaXJlY3RvcnkKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr CisrU1VCRElSUyA9CisrCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJCho dG1sX2Jja19zb3VyY2VzKQorKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBv ZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAorKworK0VY VFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKysKKysjcGtn ZGF0YWRpciA9ICQoaHRtbF9iY2tfc291cmNlcykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5k cy9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmls ZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTU5IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQg YnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0 QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw OCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRo IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhl IGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFS IFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGly ID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VA CisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwor K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgor K1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwg PSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0 X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGRvYy9iYWNrZW5kcworK0FDTE9DQUxfTTQg PSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9t eXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQo Q09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09V UkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2 ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJz aXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3Rh bGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1 cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZl CisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4t cmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1 cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQo U1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChU RVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBB TVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0g QEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09T VF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1Rf REFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVN X0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9P U1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhf TElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElC QAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVB RF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJP T1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFH UyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBV TklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklU X0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lP TiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAor K0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQ QVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAor K0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBA RUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9 IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNf TElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JF UEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAK KytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0g QElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQ X1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBA TElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBA TElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5G TyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1Z U1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMg PSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxf VkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRA CisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMg PSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NA CisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJ X1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09M NjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQg PSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQ QUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFD S0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFU SF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJ RyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NA CisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxB R1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JF U1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVM RUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNI RUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFO REAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAK KythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9w X2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0ND ID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9 IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFk aW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKyth bV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBA YmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAor K2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRf dmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGly ID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBk aWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAor K2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXgg PSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3Rf YWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0g QGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1s ZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisr aW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRp ciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBs b2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBA bHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRp bmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXgg PSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0g QHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBA c3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFy Z2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3Bf YnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytB TV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2h0bWxfYmNr X3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9pbmRleC5odG1sIFwKKysJJCh0 b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvZmlyZWJpcmQuaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzL215c3FsLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9v ZGJjLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9vcmFjbGUuaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3Bvc3RncmVzcWwuaHRtbCBcCisrCSQodG9wX3Ny Y2RpcikvZG9jL2JhY2tlbmRzL3NxbGl0ZTMuaHRtbAorKworK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQorKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwg bXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMu aHRtbAorK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkK KythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxl LmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u ICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBp biAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAg KiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7 IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVU T01BS0UpIC0tZ251ICBkb2MvYmFja2VuZHMvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2Rp cikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBkb2MvYmFja2VuZHMvTWFrZWZpbGUKKysu UFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmln LnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAor Kwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29s OgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xp YnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRl cGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQg Z29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2Yg YG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBp ZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0 YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2Vu ZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUg ZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVf VEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAor Kwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisr CWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVz dCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNv bT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAk JGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2Zh aWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJ Y2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlz dD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAor Kwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGly ICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0 YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4g JCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0 IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAm JiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUK KytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVS UykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQk dW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3Mt aW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9v cHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisr CSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsg XAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQk c3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0k JGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlp ZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAor KwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVU QUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAg ICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3Mt cmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAor KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIk KENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxB R1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5p cXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdk YCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19B UkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1Mg R1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNy Y2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0 X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkg IHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNy Y2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMg aW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkg ICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAg c29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8g XAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxz ZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAor KwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJ ICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7 IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIg fHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0 ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3Rk aXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxl IFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNU X1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1 YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkg ICAgfHwgZXhpdCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBw d2RgOyBcCisrCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3 ZGA7IFwKKysJICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAg ICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGly PTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwK KysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwt YW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxk aXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBp bnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQor K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0 YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc CisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAor K21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4t Z2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVh bi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlz dGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVh bi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6 IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysK KytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFt OgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4 ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5z dGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisr aW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3Rh bGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xl YW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysK Kyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJl Y3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06Cisr CisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5Q SE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RB R1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlz dGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5z dGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5z dGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxs LXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGlu c3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVy LWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3Rs eWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwK KysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjcGtnZGF0YWRp ciA9ICQoaHRtbF9iY2tfc291cmNlcykKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9S VDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5tayBz b2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5t awkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisr aHRtbF9iY2tfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwg XAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bf c3JjZGlyKS9kb2MvYmFja2VuZHMvbXlzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jh Y2tlbmRzL29kYmMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5o dG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZp bGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2Vm aWxlLmFtCTIwMDktMDUtMjMgMTA6MDY6NTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgg QEAKKytpbmNsdWRlICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsKKysKKytTVUJESVJTID0g YmFja2VuZHMKKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxf bG9jYWxfc291cmNlcykgXAorKwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3Vy Y2VzKQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElU WSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuaW4gc29jaS0zLjAu MF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowNjo1NS4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsNTYyIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0 b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKwor KyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu CisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBP U0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChk YXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtn aW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIk JHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFU QSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0 YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RB TExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1Rf SU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6Cisr UE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBs ZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCisrc3ViZGly ID0gZG9jCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xv Y2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf b3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5t NCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1f X2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NB TF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9Cisr U09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1 cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBp bmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVj dXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZl IGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFs bC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJz aXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZl IHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdz CisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04p ICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBB Q0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9D T05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAK KytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFU RV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElC ID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1Rf SU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VY X0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFM U19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAor K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdT ID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAor K0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdT ID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAor K0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBE VU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1Qg PSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAg PSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZF UlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RB VEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1A CisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9H UkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExE RkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0g QExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBA TFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAK KytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9D T05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlT UUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1A CisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9C SkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9 IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9M REZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RP T0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAK KytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUg PSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BB Q0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBB Q0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJM ID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9 IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJT QAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNR TF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQ TV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VU X01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hF QURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9I RUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01N QU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRk aXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9w X2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3Rv cF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NY WEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1f X2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVv dGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1f X3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxp YXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9 IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0g QGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9v dGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2Vu X29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlw c19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKyto b3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhv c3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRv ckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2lu Zm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sg PSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNk aXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3Rh dGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJf cCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIg PSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9 IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBA c2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0 YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAor K3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3Bf YnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2Rp ciA9IEB0b3Bfc3JjZGlyQAorK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9j L2JhY2tlbmRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCisrCSQo dG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3Qu aHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvZXhjaGFuZ2UuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAor KwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9tdWx0aXRocmVhZGluZy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0 bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCisrCSQodG9wX3NyY2Rp cikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5o dG1sCisrCisrY3NzX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5jc3MK KytpbWdfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5wbmcKKytT VUJESVJTID0gYmFja2VuZHMKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAk KGh0bWxfbG9jYWxfc291cmNlcykgXAorKwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2Nh bF9zb3VyY2VzKQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSkKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvZG9jL3Nv dXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisr CSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisr CSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7 IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisr CWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUg IGRvYy9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFL RSkgLS1nbnUgIGRvYy9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBj YXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICop IFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGli dG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJk aXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRo ZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisr IyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVk aXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZp Zy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNl IHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Cisr IyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNv bW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7 IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc CisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNo byAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3Vi ZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rf c2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxz ZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisr CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVu IiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1h bSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7 IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0q IHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAq KSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBl bHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsg XAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNp dmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBl dmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vy c2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIi ID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc CisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAg ZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc CisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsg XAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBl bXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9 IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZp OyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1 ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0 YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFn cz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJ ICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAor KwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FS R1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9f Y2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwK KysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdz OgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0n JChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2Rp cikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAg ICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxz ZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7 IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAg ICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9 YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFt X19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwK KysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGly PSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGly IiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9 OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsg XAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKyth bGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2lu c3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVj OiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTog YWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5z dGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIk KElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAt eiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQ Uk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVh bi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdf Q0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFp bmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9y IG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkg cmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorK2NsZWFuOiBjbGVhbi1yZWN1cnNp dmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFu LWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmls ZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRh Z3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1y ZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5z dGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJz aXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFs bC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21h aW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtl ZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFu LWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9z dGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKwor K3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisr CisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1z dHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVf VEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFu IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBk aXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xl YW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFt IGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFs bC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFs bGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAor KwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJp YyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3Mt cmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisr IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9zb3Vy Y2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2RvYy9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zb3VyY2VzLm1rCTIwMDktMDUtMjMgMTA6MDY6 NDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE4IEBACisraHRtbF9sb2NhbF9zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L2Jhc2ljcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmV5b25kLmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9ib29zdC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvZXJyb3JzLmh0 bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9leGNoYW5nZS5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvaW5kZXguaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2ludGVyZmFjZXMuaHRtbCBc CisrCSQodG9wX3NyY2RpcikvZG9jL211bHRpdGhyZWFkaW5nLmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9yYXRpb25hbGUuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JlZmVyZW5jZS5o dG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mvc3RhdGVtZW50cy5odG1sIFwKKysJJCh0b3Bfc3Jj ZGlyKS9kb2Mvc3RydWN0dXJlLmh0bWwKKysKKytjc3NfbG9jYWxfc291cmNlcyA9ICQodG9wX3Ny Y2RpcikvZG9jL3N0eWxlLmNzcworKworK2ltZ19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGly KS9kb2Mvc3RydWN0dXJlLnBuZworKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RB TEwgc29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9JTlNU QUxMCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL0lOU1RBTEwJMjAwOS0wNS0yMyAxMDowMjowMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsMjkxIEBACisrSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucworKyoqKioqKioqKioqKioq KioqKioqKioqKioKKysKKytDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsIDIwMDQsIDIwMDUsCisrMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMgZnJlZSBkb2N1bWVudGF0 aW9uOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0Jhc2ljIEluc3Rh bGxhdGlvbgorKz09PT09PT09PT09PT09PT09PQorKworKyAgIEJyaWVmbHksIHRoZSBzaGVsbCBj b21tYW5kcyBgLi9jb25maWd1cmU7IG1ha2U7IG1ha2UgaW5zdGFsbCcgc2hvdWxkCisrY29uZmln dXJlLCBidWlsZCwgYW5kIGluc3RhbGwgdGhpcyBwYWNrYWdlLiAgVGhlIGZvbGxvd2luZworK21v cmUtZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUgdGhlIGBSRUFETUUnIGZp bGUgZm9yCisraW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZS4KKysKKysgICBU aGUgYGNvbmZpZ3VyZScgc2hlbGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJlY3QgdmFs dWVzIGZvcgorK3ZhcmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcg Y29tcGlsYXRpb24uICBJdCB1c2VzCisrdGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBNYWtlZmls ZScgaW4gZWFjaCBkaXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuCisrSXQgbWF5IGFsc28gY3JlYXRl IG9uZSBvciBtb3JlIGAuaCcgZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50CisrZGVm aW5pdGlvbnMuICBGaW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3Rh dHVzJyB0aGF0CisreW91IGNhbiBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0aGUgY3Vy cmVudCBjb25maWd1cmF0aW9uLCBhbmQgYQorK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcg Y29tcGlsZXIgb3V0cHV0ICh1c2VmdWwgbWFpbmx5IGZvcgorK2RlYnVnZ2luZyBgY29uZmlndXJl JykuCisrCisrICAgSXQgY2FuIGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGljYWxseSBj YWxsZWQgYGNvbmZpZy5jYWNoZScKKythbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZpbGU9Y29u ZmlnLmNhY2hlJyBvciBzaW1wbHkgYC1DJykgdGhhdCBzYXZlcworK3RoZSByZXN1bHRzIG9mIGl0 cyB0ZXN0cyB0byBzcGVlZCB1cCByZWNvbmZpZ3VyaW5nLiAgQ2FjaGluZyBpcworK2Rpc2FibGVk IGJ5IGRlZmF1bHQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0 YWxlCisrY2FjaGUgZmlsZXMuCisrCisrICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGlu Z3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQorK3RvIGZpZ3VyZSBvdXQgaG93 IGBjb25maWd1cmUnIGNvdWxkIGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1haWwKKytk aWZmcyBvciBpbnN0cnVjdGlvbnMgdG8gdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlIGBSRUFETUUn IHNvIHRoZXkgY2FuCisrYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlv dSBhcmUgdXNpbmcgdGhlIGNhY2hlLCBhbmQgYXQKKytzb21lIHBvaW50IGBjb25maWcuY2FjaGUn IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91CisrbWF5IHJlbW92 ZSBvciBlZGl0IGl0LgorKworKyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBgY29uZmln dXJlLmluJykgaXMgdXNlZCB0byBjcmVhdGUKKytgY29uZmlndXJlJyBieSBhIHByb2dyYW0gY2Fs bGVkIGBhdXRvY29uZicuICBZb3UgbmVlZCBgY29uZmlndXJlLmFjJyBpZgorK3lvdSB3YW50IHRv IGNoYW5nZSBpdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lv bgorK29mIGBhdXRvY29uZicuCisrCisrVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMg cGFja2FnZSBpczoKKysKKysgIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRo ZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKKysgICAgIGAuL2NvbmZpZ3VyZScgdG8g Y29uZmlndXJlIHRoZSBwYWNrYWdlIGZvciB5b3VyIHN5c3RlbS4KKysKKysgICAgIFJ1bm5pbmcg YGNvbmZpZ3VyZScgbWlnaHQgdGFrZSBhIHdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRz CisrICAgICBzb21lIG1lc3NhZ2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tp bmcgZm9yLgorKworKyAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KKysK KysgIDMuIE9wdGlvbmFsbHksIHR5cGUgYG1ha2UgY2hlY2snIHRvIHJ1biBhbnkgc2VsZi10ZXN0 cyB0aGF0IGNvbWUgd2l0aAorKyAgICAgdGhlIHBhY2thZ2UuCisrCisrICA0LiBUeXBlIGBtYWtl IGluc3RhbGwnIHRvIGluc3RhbGwgdGhlIHByb2dyYW1zIGFuZCBhbnkgZGF0YSBmaWxlcyBhbmQK KysgICAgIGRvY3VtZW50YXRpb24uCisrCisrICA1LiBZb3UgY2FuIHJlbW92ZSB0aGUgcHJvZ3Jh bSBiaW5hcmllcyBhbmQgb2JqZWN0IGZpbGVzIGZyb20gdGhlCisrICAgICBzb3VyY2UgY29kZSBk aXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorKyAg ICAgZmlsZXMgdGhhdCBgY29uZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhl IHBhY2thZ2UgZm9yCisrICAgICBhIGRpZmZlcmVudCBraW5kIG9mIGNvbXB1dGVyKSwgdHlwZSBg bWFrZSBkaXN0Y2xlYW4nLiAgVGhlcmUgaXMKKysgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVy LWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorKyAgICAgZm9yIHRo ZSBwYWNrYWdlJ3MgZGV2ZWxvcGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBn ZXQKKysgICAgIGFsbCBzb3J0cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBvcmRlciB0byByZWdlbmVy YXRlIGZpbGVzIHRoYXQgY2FtZQorKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKworKyAg Ni4gT2Z0ZW4sIHlvdSBjYW4gYWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFsbCcgdG8gcmVtb3ZlIHRo ZSBpbnN0YWxsZWQKKysgICAgIGZpbGVzIGFnYWluLgorKworK0NvbXBpbGVycyBhbmQgT3B0aW9u cworKz09PT09PT09PT09PT09PT09PT09PQorKworKyAgIFNvbWUgc3lzdGVtcyByZXF1aXJlIHVu dXN1YWwgb3B0aW9ucyBmb3IgY29tcGlsYXRpb24gb3IgbGlua2luZyB0aGF0CisrdGhlIGBjb25m aWd1cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgUnVuIGAuL2NvbmZpZ3VyZSAtLWhl bHAnCisrZm9yIGRldGFpbHMgb24gc29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZh cmlhYmxlcy4KKysKKysgICBZb3UgY2FuIGdpdmUgYGNvbmZpZ3VyZScgaW5pdGlhbCB2YWx1ZXMg Zm9yIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycworK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRo ZSBjb21tYW5kIGxpbmUgb3IgaW4gdGhlIGVudmlyb25tZW50LiAgSGVyZQorK2lzIGFuIGV4YW1w bGU6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz1jOTkgQ0ZMQUdTPS1nIExJQlM9LWxwb3NpeAor KworKyAgICpOb3RlIERlZmluaW5nIFZhcmlhYmxlczo6LCBmb3IgbW9yZSBkZXRhaWxzLgorKwor K0NvbXBpbGluZyBGb3IgTXVsdGlwbGUgQXJjaGl0ZWN0dXJlcworKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKworKyAgIFlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBm b3IgbW9yZSB0aGFuIG9uZSBraW5kIG9mIGNvbXB1dGVyIGF0IHRoZQorK3NhbWUgdGltZSwgYnkg cGxhY2luZyB0aGUgb2JqZWN0IGZpbGVzIGZvciBlYWNoIGFyY2hpdGVjdHVyZSBpbiB0aGVpcgor K293biBkaXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgY2FuIHVzZSBHTlUgYG1ha2UnLiAgYGNk JyB0byB0aGUKKytkaXJlY3Rvcnkgd2hlcmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQg ZXhlY3V0YWJsZXMgdG8gZ28gYW5kIHJ1bgorK3RoZSBgY29uZmlndXJlJyBzY3JpcHQuICBgY29u ZmlndXJlJyBhdXRvbWF0aWNhbGx5IGNoZWNrcyBmb3IgdGhlCisrc291cmNlIGNvZGUgaW4gdGhl IGRpcmVjdG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLgorKworKyAgIFdp dGggYSBub24tR05VIGBtYWtlJywgaXQgaXMgc2FmZXIgdG8gY29tcGlsZSB0aGUgcGFja2FnZSBm b3Igb25lCisrYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0 b3J5LiAgQWZ0ZXIgeW91IGhhdmUKKytpbnN0YWxsZWQgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNo aXRlY3R1cmUsIHVzZSBgbWFrZSBkaXN0Y2xlYW4nIGJlZm9yZQorK3JlY29uZmlndXJpbmcgZm9y IGFub3RoZXIgYXJjaGl0ZWN0dXJlLgorKworKyAgIE9uIE1hY09TIFggMTAuNSBhbmQgbGF0ZXIg c3lzdGVtcywgeW91IGNhbiBjcmVhdGUgbGlicmFyaWVzIGFuZAorK2V4ZWN1dGFibGVzIHRoYXQg d29yayBvbiBtdWx0aXBsZSBzeXN0ZW0gdHlwZXMtLWtub3duIGFzICJmYXQiIG9yCisrInVuaXZl cnNhbCIgYmluYXJpZXMtLWJ5IHNwZWNpZnlpbmcgbXVsdGlwbGUgYC1hcmNoJyBvcHRpb25zIHRv IHRoZQorK2NvbXBpbGVyIGJ1dCBvbmx5IGEgc2luZ2xlIGAtYXJjaCcgb3B0aW9uIHRvIHRoZSBw cmVwcm9jZXNzb3IuICBMaWtlCisrdGhpczoKKysKKysgICAgIC4vY29uZmlndXJlIENDPSJnY2Mg LWFyY2ggaTM4NiAtYXJjaCB4ODZfNjQgLWFyY2ggcHBjIC1hcmNoIHBwYzY0IiBcCisrICAgICAg ICAgICAgICAgICBDWFg9ImcrKyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFy Y2ggcHBjNjQiIFwKKysgICAgICAgICAgICAgICAgIENQUD0iZ2NjIC1FIiBDWFhDUFA9ImcrKyAt RSIKKysKKysgICBUaGlzIGlzIG5vdCBndWFyYW50ZWVkIHRvIHByb2R1Y2Ugd29ya2luZyBvdXRw dXQgaW4gYWxsIGNhc2VzLCB5b3UKKyttYXkgaGF2ZSB0byBidWlsZCBvbmUgYXJjaGl0ZWN0dXJl IGF0IGEgdGltZSBhbmQgY29tYmluZSB0aGUgcmVzdWx0cworK3VzaW5nIHRoZSBgbGlwbycgdG9v bCBpZiB5b3UgaGF2ZSBwcm9ibGVtcy4KKysKKytJbnN0YWxsYXRpb24gTmFtZXMKKys9PT09PT09 PT09PT09PT09PT0KKysKKysgICBCeSBkZWZhdWx0LCBgbWFrZSBpbnN0YWxsJyBpbnN0YWxscyB0 aGUgcGFja2FnZSdzIGNvbW1hbmRzIHVuZGVyCisrYC91c3IvbG9jYWwvYmluJywgaW5jbHVkZSBm aWxlcyB1bmRlciBgL3Vzci9sb2NhbC9pbmNsdWRlJywgZXRjLiAgWW91CisrY2FuIHNwZWNpZnkg YW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIGAvdXNyL2xvY2FsJyBieSBnaXZpbmcK KytgY29uZmlndXJlJyB0aGUgb3B0aW9uIGAtLXByZWZpeD1QUkVGSVgnLgorKworKyAgIFlvdSBj YW4gc3BlY2lmeSBzZXBhcmF0ZSBpbnN0YWxsYXRpb24gcHJlZml4ZXMgZm9yCisrYXJjaGl0ZWN0 dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJ ZiB5b3UKKytwYXNzIHRoZSBvcHRpb24gYC0tZXhlYy1wcmVmaXg9UFJFRklYJyB0byBgY29uZmln dXJlJywgdGhlIHBhY2thZ2UgdXNlcworK1BSRUZJWCBhcyB0aGUgcHJlZml4IGZvciBpbnN0YWxs aW5nIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMuCisrRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0 YSBmaWxlcyBzdGlsbCB1c2UgdGhlIHJlZ3VsYXIgcHJlZml4LgorKworKyAgIEluIGFkZGl0aW9u LCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdpdmUKKytv cHRpb25zIGxpa2UgYC0tYmluZGlyPURJUicgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZv ciBwYXJ0aWN1bGFyCisra2luZHMgb2YgZmlsZXMuICBSdW4gYGNvbmZpZ3VyZSAtLWhlbHAnIGZv ciBhIGxpc3Qgb2YgdGhlIGRpcmVjdG9yaWVzCisreW91IGNhbiBzZXQgYW5kIHdoYXQga2luZHMg b2YgZmlsZXMgZ28gaW4gdGhlbS4KKysKKysgICBJZiB0aGUgcGFja2FnZSBzdXBwb3J0cyBpdCwg eW91IGNhbiBjYXVzZSBwcm9ncmFtcyB0byBiZSBpbnN0YWxsZWQKKyt3aXRoIGFuIGV4dHJhIHBy ZWZpeCBvciBzdWZmaXggb24gdGhlaXIgbmFtZXMgYnkgZ2l2aW5nIGBjb25maWd1cmUnIHRoZQor K29wdGlvbiBgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNV RkZJWCcuCisrCisrT3B0aW9uYWwgRmVhdHVyZXMKKys9PT09PT09PT09PT09PT09PQorKworKyAg IFNvbWUgcGFja2FnZXMgcGF5IGF0dGVudGlvbiB0byBgLS1lbmFibGUtRkVBVFVSRScgb3B0aW9u cyB0bworK2Bjb25maWd1cmUnLCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBw YXJ0IG9mIHRoZSBwYWNrYWdlLgorK1RoZXkgbWF5IGFsc28gcGF5IGF0dGVudGlvbiB0byBgLS13 aXRoLVBBQ0tBR0UnIG9wdGlvbnMsIHdoZXJlIFBBQ0tBR0UKKytpcyBzb21ldGhpbmcgbGlrZSBg Z251LWFzJyBvciBgeCcgKGZvciB0aGUgWCBXaW5kb3cgU3lzdGVtKS4gIFRoZQorK2BSRUFETUUn IHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhh dCB0aGUKKytwYWNrYWdlIHJlY29nbml6ZXMuCisrCisrICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNl IHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5CisrZmluZCB0aGUg WCBpbmNsdWRlIGFuZCBsaWJyYXJ5IGZpbGVzIGF1dG9tYXRpY2FsbHksIGJ1dCBpZiBpdCBkb2Vz bid0LAorK3lvdSBjYW4gdXNlIHRoZSBgY29uZmlndXJlJyBvcHRpb25zIGAtLXgtaW5jbHVkZXM9 RElSJyBhbmQKKytgLS14LWxpYnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25z LgorKworK1BhcnRpY3VsYXIgc3lzdGVtcworKz09PT09PT09PT09PT09PT09PQorKworKyAgIE9u IEhQLVVYLCB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGlzIG5vdCBBTlNJIEMgY29tcGF0aWJsZS4g IElmIEdOVQorK0NDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0 aGUgZm9sbG93aW5nIG9wdGlvbnMgaW4KKytvcmRlciB0byB1c2UgYW4gQU5TSSBDIGNvbXBpbGVy OgorKworKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIC1BZSIKKysKKythbmQgaWYgdGhhdCBkb2Vz bid0IHdvcmssIGluc3RhbGwgcHJlLWJ1aWx0IGJpbmFyaWVzIG9mIEdDQyBmb3IgSFAtVVguCisr CisrICAgT24gT1NGLzEgYS5rLmEuIFRydTY0LCBzb21lIHZlcnNpb25zIG9mIHRoZSBkZWZhdWx0 IEMgY29tcGlsZXIgY2Fubm90CisrcGFyc2UgaXRzIGA8d2NoYXIuaD4nIGhlYWRlciBmaWxlLiAg VGhlIG9wdGlvbiBgLW5vZHRrJyBjYW4gYmUgdXNlZCBhcworK2Egd29ya2Fyb3VuZC4gIElmIEdO VSBDQyBpcyBub3QgaW5zdGFsbGVkLCBpdCBpcyB0aGVyZWZvcmUgcmVjb21tZW5kZWQKKyt0byB0 cnkKKysKKysgICAgIC4vY29uZmlndXJlIENDPSJjYyIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0 IHdvcmssIHRyeQorKworKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIC1ub2R0ayIKKysKKytTcGVj aWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQorKz09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisr ICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBv dXQKKythdXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9m IG1hY2hpbmUgdGhlIHBhY2thZ2UKKyt3aWxsIHJ1biBvbi4gIFVzdWFsbHksIGFzc3VtaW5nIHRo ZSBwYWNrYWdlIGlzIGJ1aWx0IHRvIGJlIHJ1biBvbiB0aGUKKytfc2FtZV8gYXJjaGl0ZWN0dXJl cywgYGNvbmZpZ3VyZScgY2FuIGZpZ3VyZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cworK2Eg bWVzc2FnZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRoZSBtYWNoaW5lIHR5cGUsIGdpdmUgaXQg dGhlCisrYC0tYnVpbGQ9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQg bmFtZSBmb3IgdGhlIHN5c3RlbQorK3R5cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNh bCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9ybToKKysKKysgICAgIENQVS1DT01QQU5ZLVNZU1RFTQor KworK3doZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisrCisrICAgICBP UyBLRVJORUwtT1MKKysKKysgICBTZWUgdGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9z c2libGUgdmFsdWVzIG9mIGVhY2ggZmllbGQuICBJZgorK2Bjb25maWcuc3ViJyBpc24ndCBpbmNs dWRlZCBpbiB0aGlzIHBhY2thZ2UsIHRoZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKytuZWVkIHRv IGtub3cgdGhlIG1hY2hpbmUgdHlwZS4KKysKKysgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29t cGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IHNob3VsZAorK3VzZSB0aGUgb3B0 aW9uIGAtLXRhcmdldD1UWVBFJyB0byBzZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2ls bAorK3Byb2R1Y2UgY29kZSBmb3IuCisrCisrICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9z cyBjb21waWxlciwgdGhhdCBnZW5lcmF0ZXMgY29kZSBmb3IgYQorK3BsYXRmb3JtIGRpZmZlcmVu dCBmcm9tIHRoZSBidWlsZCBwbGF0Zm9ybSwgeW91IHNob3VsZCBzcGVjaWZ5IHRoZQorKyJob3N0 IiBwbGF0Zm9ybSAoaS5lLiwgdGhhdCBvbiB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdp bGwKKytldmVudHVhbGx5IGJlIHJ1bikgd2l0aCBgLS1ob3N0PVRZUEUnLgorKworK1NoYXJpbmcg RGVmYXVsdHMKKys9PT09PT09PT09PT09PT09CisrCisrICAgSWYgeW91IHdhbnQgdG8gc2V0IGRl ZmF1bHQgdmFsdWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLAorK3lvdSBjYW4g Y3JlYXRlIGEgc2l0ZSBzaGVsbCBzY3JpcHQgY2FsbGVkIGBjb25maWcuc2l0ZScgdGhhdCBnaXZl cworK2RlZmF1bHQgdmFsdWVzIGZvciB2YXJpYWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScs IGFuZCBgcHJlZml4Jy4KKytgY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25m aWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0aGVuCisrYFBSRUZJWC9ldGMvY29uZmlnLnNpdGUnIGlm IGl0IGV4aXN0cy4gIE9yLCB5b3UgY2FuIHNldCB0aGUKKytgQ09ORklHX1NJVEUnIGVudmlyb25t ZW50IHZhcmlhYmxlIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2l0ZSBzY3JpcHQuCisrQSB3YXJu aW5nOiBub3QgYWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4K KysKKytEZWZpbmluZyBWYXJpYWJsZXMKKys9PT09PT09PT09PT09PT09PT0KKysKKysgICBWYXJp YWJsZXMgbm90IGRlZmluZWQgaW4gYSBzaXRlIHNoZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRo ZQorK2Vudmlyb25tZW50IHBhc3NlZCB0byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFj a2FnZXMgbWF5IHJ1bgorK2NvbmZpZ3VyZSBhZ2FpbiBkdXJpbmcgdGhlIGJ1aWxkLCBhbmQgdGhl IGN1c3RvbWl6ZWQgdmFsdWVzIG9mIHRoZXNlCisrdmFyaWFibGVzIG1heSBiZSBsb3N0LiAgSW4g b3JkZXIgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLCB5b3Ugc2hvdWxkIHNldAorK3RoZW0gaW4gdGhl IGBjb25maWd1cmUnIGNvbW1hbmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBs ZToKKysKKysgICAgIC4vY29uZmlndXJlIENDPS91c3IvbG9jYWwyL2Jpbi9nY2MKKysKKytjYXVz ZXMgdGhlIHNwZWNpZmllZCBgZ2NjJyB0byBiZSB1c2VkIGFzIHRoZSBDIGNvbXBpbGVyICh1bmxl c3MgaXQgaXMKKytvdmVycmlkZGVuIGluIHRoZSBzaXRlIHNoZWxsIHNjcmlwdCkuCisrCisrVW5m b3J0dW5hdGVseSwgdGhpcyB0ZWNobmlxdWUgZG9lcyBub3Qgd29yayBmb3IgYENPTkZJR19TSEVM TCcgZHVlIHRvCisrYW4gQXV0b2NvbmYgYnVnLiAgVW50aWwgdGhlIGJ1ZyBpcyBmaXhlZCB5b3Ug Y2FuIHVzZSB0aGlzIHdvcmthcm91bmQ6CisrCisrICAgICBDT05GSUdfU0hFTEw9L2Jpbi9iYXNo IC9iaW4vYmFzaCAuL2NvbmZpZ3VyZSBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoCisrCisrYGNvbmZp Z3VyZScgSW52b2NhdGlvbgorKz09PT09PT09PT09PT09PT09PT09PT0KKysKKysgICBgY29uZmln dXJlJyByZWNvZ25pemVzIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBjb250cm9sIGhvdyBpdAor K29wZXJhdGVzLgorKworK2AtLWhlbHAnCisrYC1oJworKyAgICAgUHJpbnQgYSBzdW1tYXJ5IG9m IGFsbCBvZiB0aGUgb3B0aW9ucyB0byBgY29uZmlndXJlJywgYW5kIGV4aXQuCisrCisrYC0taGVs cD1zaG9ydCcKKytgLS1oZWxwPXJlY3Vyc2l2ZScKKysgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0 aGUgb3B0aW9ucyB1bmlxdWUgdG8gdGhpcyBwYWNrYWdlJ3MKKysgICAgIGBjb25maWd1cmUnLCBh bmQgZXhpdC4gIFRoZSBgc2hvcnQnIHZhcmlhbnQgbGlzdHMgb3B0aW9ucyB1c2VkCisrICAgICBv bmx5IGluIHRoZSB0b3AgbGV2ZWwsIHdoaWxlIHRoZSBgcmVjdXJzaXZlJyB2YXJpYW50IGxpc3Rz IG9wdGlvbnMKKysgICAgIGFsc28gcHJlc2VudCBpbiBhbnkgbmVzdGVkIHBhY2thZ2VzLgorKwor K2AtLXZlcnNpb24nCisrYC1WJworKyAgICAgUHJpbnQgdGhlIHZlcnNpb24gb2YgQXV0b2NvbmYg dXNlZCB0byBnZW5lcmF0ZSB0aGUgYGNvbmZpZ3VyZScKKysgICAgIHNjcmlwdCwgYW5kIGV4aXQu CisrCisrYC0tY2FjaGUtZmlsZT1GSUxFJworKyAgICAgRW5hYmxlIHRoZSBjYWNoZTogdXNlIGFu ZCBzYXZlIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0cyBpbiBGSUxFLAorKyAgICAgdHJhZGl0aW9u YWxseSBgY29uZmlnLmNhY2hlJy4gIEZJTEUgZGVmYXVsdHMgdG8gYC9kZXYvbnVsbCcgdG8KKysg ICAgIGRpc2FibGUgY2FjaGluZy4KKysKKytgLS1jb25maWctY2FjaGUnCisrYC1DJworKyAgICAg QWxpYXMgZm9yIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJy4KKysKKytgLS1xdWlldCcKKytg LS1zaWxlbnQnCisrYC1xJworKyAgICAgRG8gbm90IHByaW50IG1lc3NhZ2VzIHNheWluZyB3aGlj aCBjaGVja3MgYXJlIGJlaW5nIG1hZGUuICBUbworKyAgICAgc3VwcHJlc3MgYWxsIG5vcm1hbCBv dXRwdXQsIHJlZGlyZWN0IGl0IHRvIGAvZGV2L251bGwnIChhbnkgZXJyb3IKKysgICAgIG1lc3Nh Z2VzIHdpbGwgc3RpbGwgYmUgc2hvd24pLgorKworK2AtLXNyY2Rpcj1ESVInCisrICAgICBMb29r IGZvciB0aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGluIGRpcmVjdG9yeSBESVIuICBVc3VhbGx5 CisrICAgICBgY29uZmlndXJlJyBjYW4gZGV0ZXJtaW5lIHRoYXQgZGlyZWN0b3J5IGF1dG9tYXRp Y2FsbHkuCisrCisrYC0tcHJlZml4PURJUicKKysgICAgIFVzZSBESVIgYXMgdGhlIGluc3RhbGxh dGlvbiBwcmVmaXguICAqTm90ZSBJbnN0YWxsYXRpb24gTmFtZXM6OgorKyAgICAgZm9yIG1vcmUg ZGV0YWlscywgaW5jbHVkaW5nIG90aGVyIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBmaW5lLXR1bmlu ZworKyAgICAgdGhlIGluc3RhbGxhdGlvbiBsb2NhdGlvbnMuCisrCisrYC0tbm8tY3JlYXRlJwor K2AtbicKKysgICAgIFJ1biB0aGUgY29uZmlndXJlIGNoZWNrcywgYnV0IHN0b3AgYmVmb3JlIGNy ZWF0aW5nIGFueSBvdXRwdXQKKysgICAgIGZpbGVzLgorKworK2Bjb25maWd1cmUnIGFsc28gYWNj ZXB0cyBzb21lIG90aGVyLCBub3Qgd2lkZWx5IHVzZWZ1bCwgb3B0aW9ucy4gIFJ1bgorK2Bjb25m aWd1cmUgLS1oZWxwJyBmb3IgbW9yZSBkZXRhaWxzLgorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL01ha2VmaWxlIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL01ha2VmaWxlCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCitAQCAtMSwyMCArMCwwIEBACistYnVpbGRfbGlicyA6CistCWNkIGJ1aWxkL3Vu aXg7IGBjYXQgbG9jYWwvdGNsYCBidWlsZC50Y2wgY29yZSBjb3JlLXNvIG15c3FsIG15c3FsLXNv IHBvc3RncmVzcWwgcG9zdGdyZXNxbC1zbyBvcmFjbGUgb3JhY2xlLXNvCistCistdGVzdHMgOgor LQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIG15c3FsLXRlc3Qgb3Jh Y2xlLXRlc3QgcG9zdGdyZXNxbC10ZXN0CistCistaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXg7 IGBjYXQgbG9jYWwvdGNsYCBpbnN0YWxsLnRjbAorLQorLXVuaW5zdGFsbCA6CistCWNkIGJ1aWxk L3VuaXgvbG9jYWw7IC9iaW4vc2ggdW5pbnN0YWxsLnNoCistCistY2xlYW4gOgorLQlmaW5kIC4g LW5hbWUgJyoubycgfCB4YXJncyBybQorLQlmaW5kIC4gLW5hbWUgJyouYScgfCB4YXJncyBybQor LQlmaW5kIC4gLW5hbWUgJyouc28nIHwgeGFyZ3Mgcm0KKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbAorLQlybSAtZiBzcmMvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVz dC1vcmFjbGUKKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwKKy0Jcm0gLXJmIGJ1aWxkL3VuaXgvaW5jbHVkZSBidWlsZC91bml4L2xpYiBidWlsZC91 bml4L3Rlc3RzCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsNjIgQEAKKysjIyB0b3AgZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgorKworK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZworKworK0FV VE9NQUtFX09QVElPTlMgPSBkaXN0LWJ6aXAyCisrCisraWYgUlVOX1RFU1RTCisrIyAgVEVTVF9E SVIgPSB0ZXN0CisrZW5kaWYKKysKKytNQU5fRE9DX0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5h bmNlIGZpbGVzCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00 IGNvbmZpZ3VyZSBcCisrCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBi b290c3RyYXAKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25m aWd1cmUgLl9NYWtlZmlsZSBjb250cmliCisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklM SVRZID0gY29udHJpYgorKworK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4g dGhlc2UgZGlyZWN0b3JpZXM6CisrU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0Nf RElSKSBkb2MgJChURVNUX0RJUikKKysKKysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVycworK2Jp bl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZworKworK3BrZ2NvbmZpZ2RpciA9ICQobGliZGly KS9wa2djb25maWcKKytwa2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYworKworK200ZGF0YWRp ciA9ICQoZGF0YWRpcikvYWNsb2NhbAorK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrCisr IyBUYXJnZXRzCisrdW5pbnN0YWxsLWxvY2FsOgorKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrCisrZGlzdC1odG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0 bWwKKysKKysKKytzbmFwc2hvdDogc25hcHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKKysKKysKKytz bmFwc2hvdC1zcmM6CisrICAgICAgICAkKE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJO QU1FQC1gZGF0ZSArIiVZJW0lZCJgCisrCisrc25hcHNob3QtaHRtbDoKKysJJChNQUtFKSAtQyBk b2MgZGlzdC1odG1sIGh0bWxfdGFybmFtZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0 ZSArIiVZJW0lZCJgCisrCisrdXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCisrCisrdXBs b2FkLXNyYzogZGlzdAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJT SU9OQC50YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgorKwor K3VwbG9hZC1odG1sOiBkaXN0LWh0bWwKKysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJO QU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtaHRt bC1kb2MtQFZFUlNJT05ALnRhci5iejIKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9N YWtlZmlsZS5jb21tb24gc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmNvbW1vbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24JMjAwOS0w NS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBAQAorK0BTRVRfTUFL RUAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9N YWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxl LmluCTIwMDktMDUtMjMgMTA6MDI6MDMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgwOCBA QAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2Vm aWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysK KysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGlu Y2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSBSRUFETUUgJChhbV9fY29uZmlndXJlX2RlcHMpICQoc3JjZGlyKS9NYWtlZmls ZS5hbSBcCisrCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4g XAorKwkkKHNyY2Rpcikvc29jaS5wYy5pbiAkKHNyY2Rpcikvc29jaS5zcGVjLmluIFwKKysJJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9S UyBcCisrCUNPUFlJTkcgQ2hhbmdlTG9nIElOU1RBTEwgTkVXUyBjb25maWcvY29uZmlnLmd1ZXNz IFwKKysJY29uZmlnL2NvbmZpZy5zdWIgY29uZmlnL2RlcGNvbXAgY29uZmlnL2luc3RhbGwtc2gg XAorKwljb25maWcvbHRtYWluLnNoIGNvbmZpZy9taXNzaW5nCisrc3ViZGlyID0gLgorK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9u Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGly KS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2Rl cHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrYW1fX0NP TkZJR19ESVNUQ0xFQU5fRklMRVMgPSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcu bG9nIFwKKysgY29uZmlndXJlLmxpbmVubyBjb25maWcuc3RhdHVzLmxpbmVubworK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0gc29jaS1jb25maWcgc29jaS5w YyBzb2NpLnNwZWMKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQo REVTVERJUikkKG00ZGF0YWRpcikiIFwKKysJIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCisr YmluU0NSSVBUX0lOU1RBTEwgPSAkKElOU1RBTExfU0NSSVBUKQorK1NDUklQVFMgPSAkKGJpbl9T Q1JJUFRTKQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdFVFMg PSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1y ZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3Rh bGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1s LXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJz aXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNo ZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBz LXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNy Y2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CisrYW1fX3ZwYXRo X2FkaiA9IGNhc2UgJCRwIGluIFwKKysgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBz ZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKysgICAgKikgZj0kJHA7OyBcCisrICBlc2Fj OworK2FtX19zdHJpcF9kaXIgPSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrbTRk YXRhREFUQV9JTlNUQUxMID0gJChJTlNUQUxMX0RBVEEpCisrcGtnY29uZmlnREFUQV9JTlNUQUxM ID0gJChJTlNUQUxMX0RBVEEpCisrREFUQSA9ICQobTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RB VEEpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xl YW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1y ZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9 ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykg JChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2Rpc3RkaXIgPSAkKFBBQ0tBR0UpLSQoVkVSU0lP TikKKyt0b3BfZGlzdGRpciA9ICQoZGlzdGRpcikKKythbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisr ICB7IHRlc3QgISAtZCAkKGRpc3RkaXIpIFwKKysgICAgfHwgeyBmaW5kICQoZGlzdGRpcikgLXR5 cGUgZCAhIC1wZXJtIC0yMDAgLWV4ZWMgY2htb2QgdSt3IHt9ICc7JyBcCisrICAgICAgICAgJiYg cm0gLWZyICQoZGlzdGRpcik7IH07IH0KKytESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIu Z3ogJChkaXN0ZGlyKS50YXIuYnoyCisrR1pJUF9FTlYgPSAtLWJlc3QKKytkaXN0dW5pbnN0YWxs Y2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CisrZGlzdGNsZWFuY2hlY2tf bGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAor K0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBA QVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisr Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZM QUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9 IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZM QUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9 IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAor K0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19U QAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBA CisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisr R1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisr TElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xA CisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpT QAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFH U0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAor K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RP T0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxA CisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisr U0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA CisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19j dF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVA CisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1f X3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAor K2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVp bGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9v c0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGly QAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytk aWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRv eHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytl eGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhv c3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAor K2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1s ZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBA aW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhf b2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9j YWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisr bHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisrQUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmlnCisrQVVUT01BS0VfT1BUSU9OUyA9IGRpc3Qt YnppcDIKKysKKysjICBURVNUX0RJUiA9IHRlc3QKKytNQU5fRE9DX0RJUiA9IG1hbgorKworKyMg TWFpbnRhaW5hbmNlIGZpbGVzCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBh Y2xvY2FsLm00IGNvbmZpZ3VyZSBcCisrCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0 b2dlbi5zaCBib290c3RyYXAKKysKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklM SVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmliCisrRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZID0gY29udHJpYgorK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24g JChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAorKworKyMg QnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6CisrU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAk KE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKKysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVy cworK2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZworK3BrZ2NvbmZpZ2RpciA9ICQobGli ZGlyKS9wa2djb25maWcKKytwa2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYworK200ZGF0YWRp ciA9ICQoZGF0YWRpcikvYWNsb2NhbAorK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrYWxs OiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorK2FtLS1yZWZyZXNoOgorKwlAOgorKyQo c3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87 IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRl cCopIFwKKysJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAn OyBcCisrCSAgICAgIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgXAorKwkJJiYg ZXhpdCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIE1ha2VmaWxlJzsg XAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgTWFrZWZp bGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5p biAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAq Y29uZmlnLnN0YXR1cyopIFwKKysJICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMn OyBcCisrCSAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXM7OyBcCisrCSAgKikgXAorKwkgICAg ZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo U0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVz YWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29u ZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCSQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAtLXJlY2hlY2sKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQorKwljZCAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKKyskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHNyY2RpcikgJiYgJChBQ0xPQ0FM KSAkKEFDTE9DQUxfQU1GTEFHUykKKytzb2NpLWNvbmZpZzogJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXMgJChzcmNkaXIpL3NvY2ktY29uZmlnLmluCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKKytzb2NpLnBjOiAkKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5wYy5pbgorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACisrc29jaS5zcGVjOiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5zcGVjLmluCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKKytpbnN0YWxsLWJpblNDUklQVFM6 ICQoYmluX1NDUklQVFMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGJpbmRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGJpbmRpcikiCisrCUBsaXN0PSckKGJpbl9T Q1JJUFRTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRo ZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgaWYgdGVzdCAtZiAkJGQkJHA7 IHRoZW4gXAorKwkgICAgZj1gZWNobyAiJCRwIiB8IHNlZCAnc3xeLiovfHw7JCh0cmFuc2Zvcm0p J2A7IFwKKysJICAgIGVjaG8gIiAkKGJpblNDUklQVF9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNU RElSKSQoYmluZGlyKS8kJGYnIjsgXAorKwkgICAgJChiaW5TQ1JJUFRfSU5TVEFMTCkgIiQkZCQk cCIgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9u ZQorKworK3VuaW5zdGFsbC1iaW5TQ1JJUFRTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlA bGlzdD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPWBlY2hv ICIkJHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSknYDsgXAorKwkgIGVjaG8gIiBybSAt ZiAnJChERVNURElSKSQoYmluZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChi aW5kaXIpLyQkZiI7IFwKKysJZG9uZQorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAt ZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworK2Rp c3RjbGVhbi1saWJ0b29sOgorKwktcm0gLWYgbGlidG9vbCBjb25maWcubHQKKytpbnN0YWxsLW00 ZGF0YURBVEE6ICQobTRkYXRhX0RBVEEpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16 ICIkKG00ZGF0YWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG00ZGF0YWRpcikiCisr CUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZj0k KGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChtNGRhdGFEQVRBX0lOU1RBTEwpICckJGQk JHAnICckKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiciOyBcCisrCSAgJChtNGRhdGFEQVRBX0lO U1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiI7IFwKKysJZG9uZQor KworK3VuaW5zdGFsbC1tNGRhdGFEQVRBOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlz dD0nJChtNGRhdGFfREFUQSknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPSQoYW1fX3N0 cmlwX2RpcikgXAorKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQobTRkYXRhZGlyKS8kJGYn IjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiI7IFwKKysJZG9uZQor K2luc3RhbGwtcGtnY29uZmlnREFUQTogJChwa2djb25maWdfREFUQSkKKysJQCQoTk9STUFMX0lO U1RBTEwpCisrCXRlc3QgLXogIiQocGtnY29uZmlnZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQocGtnY29uZmlnZGlyKSIKKysJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIk KHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAk KHBrZ2NvbmZpZ0RBVEFfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2Rp cikvJCRmJyI7IFwKKysJICAkKHBrZ2NvbmZpZ0RBVEFfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVT VERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2Nv bmZpZ0RBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2NvbmZpZ19E QVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisr CSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2djb25maWdkaXIpLyQkZiciOyBcCisrCSAg cm0gLWYgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmIjsgXAorKwlkb25lCisrCisrIyBU aGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlv dSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91 Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJp YWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlh YmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAg ICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVu IHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFs dWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgor KwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisr CSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49 bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc CisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisr CWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFp bCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7 IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc CisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBp biBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9T VUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAor KwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwK KysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBc CisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBm aTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAi JCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVj dXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNF UykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc CisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3Rh Z3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdz PTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12 ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRh Z3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVf b3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdT IHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3Vi ZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAi JChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1u ICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQk dW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19G SUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdT KSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NU QUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dU QUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYm IGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJl CisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCSQoYW1fX3JlbW92ZV9k aXN0ZGlyKQorKwl0ZXN0IC1kICQoZGlzdGRpcikgfHwgbWtkaXIgJChkaXN0ZGlyKQorKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBp biBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBz b3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc CisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisr CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkg ICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsg dGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRp cikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUg XAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3 ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdk YDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAg ICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAor KwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCS1maW5kICQoZGlzdGRp cikgLXR5cGUgZCAhIC1wZXJtIC03NzcgLWV4ZWMgY2htb2QgYStyd3gge30gXDsgLW8gXAorKwkg ICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1v IFwKKysJICAhIC10eXBlIGQgISAtcGVybSAtNDAwIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBc CisrCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKGluc3RhbGxfc2gpIC1jIC1tIGEr ciB7fSB7fSBcOyBcCisrCXx8IGNobW9kIC1SIGErciAkKGRpc3RkaXIpCisrZGlzdC1nemlwOiBk aXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9F TlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQor K2Rpc3QtYnppcDI6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8 IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIp CisrCisrZGlzdC1sem1hOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3Rh cikgfCBsem1hIC05IC1jID4kKGRpc3RkaXIpLnRhci5sem1hCisrCSQoYW1fX3JlbW92ZV9kaXN0 ZGlyKQorKworK2Rpc3QtdGFyWjogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFt X190YXIpIHwgY29tcHJlc3MgLWMgPiQoZGlzdGRpcikudGFyLloKKysJJChhbV9fcmVtb3ZlX2Rp c3RkaXIpCisrCisrZGlzdC1zaGFyOiBkaXN0ZGlyCisrCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9 JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6CisrCSQoYW1fX3JlbW92ZV9k aXN0ZGlyKQorKworK2Rpc3QtemlwOiBkaXN0ZGlyCisrCS1ybSAtZiAkKGRpc3RkaXIpLnppcAor Kwl6aXAgLXJxICQoZGlzdGRpcikuemlwICQoZGlzdGRpcikKKysJJChhbV9fcmVtb3ZlX2Rpc3Rk aXIpCisrCisrZGlzdCBkaXN0LWFsbDogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAk KGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negor Kwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRp cikudGFyLmJ6MgorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysKKysjIFRoaXMgdGFyZ2V0IHVu dGFycyB0aGUgZGlzdCBmaWxlIGFuZCB0cmllcyBhIFZQQVRIIGNvbmZpZ3VyYXRpb24uICBUaGVu CisrIyBpdCBndWFyYW50ZWVzIHRoYXQgdGhlIGRpc3RyaWJ1dGlvbiBpcyBzZWxmLWNvbnRhaW5l ZCBieSBtYWtpbmcgYW5vdGhlcgorKyMgdGFyZmlsZS4KKytkaXN0Y2hlY2s6IGRpc3QKKysJY2Fz ZSAnJChESVNUX0FSQ0hJVkVTKScgaW4gXAorKwkqLnRhci5neiopIFwKKysJICBHWklQPSQoR1pJ UF9FTlYpIGd1bnppcCAtYyAkKGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7O1wKKysJ Ki50YXIuYnoyKikgXAorKwkgIGJ1bnppcDIgLWMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9f dW50YXIpIDs7XAorKwkqLnRhci5sem1hKikgXAorKwkgIHVubHptYSAtYyAkKGRpc3RkaXIpLnRh ci5sem1hIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5aKikgXAorKwkgIHVuY29tcHJlc3Mg LWMgJChkaXN0ZGlyKS50YXIuWiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi5zaGFyLmd6KikgXAor KwkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hh ciA7O1wKKysJKi56aXAqKSBcCisrCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCisrCWVzYWMK KysJY2htb2QgLVIgYS13ICQoZGlzdGRpcik7IGNobW9kIGErdyAkKGRpc3RkaXIpCisrCW1rZGly ICQoZGlzdGRpcikvX2J1aWxkCisrCW1rZGlyICQoZGlzdGRpcikvX2luc3QKKysJY2htb2QgYS13 ICQoZGlzdGRpcikKKysJZGNfaW5zdGFsbF9iYXNlPWAkKGFtX19jZCkgJChkaXN0ZGlyKS9faW5z dCAmJiBwd2QgfCBzZWQgLWUgJ3MsXlteOlxcL106W1xcL10sLywnYCBcCisrCSAgJiYgZGNfZGVz dGRpcj0iJCR7VE1QRElSLS90bXB9L2FtLWRjLSQkJCQvIiBcCisrCSAgJiYgY2QgJChkaXN0ZGly KS9fYnVpbGQgXAorKwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRk Y19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAor KwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBkdmkgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKKysJ ICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwKKysJICAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIHVuaW5zdGFsbCBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5z dGFsbGNoZWNrX2Rpcj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICAgICBkaXN0dW5pbnN0 YWxsY2hlY2sgXAorKwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJ ICAmJiAoeyBcCisrCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRj X2Rlc3RkaXIiKSBcCisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElS PSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwgXAorKwkgICAgICAgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCisrCSAgICAgICAg ICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNo ZWNrOyBcCisrCSAgICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkg XAorKwkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgZGlzdCBcCisrCSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykgXAorKwkgICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrCisrCSQoYW1fX3JlbW92ZV9k aXN0ZGlyKQorKwlAKGVjaG8gIiQoZGlzdGRpcikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1 dGlvbjogIjsgXAorKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKysJICBzZWQgLWUgMWggLWUgMXMvLi89L2cgLWUgMXAg LWUgMXggLWUgJyQkcCcgLWUgJyQkeCcKKytkaXN0dW5pbnN0YWxsY2hlY2s6CisrCUBjZCAkKGRp c3R1bmluc3RhbGxjaGVja19kaXIpIFwKKysJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tf bGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCisrCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVz IGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCisrCSAgICAgICAgaWYgdGVzdCAtbiAiJChERVNU RElSKSI7IHRoZW4gXAorKwkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0 KSI7IFwKKysJICAgICAgICBmaSA7IFwKKysJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVja19s aXN0ZmlsZXMpIDsgXAorKwkgICAgICAgIGV4aXQgMTsgfSA+JjIKKytkaXN0Y2xlYW5jaGVjazog ZGlzdGNsZWFuCisrCUBpZiB0ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAorKwkgIGVjaG8g IkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7 IFwKKysJICBleGl0IDEgOyBcCisrCWZpCisrCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3Rm aWxlcykgfCB3YyAtbGAgLWVxIDAgXAorKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQg aW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAorKwkgICAgICAgJChkaXN0 Y2xlYW5jaGVja19saXN0ZmlsZXMpIDsgXAorKwkgICAgICAgZXhpdCAxOyB9ID4mMgorK2NoZWNr LWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAk KFNDUklQVFMpICQoREFUQSkKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisr aW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERF U1RESVIpJChtNGRhdGFkaXIpIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSI7IGRvIFwKKysJ ICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0 YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vy c2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDog dW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAk KEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3Rh bGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisr CSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5z dGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0 Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgor KwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2Ui CisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29s cyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBy bSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysK KytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisr CisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdf RElTVENMRUFOX0ZJTEVTKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRh Z3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1y ZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5z dGFsbC1kYXRhLWFtOiBpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1wa2djb25maWdEQVRBCisr CisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1h bTogaW5zdGFsbC1iaW5TQ1JJUFRTCisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVj dXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5z dGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKwor K21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAk KGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorKwktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0 b200dGUuY2FjaGUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFt OgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVu aW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBcCisrCXVuaW5zdGFsbC1tNGRhdGFE QVRBIHVuaW5zdGFsbC1wa2djb25maWdEQVRBCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0 cmlwCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gYW0tLXJlZnJlc2ggY2hlY2sgY2hl Y2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3Mt cmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwgZGlzdC1iemlwMiBcCisrCWRpc3QtZ3ppcCBkaXN0LWx6 bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXppcCBkaXN0Y2hlY2sgXAorKwlkaXN0Y2xlYW4g ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgXAorKwlk aXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBkdmkgZHZpLWFtIGh0bWwg XAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1iaW5T Q1JJUFRTIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0 YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1tNGRhdGFEQVRBIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3Rh bGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGlu c3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRv b2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxs IHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgXAorKwl1 bmluc3RhbGwtbTRkYXRhREFUQSB1bmluc3RhbGwtcGtnY29uZmlnREFUQQorKworK0BTRVRfTUFL RUAKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6CisrCXJtIC1yZiAkKERFU1RESVIp JChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0bWw6CisrCSQoTUFLRSkgLUMgZG9j IGRpc3QtaHRtbAorKworK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAorKwor K3NuYXBzaG90LXNyYzoKKysgICAgICAgICQoTUFLRSkgZGlzdCBkaXN0ZGlyPUBQQUNLQUdFX1RB Uk5BTUVALWBkYXRlICsiJVklbSVkImAKKysKKytzbmFwc2hvdC1odG1sOgorKwkkKE1BS0UpIC1D IGRvYyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLWBk YXRlICsiJVklbSVkImAKKysKKyt1cGxvYWQ6IHVwbG9hZC1zcmMgdXBsb2FkLWh0bWwKKysKKyt1 cGxvYWQtc3JjOiBkaXN0CisrCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtQFZF UlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuYnoyCisr CisrdXBsb2FkLWh0bWw6IGRpc3QtaHRtbAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RB Uk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1FQC1o dG1sLWRvYy1AVkVSU0lPTkAudGFyLmJ6MgorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBv ZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBz eXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQ T1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01h a2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSw0IEBACisrIyBNYW4gcGFnZXMKKyttYW5fTUFOUyA9IHNvY2kt Y29uZmlnLjEKKysKKytFWFRSQV9ESVNUID0gJChtYW5fTUFOUykKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmls ZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZp bGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDQx IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFr ZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3 aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytzdWJkaXIg PSBtYW4KKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4KKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2Fj bG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRl Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChh bV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xP Q0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURF UiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0K KytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK21hbjFkaXIgPSAkKG1hbmRpcikvbWFuMQor K2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChtYW4xZGlyKSIKKytOUk9GRiA9IG5yb2Zm CisrTUFOUyA9ICQobWFuX01BTlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNU X1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxA CisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisr QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9 IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVf TElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9P U1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVB TVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0g QEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJ QUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAK KytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1Rf VkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQ TU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQ RkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05G SUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytD UFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQ ID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hY RkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElS ID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5A CisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hP X1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JF UEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAK KytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJ TlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNU QUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBA SU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AK KytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9P TEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9C SlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FM X0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AK KytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZM QUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVE SVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAor K09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNM RV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NA CisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBP VE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tB R0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNL QUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9U QVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9W RVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVS TEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RH UkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9T VEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJ T04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVB U0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAK KytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19C VVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBA VVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBh YnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRk aXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2Rp ckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2Fj X2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVk ZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBh bV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJA CisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBi dWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxk X29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRk aXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAor K2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBA ZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAor K2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBA aG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVA CisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0 bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9 IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRl eF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKyts b2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAK KytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1r ZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZk aXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dy YW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGly QAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJA Cisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0 X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9w cmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRv cF9zcmNkaXJACisrCisrIyBNYW4gcGFnZXMKKyttYW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKytF WFRSQV9ESVNUID0gJChtYW5fTUFOUykKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKysk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZp Z3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAg ICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsg XAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBj ZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBtYW4vTWFrZWZpbGUnOyBcCisr CWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBtYW4vTWFrZWZp bGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5p biAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAq Y29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo U0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUp OzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKysk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFD TE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1s aWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxp YnMgX2xpYnMKKytpbnN0YWxsLW1hbjE6ICQobWFuMV9NQU5TKSAkKG1hbl9NQU5TKQorKwlAJChO T1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChtYW4xZGlyKSIgfHwgJChNS0RJUl9QKSAiJChE RVNURElSKSQobWFuMWRpcikiCisrCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFO UykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKKysJbDI9JyQobWFuX01BTlMpICQoZGlzdF9tYW5f TUFOUykgJChub2Rpc3RfbWFuX01BTlMpJzsgXAorKwlmb3IgaSBpbiAkJGwyOyBkbyBcCisrCSAg Y2FzZSAiJCRpIiBpbiBcCisrCSAgICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBcCisrCSAg ZXNhYzsgXAorKwlkb25lOyBcCisrCWZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3Qg LWYgJCRpOyB0aGVuIGZpbGU9JCRpOyBcCisrCSAgZWxzZSBmaWxlPSQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZXh0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCisrCSAgY2Fz ZSAiJCRleHQiIGluIFwKKysJICAgIDEqKSA7OyBcCisrCSAgICAqKSBleHQ9JzEnIDs7IFwKKysJ ICBlc2FjOyBcCisrCSAgaW5zdD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXFwuWzAtOWEtel0qJCQv LydgOyBcCisrCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBcCisr CSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgJyQodHJhbnNmb3JtKSdgLiQkZXh0OyBcCisrCSAg ZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRp bnN0JyI7IFwKKysJICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFk aXIpLyQkaW5zdCI7IFwKKysJZG9uZQorK3VuaW5zdGFsbC1tYW4xOgorKwlAJChOT1JNQUxfVU5J TlNUQUxMKQorKwlAbGlzdD0nJChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0 X21hbjFfTUFOUyknOyBcCisrCWwyPSckKG1hbl9NQU5TKSAkKGRpc3RfbWFuX01BTlMpICQobm9k aXN0X21hbl9NQU5TKSc7IFwKKysJZm9yIGkgaW4gJCRsMjsgZG8gXAorKwkgIGNhc2UgIiQkaSIg aW4gXAorKwkgICAgKi4xKikgbGlzdD0iJCRsaXN0ICQkaSIgOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwlmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICBleHQ9YGVjaG8gJCRpIHwgc2Vk IC1lICdzL14uKlxcLi8vJ2A7IFwKKysJICBjYXNlICIkJGV4dCIgaW4gXAorKwkgICAgMSopIDs7 IFwKKysJICAgICopIGV4dD0nMScgOzsgXAorKwkgIGVzYWM7IFwKKysJICBpbnN0PWBlY2hvICQk aSB8IHNlZCAtZSAncy9cXC5bMC05YS16XSokJC8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5z dCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAn JCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKG1h bjFkaXIpLyQkaW5zdCciOyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5z dCI7IFwKKysJZG9uZQorK3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUworK0NU QUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAg IGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hl Y2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoTUFOUykKKytpbnN0YWxsZGlyczoKKysJZm9yIGRp ciBpbiAiJChERVNURElSKSQobWFuMWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8 ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQorK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt YW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlA JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQor KworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChN QUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwK KysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBp bnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rp c3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3Rj bGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3Rj bGVhbi1nZW5lcmljCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRt bC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1h bTogaW5zdGFsbC1tYW4KKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0 YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEK KysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLWFtCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50 YWluZXItY2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTog ZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBt b3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczog cHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1tYW4KKysKKyt1 bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3Rh bGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xl YW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmlj IGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBp bmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwt ZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5m byBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKysJaW5zdGFsbC1w ZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1z dHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRh aW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBc CisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMQor KworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0 IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0 IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vc29jaS1j b25maWcuMQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9z b2NpLWNvbmZpZy4xCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDM5IEBACisrLlRIIFNPQ0kgMSAiMjggTWFyY2ggMjAwOSIKKysuU0ggTkFNRQorK3NvY2kt Y29uZmlnIC0gc2NyaXB0IHRvIGdldCB2ZXJzaW9uIG51bWJlciBhbmQgY29tcGlsZXIgZmxhZ3Mg b2YgdGhlIGluc3RhbGxlZCBTT0NJIGxpYnJhcnkKKysuU0ggU1lOT1BTSVMKKysuQiBzb2NpLWNv bmZpZworK1tcLVwtcHJlZml4XSAgW1wtXC12ZXJzaW9uXSBbXC1cLWxpYnNdIFtcLVwtY2ZsYWdz XQorKy5TSCBERVNDUklQVElPTgorKy5QUAorK1xmSXNvY2ktY29uZmlnXGZQIGlzIGEgdG9vbCB0 aGF0IGlzIHVzZWQgdG8gY29uZmlndXJlIHRvIGRldGVybWluZQorK3RoZSBjb21waWxlciBhbmQg bGlua2VyIGZsYWdzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gY29tcGlsZQorK2FuZCBsaW5rIHBy b2dyYW1zIHRoYXQgdXNlIFxmSVNPQ0lcZlAuIEl0IGlzIGFsc28gdXNlZCBpbnRlcm5hbGx5Cisr dG8gdGhlIC5tNCBtYWNyb3MgZm9yIEdOVSBhdXRvY29uZiB0aGF0IGFyZSBpbmNsdWRlZCB3aXRo IFxmSVNPQ0lcZlAuCisrLgorKy5TSCBPUFRJT05TCisrLmwKKytcZklzb2NpLWNvbmZpZ1xmUCBh Y2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKysuVFAgOAorKy5CICBcLVwtdmVyc2lvbgor K1ByaW50IHRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0 aGUgc3RhbmRhcmQgb3V0cHV0LgorKy5UUCA4CisrLkIgIFwtXC1saWJzCisrUHJpbnQgdGhlIGxp bmtlciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3Jh bSwgd2l0aCBjYmxhcworKy5UUCA4CisrLkIgIFwtXC1jZmxhZ3MKKytQcmludCB0aGUgY29tcGls ZXIgZmxhZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dy YW0uCisrLlRQIDgKKysuQiAgXC1cLXByZWZpeAorK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9u IHByZWZpeC4KKysuU0ggU0VFIEFMU08KKysuQlIgZ3RrLWNvbmZpZyAoMSksCisrLkJSIGdub21l LWNvbmZpZyAoMSkKKysuU0ggQ09QWVJJR0hUCisrQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMg QXJuYXVkCisrCisrUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1 dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCisrZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2Ug YW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLAorK3Byb3ZpZGVkIHRoYXQgdGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKKytib3Ro IHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIg aW4KKytzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24uCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svTkVXUyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL05F V1MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvTkVXUwkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSwzIEBACisrCisrKiBXZWQgTWFyIDI2IDIwMDkgUlBNIHJlbGVhc2UgZm9yIHZlcnNpb24gMy4w LjAKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxl LmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDkgQEAKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrIyMg U291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K KysKKytTVUJESVJTID0gQE1ZU1FMX0RJUlNAIEBQT1NUR1JFU1FMX0RJUlNAIEBPUkFDTEVfRElS U0AKKysKKytFWFRSQV9ESVNUID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2Vm aWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDU0NyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1 dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysK KysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRl bnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQ T1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQo ZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3Br Z2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0i JCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RB VEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5z dGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNU QUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NU X0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgor K1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlw bGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNk aXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJk aXIgPSBzb2NpL2JhY2tlbmRzCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5t NAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bv c3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVf ZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBc CisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NP TkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVB Tl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VU UyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1s LXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5z dGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0 bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1 cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxs Y2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJ cHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFu LXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytD VEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQo RElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisr QUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9D T05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9 IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NA CisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJ TEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19M SUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisr Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAor K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAor K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQ QAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytD WFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVG UyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisr RFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9f TkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVF WFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAK KytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytM VExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1Ag PSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJ RyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xE RkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05A CisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisr T0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVf T0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBA T1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZF UlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0Ug PSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQ QUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0Vf U1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9W RVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFS QVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JF U1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9T VEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NA CisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBA UkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VU X01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklF RCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAor K1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAK KythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2Rp ckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNk aXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hY ID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2lu Y2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2Rv dEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9f dW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRA CisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAK KytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAor K2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRp ciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2Rp ckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlw c19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9 IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hv c3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9 IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNs dWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hA CisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGly ID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGly ID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5k aXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRp ckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAor K3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGly ID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBz eXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3By ZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJA CisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWls ZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5p bgorK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJT QAorK0VYVFJBX0RJU1QgPSAKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6Cisr JChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAk PzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQk ZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRo ZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAg ZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIp ICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9NYWtlZmlsZQorKy5Q UkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcu c3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisr CWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3Ny Y2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6 CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGli cworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVw ZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBn b2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBg bWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlm IHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3Rh dHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5l cmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBk ZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9U QVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFH UzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkg ICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJ ZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29t PSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQk ZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFp bD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwlj YXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0 PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisr CWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIg JCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRh cmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAk JHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYm IHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQor K2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJT KSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1 bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElT UCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1p bmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29w dGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJ ICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBc CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRz dWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQk aGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlm IHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisr CSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRB R1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAg ICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1y ZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisr CQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQo Q1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlx dWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2Rg IFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBH UlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBp biBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBz b3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc CisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisr CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkg ICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsg dGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRp cikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUg XAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3 ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdk YDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAg ICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAor KwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1h bQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRp cnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorK2luc3RhbGw6IGlu c3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisr aW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3Rh bGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNr OiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFN X01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwK KysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFM TF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVj aG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisr bW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1n ZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENP TkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFu LWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0 Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKworK2R2aTog ZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKwor K2luZm86IGluZm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06 CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhl Yy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytp bnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFs bC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKwor K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTog bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVj dXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysK Kyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBI T05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFH UyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIFwKKysJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0 Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3Rk aXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0 YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0 YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5 Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAor Kwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisr IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9jb21tb24uY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTIy IDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiwxMyBAQAorIC8vCisgCisgI2lu Y2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlICJzb2NpLWJhY2tlbmQuaCIKKysvLworKyNpZiBk ZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv c29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNl bmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGNzdGRsaWI+CisgI2lu Y2x1ZGUgPGN0aW1lPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv TWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01h a2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAy Mjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysjIyBiYWNrZW5kcy9t eXNxbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKworK2lmIEhBVkVfTVlTUUwK KytsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfbXlzcWwubGEKKysKKytsaWJzb2NpX215c3FsX2xh X1NPVVJDRVM9ICQoYmNrX215c3FsX2hfc291cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykg CisrbGlic29jaV9teXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQorK2xpYnNvY2lf bXlzcWxfbGFfTElCQUREID0KKytsaWJzb2NpX215c3FsX2xhX0xERkxBR1MgPSBcCisrCSQoQk9P U1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3Br Z2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmgKKytlbmRpZgorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVf ZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsCisrZWxzZQorK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2Np X2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDk3ICswLDAgQEAKKy0j IFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5k IHRoZWlyIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVu dCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistTVlTUUxMSUJESVIgPSAt TC91c3IvbGliL215c3FsCistTVlTUUxMSUJTID0gLWxteXNxbGNsaWVudCAtbHoKKy1NWVNRTElO Q0xVREVESVIgPSAtSS91c3IvaW5jbHVkZS9teXNxbAorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1h a2VmaWxlIGlzIGluZGVwZW5kZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09N UElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZwor LUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAtZlBJQworLUlOQ0xVREVESVJTID0gLUkuLi8uLi9j b3JlICR7TVlTUUxJTkNMVURFRElSfQorLQorLQorLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5v IHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCistCXN0YW5kYXJkLXVz ZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5v IFwKKy0JY29tbW9uLm8KKy0KKy0KKy1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyBy b3ctaWQtcy5vIHNlc3Npb24tcy5vIFwKKy0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFy ZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50LXMubyBcCistCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZl Y3Rvci11c2UtdHlwZS1zLm8gY29tbW9uLXMubworLQorLQorLWxpYnNvY2lfbXlzcWwuYSA6ICR7 T0JKRUNUU30KKy0JYXIgcnYgJEAgJD8KKy0Jcm0gKi5vCistCistCistYmxvYi5vIDogYmxvYi5j cHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1j b21tb24ubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KKy0KKy1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNl c3Npb24ubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7 SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist Cistc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDog c3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVz ZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09N UElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9teXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5v CistCistYmxvYi1zLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQor LWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCist CSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0K Ky1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDog c3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRh cmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVj dG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAt YyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10 eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGli c29jaV9teXNxbC5hIGxpYnNvY2lfbXlzcWwuc28KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxl LmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgwNyBA QAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2Vm aWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysK KysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lO U1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BP U1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0 ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkg JChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGly KS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIg PSBzb2NpL2JhY2tlbmRzL215c3FsCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAor K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19D TEVBTl9GSUxFUyA9CisrYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGlu IFwKKysgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3Ry aXAvfHwiYDs7IFwKKysgICAgKikgZj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIg PSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKytsaWJMVExJ QlJBUklFU19JTlNUQUxMID0gJChJTlNUQUxMKQorK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJS QVJJRVMpCisrbGlic29jaV9teXNxbF9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX215 c3FsX2xhX1NPVVJDRVNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uaCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAg XAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBcCisrCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorK2FtX19vYmplY3RzXzEg PQorK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gbGlic29jaV9teXNx bF9sYS1jb21tb24ubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gbGlic29jaV9t eXNxbF9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gXAorKwls aWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5s byBcCisrCWxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvCisrQEhBVkVfTVlTUUxfVFJVRUBhbV9saWJzb2Np X215c3FsX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpIFwKKytASEFWRV9NWVNRTF9UUlVF QAkkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9saWJz b2NpX215c3FsX2xhX09CSkVDVFMpCisrbGlic29jaV9teXNxbF9sYV9MSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSBcCisrCSQobGlic29jaV9teXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisr QEhBVkVfTVlTUUxfVFJVRUBhbV9saWJzb2NpX215c3FsX2xhX3JwYXRoID0gLXJwYXRoICQobGli ZGlyKQorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIp L3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAor K2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAor KwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChD WFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERG TEFHUykgLW8gJEAKKytDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKysJJChDUFBGTEFHUykgJChBTV9DRkxBR1Mp ICQoQ0ZMQUdTKQorK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytDQ0xEID0gJChDQykKKytMSU5LID0gJChM SUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJ LS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykg XAorKwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VS Q0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNU KQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZp LXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJl Y3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZl IHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2Ft X19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKytwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJ TlNUQUxMX0hFQURFUikKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytF VEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK KytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNM T0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05G ID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBB VVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisr Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JP T1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9P U1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAor K0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0ND REVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAor K0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdT QAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBD UFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFgg PSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAor K0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9 IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVN UEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAK KytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRA CisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZM QUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytM SUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBA TUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9 IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxB R1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisr Tk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JK RVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBA UEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNL QUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RS SU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJT SU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRP UkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FM X0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdS RVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisr UE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFO TElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01B S0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQ TE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKyth YnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAK KythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIg PSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0g QGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1 ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAK KythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50 YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisr YnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKyti dWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1 aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9 IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAK Kytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19v ayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBn c19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3Rf Y3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBo b3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRl ZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisr bGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0g QGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0g QGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJA CisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAK KytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3Ni aW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0g QHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNj b25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZp eCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisr dG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRp cikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrCisrYmNrX215c3Fs X2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNw cAorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0 ZXN0CisrQEhBVkVfTVlTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX215c3FsLmxh CisrQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX1NPVVJDRVMgPSAkKGJja19teXNx bF9oX3NvdXJjZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAorK0BIQVZFX01ZU1FMX1RSVUVA bGlic29jaV9teXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQorK0BIQVZFX01ZU1FM X1RSVUVAbGlic29jaV9teXNxbF9sYV9MSUJBREQgPSAKKytASEFWRV9NWVNRTF9UUlVFQGxpYnNv Y2lfbXlzcWxfbGFfTERGTEFHUyA9IFwKKytASEFWRV9NWVNRTF9UUlVFQAkkKEJPT1NUX0xJQlMp ICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisr QEhBVkVfTVlTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O KQorKworK0BIQVZFX01ZU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVE X0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19C VVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzog LmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5t ayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNl ICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAg KCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBi cmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsg XAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAg JChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxp Yl9MVExJQlJBUklFUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGly KSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xU TElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0 aGVuIFwKKysJICAgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgICBlY2hvICIgJChMSUJUT09M KSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGli TFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RE SVIpJChsaWJkaXIpLyQkZiciOyBcCisrCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxM KSAkKElOU1RBTExfU1RSSVBfRkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsg XAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklF UzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7 IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNo byAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCisrCSAgJChMSUJU T09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwg cm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRwIjsgXAorKwlkb25lCisrCisrY2xlYW4tbGli TFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQo bGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4g JCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdg IjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJt IC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19s b2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxf bGFfT0JKRUNUUykgJChsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29j aV9teXNxbF9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9t eXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCisrCisr bW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFu LWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3Rvcnku UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9s YS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBs b0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAK KytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9f cXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUp IC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8g JEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRI X1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8g JChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86Cisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYg JChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAt ZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNv Y2lfbXlzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X215c3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt YmxvYi5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlRwbyAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxv Yi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xh LWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9i LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlz cWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS1jb21tb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwJyBvYmplY3Q9 J2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21t b24uY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX215c3Fs X2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLWZhY3RvcnkuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9y eS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3Rvcnku Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvZmFjdG9yeS5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9t eXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLXJvdy1pZC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAnIG9iamVj dD0nbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jv dy1pZC5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlz cWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyBv YmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNz aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lv bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zZXNzaW9uLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xh LXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3Rh bmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu VHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lf bXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQt dXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJzb2NpX215 c3FsX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAnIG9iamVj dD0nbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVt ZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVt ZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9t eXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVj dG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3It aW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfbXlz cWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJz b2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXZlY3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9s YS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK21vc3Rs eWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJt IC1yZiAubGlicyBfbGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVk ZV9IRUFERVJTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRl ZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0 PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGY9 JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFM TCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgJChw a2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgor KwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hv ICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgcm0gLWYg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworKyMgVGhpcyBk aXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2Fu IGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRo aXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVz OiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBp cyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3 aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3Ug cnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBv biB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkg IGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0 ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisr CisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAor KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFp bCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBU QUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwK KysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lv bikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWlu Y2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlv bj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBc CisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9U QUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRB R1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1 bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1 ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisr CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRh Z3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZM QUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoK KysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAk KHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKwor K2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BB VEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAg IGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8 fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwK KysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRv cF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNk ICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAg ICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRk aXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tp cF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0 IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVj ay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr CWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBc CisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1h bQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0 YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwt c3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2Vu ZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJB UklFUyBjbGVhbi1saWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRp c3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZp bGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytk dmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2 ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxj aGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2 ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vy c2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFS SUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFs bC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRp c3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBp bnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1o dG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5z dGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwt cGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAor Kwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9N QUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCTIwMDktMDUtMjMgMTM6Mzc6 MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv bXlzcWwvc29jaS1teXNxbC5oCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitA QCAtMjMsMTIgKzIzLDIzIEBACisgI2lmbmRlZiBTT0NJX01ZU1FMX0RFQ0wKKyAjIGRlZmluZSBT T0NJX01ZU1FMX0RFQ0wKKyAjZW5kaWYKKy0KKy0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCisr Ly8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tl bmQuaD4KKysjZW5kaWYKKysvLworICNpZmRlZiBfV0lOMzIKKyAjaW5jbHVkZSA8d2luc29jay5o PiAvLyBTT0NLRVQKKyAjZW5kaWYgLy8gX1dJTjMyCistI2luY2x1ZGUgPG15c3FsLmg+IC8vIE15 U1FMIENsaWVudAorKy8vCisrLy8gTXlTUUwgQ2xpZW50CisrI2lmIGRlZmluZWQoU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsLmg+CisrI2Vs c2UKKysjCWluY2x1ZGUgPG15c3FsLmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAK KyAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJj ZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAw MDAgKzAyMDAKK0BAIC0wLDAgKzEsMTQgQEAKKytiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKytiY2tf bXlzcWxfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvY29tbW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5 cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4w MDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICsw MjAwCitAQCAtOCw4ICs4LDE0IEBACisgCisgI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQorICNp bmNsdWRlICJzb2NpLW15c3FsLmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKyAjaW5j bHVkZSAiY29tbW9uLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQor KyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KKysjZWxzZQorKyMJ aW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282 NDY+CisgI2luY2x1ZGUgPGNhc3NlcnQ+CisgI2luY2x1ZGUgPGN0aW1lPgorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3Bw CTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEyIEBACisg I2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2lu Y2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYg ZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3NvY2ktcGxhdGZvcm0uaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgor KyNlbmRpZgorIC8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZp bGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmls ZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNS0y MiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTggQEAKKysjIyBiYWNrZW5k L215c3FsL3Rlc3Qgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK2lmIFJVTl9URVNUUworKyAgbm9pbnN0X1BST0dS QU1TID0gdGVzdF9teXNxbAorK2VuZGlmCisrCisrdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNx bF90ZXN0X2NjX3NvdXJjZXMpCisrdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdT KQorK3Rlc3RfbXlzcWxfTERBREQgPQorK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5sYSBcCisrCQkkKE1ZU1FMX0xERkxB R1MpCisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3Vy Y2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsMjIg KzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMg YmFja2VuZCBhbmQgdGhlaXIgY29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3Vy IGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1NWVNR TExJQkRJUiA9IC1ML3Vzci9saWIvbXlzcWwKKy1NWVNRTExJQlMgPSAtbG15c3FsY2xpZW50IC1s egorLU1ZU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCistCistIyBUaGUgcmVz dCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVu dC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8t bG9uZy1sb25nCistSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAke01ZU1FMSU5D TFVERURJUn0KKy1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtNWVNRTExJQkRJUn0K Ky1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX215c3FsIC1sZGwgJHtNWVNRTExJQlN9CistCist CistdGVzdC1teXNxbCA6IHRlc3QtbXlzcWwuY3BwCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFu IDoKKy0Jcm0gLWYgdGVzdC1teXNxbAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSw1MjQgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEw LjIgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmln aHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRl ZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytA U0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIp L0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRl ZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9W RVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChp bnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gp IC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFE RVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25h bWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxM ID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VO SU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBo b3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtl ZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwkKEVY RUVYVCkKKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QKKytBQ0xPQ0FMX000ID0g JCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlz cWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmln dXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENP TkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMg PSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2Np L2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0X1BS T0dSQU1TKQorK2FtX19vYmplY3RzXzEgPSB0ZXN0X215c3FsLXRlc3QtbXlzcWwuJChPQkpFWFQp CisrYW1fdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rlc3RfbXlzcWxf T0JKRUNUUyA9ICQoYW1fdGVzdF9teXNxbF9PQkpFQ1RTKQorK3Rlc3RfbXlzcWxfREVQRU5ERU5D SUVTID0KKyt0ZXN0X215c3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgJCh0ZXN0 X215c3FsX0NYWEZMQUdTKSBcCisrCSQoQ1hYRkxBR1MpICQodGVzdF9teXNxbF9MREZMQUdTKSAk KExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRv cF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZp Zy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxFID0g JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhD T01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1v ZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1Mp IFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKHRlc3RfbXlzcWxfU09VUkNFUykK KytESVNUX1NPVVJDRVMgPSAkKHRlc3RfbXlzcWxfU09VUkNFUykKKytFVEFHUyA9IGV0YWdzCisr Q1RBR1MgPSBjdGFncworK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VT KSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFS ID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFE RVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAor K0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBC T09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVT WVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAK KytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9 IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9S RUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1Rf VEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04g PSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NF UklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisr Q0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAor K0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQ UFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9W RVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhD UFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAor K0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBE SVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9f QyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VH UkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9 IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9E QVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJ UFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExf U1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JK UyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQ TyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01B S0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5N RURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVf RElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NG TEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNM RV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisr T1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JF UE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1F QAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9 IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAK KytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdf Q09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NG TEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxf TERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBP U1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQ TV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwg PSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAor K1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAK KytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9D T01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxk ZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFi c190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNf Y3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1Q QklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1f X2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3Rl QAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRp ciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxp YXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKyti dWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2Rh dGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29r ID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5f b2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3By ZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisr aG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rf b3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0g QGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2Rp ckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisr bGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGly ID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNI TyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAor K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3By ZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRf b2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2Rp ciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAor K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrbXlz cWxfdGVzdF9oX3NvdXJjZXMgPSAKKytteXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKyt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rl c3RfY2Nfc291cmNlcykKKyt0ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisr dGVzdF9teXNxbF9MREFERCA9IAorK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5sYSBcCisrCQkkKE1ZU1FMX0xERkxBR1Mp CisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAu byAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJ ICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsg fTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVU T01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKytjbGVhbi1ub2luc3RQUk9HUkFNUzoKKysJ QGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9 YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJICBlY2hvICIgcm0gLWYgJCRw ICQkZiI7IFwKKysJICBybSAtZiAkJHAgJCRmIDsgXAorKwlkb25lCisrdGVzdF9teXNxbCQoRVhF RVhUKTogJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9ERVBFTkRFTkNJRVMpIAor KwlAcm0gLWYgdGVzdF9teXNxbCQoRVhFRVhUKQorKwkkKHRlc3RfbXlzcWxfTElOSykgJCh0ZXN0 X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNs ZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxl OgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG9AYW1fX3F1b3RlQAorKwor Ky5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisr LmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8k Ki5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2Jq ZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUp IC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8k Ki5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X215c3FsLXRlc3Qt bXlzcWwubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlz cWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyAtTUQg LU1QIC1NRiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215 c3FsLXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQ RElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qv dGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm8nIGxpYnRvb2w9 bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvdGVzdC1teXNxbC5jcHAKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogLU1EIC1NUCAtTUYgJChE RVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15 c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAn JChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwuY3BwJzsgZmlgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0 X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9t eXNxbC10ZXN0LW15c3FsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g dGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBl bHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoK KysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJz CisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykg JChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16 ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3Mg JCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xl YW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK KysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1g ZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisr CWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJp cC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRp cikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9Q KSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0 ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBc CisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxl IHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJ ICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxl IiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIg JChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsg XAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAor KwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisr YWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGlu c3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTog aW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFt OiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwt c3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2Vu ZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVh bi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9p bnN0UFJPR1JBTVMgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFu LWFtCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRp c3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRt bC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1h bToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06 CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGlu c3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxs LXBkZi1hbQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2st YW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJm IC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0 bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFt CisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1h bToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFH UyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAor KwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisr CWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwK KysJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGlu Zm8tYW0gXAorKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1h bSBpbnN0YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0 YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBp bnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBp bnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9z dGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBw cy1hbSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25v ZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQorKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDIgQEAKKytteXNxbF90ZXN0X2hfc291cmNlcyA9CisrbXlzcWxfdGVzdF9jY19z b3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvdGVzdC1teXNxbC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC90ZXN0LW15c3FsLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCAr MDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDkg KzYsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgLy8K KyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCistI2luY2x1 ZGUgInRlc3QvY29tbW9uLXRlc3RzLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGlu Y2x1ZGUgPHNvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oPgorKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNv Y2kuaD4KKysjCWluY2x1ZGUgPHNvY2ktbXlzcWwuaD4KKysjICAgICAgIGluY2x1ZGUgPHRlc3Qv Y29tbW9uLXRlc3RzLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8aW9zdHJlYW0+CisgI2lu Y2x1ZGUgPHNzdHJlYW0+CisgI2luY2x1ZGUgPHN0cmluZz4KK0BAIC0xOCw4ICsyNiwxNCBAQAor ICNpbmNsdWRlIDxjdGltZT4KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y3N0ZGxp Yj4KKy0jaW5jbHVkZSA8bXlzcWxkX2Vycm9yLmg+CistI2luY2x1ZGUgPGVycm1zZy5oPgorKy8v IE15U1FMIENsaWVudAorKyNpZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCisr IyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNxbGRfZXJyb3IuaD4KKysjICAgICAgIGluY2x1ZGUg PG15c3FsL2Vycm1zZy5oPgorKyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxteXNxbGRfZXJyb3Iu aD4KKysjICAgICAgIGluY2x1ZGUgPGVycm1zZy5oPgorKyNlbmRpZgorIAorIHVzaW5nIG5hbWVz cGFjZSBzb2NpOworIHVzaW5nIG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10 eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDkt MDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisgI2RlZmlu ZSBTT0NJX01ZU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUg ImNvbW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVmaW5l ZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kt cGxhdGZvcm0uaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRp ZgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUu Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIw MDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEyIEBACisgI2Rl ZmluZSBTT0NJX01ZU1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1 ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVm aW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Nv Y2ktcGxhdGZvcm0uaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNl bmRpZgorIC8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDA5LTA1LTIzIDEzOjM3 OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAg LTcsNyArNywxMyBAQAorIAorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorICNpbmNsdWRlICJl cnJvci5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+ CisrI2Vsc2UKKysjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1 ZGUgPGNzdHJpbmc+CisgI2luY2x1ZGUgPHNzdHJlYW0+CisgI2luY2x1ZGUgPGNzdGRpbz4KK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5h bSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0KKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwyNyBAQAorKyMjIGJhY2tlbmRzL29yYWNsZSBzdWItZGly ZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUg JChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKworK2lmIEhBVkVfT1JBQ0xFCisrbGliX0xUTElC UkFSSUVTPSBsaWJzb2NpX29yYWNsZS5sYQorKworK2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVM9 ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytsaWJz b2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrbGlic29jaV9v cmFjbGVfbGFfTElCQUREID0KKytsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTID0gXAorKwkkKEJP T1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNf TElCKSBcCisrCSQoT1JBQ0xFX09DSV9MREZMQUdTKSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5F UklDX0xJQlJBUllfVkVSU0lPTikKKysKKytub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrZW5kaWYKKytp ZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFz aWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJhc2lj CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFz aWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDk1ICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcg dmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAorLSMg dmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNl dCBpdCBhY2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNyL2xpYi9vcmFj bGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVibGljCistCist IyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBl bnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFu dGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5D TFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtPUkFDTEVJTkNMVURFRElSfQorLQorLU9CSkVDVFMg PSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUu byBcCistCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5v IHZlY3Rvci11c2UtdHlwZS5vIFwKKy0JZXJyb3IubworLQorLU9CSkVDVFNTTyA9IGJsb2Itcy5v IGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1pbnRvLXR5 cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9yLWlu dG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBlcnJvci1zLm8KKy0KKy1saWJzb2NpX29y YWNsZS5hIDogJHtPQkpFQ1RTfQorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0KKy1zb2NpLW9y YWNsZS5vIDogc29jaS1vcmFjbGUuY3BwIAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQkKKy1ibG9iLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWVycm9yLm8gOiBlcnJvci5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0 b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3Rh bmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUu byA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRv LXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNl LXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 CistCistCistc2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8g bGlic29jaV9vcmFjbGUuc28gJHtPQkpFQ1RTU099CistCXJtICoubworLQorLWJsb2Itcy5vIDog YmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQorLQorLWVycm9yLXMubyA6IGVycm9yLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS1zLm8gOiBmYWN0 b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9CistCistcm93LWlkLXMubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8g JEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24tcy5vIDogc2Vz c2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQor LXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLXMubyA6 IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVz ZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5D TFVERURJUlN9CistCistCistY2xlYW4gOgorLQlybSAtZiAqLm8gbGlic29jaV9vcmFjbGUuYSBs aWJzb2NpX29yYWNsZS5zbworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTIwMDkt MDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgxMSBAQAorKyMgTWFr ZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgor KyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5 NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIw MDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMg VGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFU SCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJ T04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3Rh bGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMK KytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9 ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkK KytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6 CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNU QUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RA CisrRElTVF9DT01NT04gPSAkKGFtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpIFwK KysJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3Jj ZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0g c29jaS9iYWNrZW5kcy9vcmFjbGUKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0 Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf cG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3Vy ZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMp IFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisr Q09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NM RUFOX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4g XAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJp cC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9 IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFsbGRpcnMgPSAiJChE RVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorK2xpYkxUTElC UkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJB UklFUykKKytsaWJzb2NpX29yYWNsZV9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX29y YWNsZV9sYV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Vycm9yLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nv Y2ktb3JhY2xlLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2Iu Y3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKKysJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorK2Ft X19vYmplY3RzXzEgPQorK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxv IGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtZmFjdG9y eS5sbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1z ZXNzaW9uLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwK KysJbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAorKwlsaWJzb2NpX29y YWNsZV9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10 eXBlLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvCisrQEhBVkVf T1JBQ0xFX1RSVUVAYW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNf MSkgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9vcmFj bGVfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykKKytsaWJzb2Np X29yYWNsZV9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp IFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfb3JhY2xlX2xh X0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2Np X29yYWNsZV9sYV9ycGF0aCA9IC1ycGF0aCAkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0g LUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwp ICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBm aWxlcworK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykg JChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkK KytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hY RkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQo Q0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAk KExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAor KwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxB R1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9D RkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NP VVJDRVMgPSAkKGxpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0gJChh bV9fbGlic29jaV9vcmFjbGVfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0g YWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVj dXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1y ZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2 ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVj ay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1y ZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFE RVJTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2kt b3JhY2xlLmgKKytub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoaW5zdGFsbF9z aF9EQVRBKQorK0hFQURFUlMgPSAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytF VEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK KytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNM T0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05G ID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBB VVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisr Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JP T1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9P U1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAor K0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0ND REVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAor K0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdT QAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBD UFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFgg PSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAor K0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9 IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVN UEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAK KytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRA CisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZM QUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytM SUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBA TUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9 IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxB R1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisr Tk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JK RVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBA UEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNL QUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RS SU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJT SU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRP UkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FM X0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdS RVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisr UE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFO TElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01B S0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQ TE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKyth YnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAK KythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIg PSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0g QGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1 ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAK KythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50 YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisr YnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKyti dWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1 aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9 IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAK Kytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19v ayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBn c19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3Rf Y3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBo b3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRl ZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisr bGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0g QGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0g QGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJA CisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAK KytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3Ni aW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0g QHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNj b25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZp eCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisr dG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRp cikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrCisrYmNrX29y YWNsZV9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Vycm9yLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBl LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci11c2UtdHlwZS5jcHAKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr U1VCRElSUyA9IC4gdGVzdAorK0BIQVZFX09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxp YnNvY2lfb3JhY2xlLmxhCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09V UkNFUyA9ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAK KytASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xF X09DSV9DRkxBR1MpCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQURE ID0gCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKKytA SEFWRV9PUkFDTEVfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNM RV9PQ0lfTERGTEFHUykgXAorK0BIQVZFX09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2lu Y2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAk KGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQorK2FsbDogYWxsLXJlY3Vyc2l2 ZQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2Rp cikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisr CUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBp biBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYg dGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4 aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2Rp cikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlJzsg XAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9i YWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6 ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlA Y2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAq KSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQ RU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJQCQoTk9S TUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGY9JChhbV9fc3Ry aXBfZGlyKSBcCisrCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJ TlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisr CSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykg IiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJ ZG9uZQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFM TCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAor KwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RE SVIpJChsaWJkaXIpLyQkcCciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRp cikvJCRwIjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16 ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlz dD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJg ZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAh PSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlv bnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKyts aWJzb2NpX29yYWNsZS5sYTogJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9vcmFjbGVfbGFfTElOSykgJChh bV9saWJzb2NpX29yYWNsZV9sYV9ycGF0aCkgJChsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBp bGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0g LWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LWVycm9yLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAK KytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlBs b0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAor KworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Cisr CisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRA IC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwn YAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX29yYWNs ZV9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFj bGVfbGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxv Yi5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5UcG8gJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv YmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAor K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3Jh Y2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvYmxvYi5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvIC1jIC1vIGxp YnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlRwbyAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt ZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJy b3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Vycm9yLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5Lmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlRwbyAtYyAt byBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlRwbyAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9mYWN0b3J5LmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfb3Jh Y2xlX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ct aWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9vcmFjbGVfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xh LXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKKysKKyts aWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc2Vz c2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNz aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXNlc3Npb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAnIG9iamVj dD0nbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFj bGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Np b24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lv bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10 eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt aW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQt dXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29y YWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRl bWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50 LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQuUGxv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX29y YWNsZV9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xl X2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rv ci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRv LXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlBs bworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12 ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrCisrbGli c29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5U cG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBl LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LXVzZS10eXBlLmNwcAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisr CisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbm9iYXNl X3BrZ2luY2x1ZGVIRUFERVJTOiAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpCisrCUAkKE5P Uk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1Ap ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKysJQCQoYW1fX3ZwYXRoX2Fkal9zZXR1cCkg XAorKwlsaXN0PSckKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rpcikv IjsgZmk7IFwKKysJICAkKGFtX192cGF0aF9hZGopIFwKKysJICBlY2hvICIgJChub2Jhc2VfcGtn aW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpLyQkZiciOyBcCisrCSAgJChub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQk ZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3Vu aW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwp CisrCUAkKGFtX192cGF0aF9hZGpfc2V0dXApIFwKKysJbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVk ZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgICQoYW1fX3ZwYXRoX2Fkaikg XAorKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwK KysJICBybSAtZiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlkb25lCisr CisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRl bnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5n IHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtl JyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhl IHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMn CisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRl ZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2ly ZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdF VFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBk byBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAq ayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90 X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAor KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25l OyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXog IiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4 aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGlu IFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXll cyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2Ug IiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQo RElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNh YzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJl diI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0 PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2 OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwK KysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAk JGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVz dCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAk JHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3Rh Z3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQo U09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1 ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09V UkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQor Kwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1 ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9u PS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGlu Y2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRp ci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJl LyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7 IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0sp ICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAo bm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVz dCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0 ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykg JChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0 YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFH U19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAk KEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQor KworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAor KwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykg JCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFH UyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJz dHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK KysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxl cz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQg LWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJz dHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwK KysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2Vk ICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQg LXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJ ICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0k KHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAg IGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBp ZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVu IFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4 aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikk JGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8k JGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisr CSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCWxpc3Q9JyQoRElTVF9TVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8 IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsg XAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBc CisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBk aXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwK KysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAg ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisr Y2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykg JChIRUFERVJTKQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxs ZGlycy1hbToKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1Ap ICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFs bC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZl CisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBg dGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9 U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysK KytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKytt YWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5k ZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhh dCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisr Y2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rp c3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1y bSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUg ZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vy c2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2luZm86IGlu Zm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKwor K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRm OiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vy c2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtl ZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFu LWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9z dGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisr CW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06 CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5p bnN0YWxsLWxpYkxUTElCUkFSSUVTIFwKKysJdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVB REVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAor KwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVh bi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisr CWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3Rj bGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJ aHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisr CWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMg XAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxs LWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxs LW1hbiBcCisrCWluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcGRmIGlu c3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAg aW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJz LWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2 ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVu aW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAw MDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c29jaS1vcmFjbGUuaAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTIy LDkgKzIyLDE0IEBACisgI2lmbmRlZiBTT0NJX09SQUNMRV9ERUNMCisgIyBkZWZpbmUgU09DSV9P UkFDTEVfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKy0jaW5j bHVkZSA8b2NpLmg+IC8vIE9DSQorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklF RCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQor KyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8b2Np Lmg+IC8vIE9DSSAoT3JhY2xlIGNsaWVudCkKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorICNpZmRl ZiBfTVNDX1ZFUgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nv dXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3Vy Y2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1 NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTQgQEAKKytiY2tfb3JhY2xlX2hfc291 cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJy b3IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2kt b3JhY2xlLmgKKytiY2tfb3JhY2xlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh dGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAw OS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDEwICs3LDE4IEBACisgCisg I2RlZmluZSBTT0NJX09SQUNMRV9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0j aW5jbHVkZSAiYmxvYi5oIgorICNpbmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJyb3dpZC5o IgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVS U19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv c3RhdGVtZW50Lmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAg IGluY2x1ZGUgPHJvd2lkLmg+CisrIyAgICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5k aWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVk ZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3 OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAw MDAgKzAyMDAKK0BAIC03LDEwICs3LDE4IEBACisgCisgI2RlZmluZSBzb2NpX09SQUNMRV9TT1VS Q0UKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiYmxvYi5oIgorICNpbmNs dWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQu aCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lk Lmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+CisrI2Vsc2UKKysj ICAgICAgIGluY2x1ZGUgPGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrIyAg ICAgICBpbmNsdWRlIDxzdGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5 cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAkyMDA5LTA1 LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAw MDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisgCisgI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgi CisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKy8vCisr I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+ CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+Cisg I2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwyMiBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisr TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK2lmIEhBVkVfT1JBQ0xFCisr ICBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisrCisraWYgUlVOX1RFU1RTCisrICBub2luc3Rf UFJPR1JBTVMgPSAkKFRFU1RfT1JBQ0xFKQorK2VuZGlmCisrCisrdGVzdF9vcmFjbGVfU09VUkNF UyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQo Qk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK3Rlc3Rfb3JhY2xlX0xEQUREID0K Kyt0ZXN0X29yYWNsZV9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2Np X2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv bGlic29jaV9vcmFjbGUubGEgXAorKwkJJChPUkFDTEVfT0NJX0xERkxBR1MpCisrZW5kaWYKKysK Kysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv TWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZp bGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDIzICsw LDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNr ZW5kIGFuZCBpdHMgY29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmly b25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJTkNM VURFRElSID0gLUkvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9z ZXJ2ZXIvcmRibXMvcHVibGljIAorLU9SQUNMRUxJQkRJUiA9IC1ML3Vzci9saWIvb3JhY2xlL3hl L2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAvc2VydmVyL2xpYiAKKy1PUkFDTEVMSUJTID0gLWxj bG50c2ggLWxubnoxMAorLQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50 ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhG TEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gLUku LiAtSS4uLy4uLy4uL2NvcmUgLUkuLi8uLi8uLi9jb3JlL3Rlc3QgJHtPUkFDTEVJTkNMVURFRElS fQorLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke09SQUNMRUxJQkRJUn0KKy1MSUJT ID0gLWxzb2NpX2NvcmUgLWxzb2NpX29yYWNsZSAtbGRsIC1sYm9vc3RfZGF0ZV90aW1lICR7T1JB Q0xFTElCU30KKy0KKy0KKy10ZXN0LW9yYWNsZSA6IHRlc3Qtb3JhY2xlLmNwcCAKKy0jLi4vLi4v Li4vY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoK Ky0Jcm0gLWYgKi5vIHRlc3Qtb3JhY2xlCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSw1MjggQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFr ZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBD b3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91 dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysK KysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBl cm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4K KysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRh dGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dp bmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQk e1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRB ID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3Rh bGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFM TF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNm b3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9J TlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQ T1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxl dCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGly KS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCisrQEhBVkVfT1JBQ0xFX1RSVUVAQFJVTl9URVNUU19UUlVFQG5vaW5zdF9Q Uk9HUkFNUyA9ICQoYW1fX0VYRUVYVF8xKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9j YWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00 ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9f YWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FM X000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytA SEFWRV9PUkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEgPSB0ZXN0X29yYWNsZSQoRVhFRVhUKQorK1BS T0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElT VCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAKKythbV9fb2JqZWN0c18xID0gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuJChPQkpF WFQpCisrQEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVzdF9vcmFjbGVfT0JKRUNUUyA9ICQoYW1fX29i amVjdHNfMSkKKyt0ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV90ZXN0X29yYWNsZV9PQkpFQ1RT KQorK3Rlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9CisrdGVzdF9vcmFjbGVfTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAt LW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSBcCisrCSQoQ1hYRkxB R1MpICQodGVzdF9vcmFjbGVfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFVTFRfSU5D TFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0g JChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXli ZSA9IGRlcGZpbGVzCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9 ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFH UykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VS Q0VTID0gJCh0ZXN0X29yYWNsZV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX3Rlc3Rf b3JhY2xlX1NPVVJDRVNfRElTVCkKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJ U1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVY VFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0g QEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAK KytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBC T09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElC QAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NU X0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJP T1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lH TkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09T VF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAK KytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAor K0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AK KytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0g QENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQ UFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRf VkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9 IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQ QVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBA RFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNI T19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VY RUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwg PSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytM RCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJ QlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1Mg PSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZP QAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAor K01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJT QAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1Z 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 LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrb3JhY2xlX3Rlc3RfaF9zb3VyY2Vz ID0gCisrb3JhY2xlX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCisrQEhBVkVfT1JBQ0xFX1RSVUVAVEVTVF9PUkFDTEUgPSB0ZXN0X29yYWNsZQor K0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9yYWNsZV90ZXN0X2Nj X3NvdXJjZXMpCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfQ1hYRkxBR1MgPSAkKEJP T1NUX0NGTEFHUykgJChPUkFDTEVfT0NJX0NGTEFHUykKKytASEFWRV9PUkFDTEVfVFJVRUB0ZXN0 X29yYWNsZV9MREFERCA9IAorK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xERkxBR1Mg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKytASEFW RV9PUkFDTEVfVFJVRUAJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJz b2NpX29yYWNsZS5sYSBcCisrQEhBVkVfT1JBQ0xFX1RSVUVACQkkKE9SQUNMRV9PQ0lfTERGTEFH UykKKysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxv IC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9f Y29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAor KwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZp OyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQo QVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlCisrLlBS RUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5z dGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJ ZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000 KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrY2xlYW4tbm9pbnN0UFJPR1JBTVM6 CisrCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBmPWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisrCSAgZWNobyAiIHJtIC1m ICQkcCAkJGYiOyBcCisrCSAgcm0gLWYgJCRwICQkZiA7IFwKKysJZG9uZQorK3Rlc3Rfb3JhY2xl JChFWEVFWFQpOiAkKHRlc3Rfb3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFjbGVfREVQRU5ERU5D SUVTKSAKKysJQHJtIC1mIHRlc3Rfb3JhY2xlJChFWEVFWFQpCisrCSQodGVzdF9vcmFjbGVfTElO SykgJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAkKHRlc3Rfb3JhY2xlX0xEQUREKSAkKExJQlMpCisr CisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNs ZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvQGFt X19xdW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElM RSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJ TEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BB VEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRw byAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1N RiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X29yYWNs ZS10ZXN0LW9yYWNsZS5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9y YWNsZS5UcG8gLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNs ZS5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9 J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUuY3BwCisrCisrdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikv dGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl Lm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykg JyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwJzsgZmlgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90 ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3Jh Y2xlLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVj dD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhl biAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90 ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKysKKytt b3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6Cisr CS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElT UCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdT CisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwK KysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc CisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25l IHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4g OjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsg XAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NU QUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkk KFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RB R1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykg JChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUK KysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwK KysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1Mp ICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRB R1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGly c3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc CisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmls ZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2Vk IC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGly c3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBc CisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNl ZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0 IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisr CSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9 JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAg ICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBl eGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIp JCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikv JCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAor KwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0K KytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCisraW5zdGFs bGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVj LWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFs bC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFs bGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5T VEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3No X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1z IFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJP R1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2Vu ZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVz dCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxF UykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQg aXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMg ZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVz dCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFO RklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisr ZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYg TWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3Rj bGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1hbQorKworK2R2 aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06 CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQor KworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQor KworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1tYW46CisrCisr aW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1h bQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVy LWNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFp bnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwor KworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0 b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMt YW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3Ry aXAKKysKKysuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMg Y3RhZ3MgZGlzdGNsZWFuIFwKKysJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0g aHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisrCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxs LWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKysJaW5zdGFsbC1kdmktYW0gaW5z dGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorKwlpbnN0YWxsLWh0bWwt YW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwt cGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCisrCWluc3RhbGwt c3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisrCW1haW50 YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKysJbW9z dGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wg XAorKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKwor K0BTRVRfTUFLRUAKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rl c3RfaF9zb3VyY2VzKQorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0 byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQg KGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5t ayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1r CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2Vz Lm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA1LTIyIDIy OjU0OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyIEBACisrb3JhY2xlX3Rlc3RfaF9z b3VyY2VzID0KKytvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUu Y3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMDktMDUt MjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtNSw5ICs1LDE3IEBACisgLy8gaHR0cDov L3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIC8vCisgCistI2luY2x1ZGUgInNvY2ku aCIKKy0jaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAiY29tbW9uLXRlc3RzLmgi CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvb3Jh Y2xlL3NvY2ktb3JhY2xlLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21t b24tdGVzdHMuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS5oPgorKyMJaW5jbHVkZSA8c29j aS1vcmFjbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+CisrI2Vu ZGlmCisrLy8KKyAjaW5jbHVkZSA8aW9zdHJlYW0+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5j bHVkZSA8Y2Fzc2VydD4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3 OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAw MCArMDIwMAorQEAgLTcsOCArNywxNCBAQAorIAorICNkZWZpbmUgc29jaV9PUkFDTEVfU09VUkNF CisgI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorICNp bmNsdWRlICJlcnJvci5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkK KysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMJaW5j bHVkZSA8c3RhdGVtZW50Lmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNp bmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCistLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAx MzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAg KzAyMDAKK0BAIC02LDcgKzYsMTIgQEAKKyAvLworIAorICNpbmNsdWRlICJjb21tb24uaCIKKy0j aW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNl bHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKyAvLworICNpbmNsdWRl IDxjc3RkbGliPgorICNpbmNsdWRlIDxjc3RkaW8+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDMwIEBACisrIyMgYmFja2VuZHMvcG9zdGdyZXNxbCBzdWItZGlyZWN0 b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChz cmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu CisrCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkgPSAuX2NvbW1vbi5oCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZKQorKworK2lmIEhBVkVfUE9TVEdSRVNRTAorK2xpYl9MVExJQlJBUklF Uz0gbGlic29jaV9wb3N0Z3Jlc3FsLmxhCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJD RVM9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJj ZXMpIAorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUyA9ICQoUE9TVEdSRVNRTF9DRkxB R1MpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9CisrbGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAk KEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrZW5kaWYKKytpZiBT T0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCisrZWxzZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmls ZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2Vm aWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNp YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsOTUgKzAsMCBAQAor LSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5k IGl0cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQg LSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLVBHU1FMSU5DTFVERURJUiA9 IC1JL3Vzci9pbmNsdWRlCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBl bnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNY WEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7 Q1hYRkxBR1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtQR1NRTElOQ0xV REVESVJ9CistCistCistT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lv bi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1l bnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAorLQljb21tb24ubwor LQorLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1z Lm8gXAorLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0 ZW1lbnQtcy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBj b21tb24tcy5vCistCistCistbGlic29jaV9wb3N0Z3Jlc3FsLmEgOiAke09CSkVDVFN9CistCWFy IHJ2ICRAICQ/CistCXJtICoubworLQorLQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLm8gOiBjb21t b24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNzaW9uLm8gOiBzZXNz aW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLXVz ZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0 b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS5vIDogdmVj dG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQorLQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQorLQkke0NPTVBJTEVSfSAtc2hh cmVkIC1vIGxpYnNvY2lfcG9zdGdyZXNxbC5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCist YmxvYi1zLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLXMubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rv cnktcy5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCistCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zZXNz aW9uLXMubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRh cmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNl LXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVS fSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWlu dG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLXMu byA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhG TEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgbGlic29jaV9w b3N0Z3Jlc3FsLmEgbGlic29jaV9wb3N0Z3Jlc3FsLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDgxMyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1 dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysK KysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRl bnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQ T1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRp ciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdF QAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIg JiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3Rh bGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQo aW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5z Zm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQ UkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoK KytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQg PSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19w a2dpbmNsdWRlX0hFQURFUlNfRElTVCkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNk aXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKytBQ0xP Q0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9 ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29s Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lv bi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rp cikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9k ZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5z dGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKythbV9fdnBhdGhfYWRq X3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsK KythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNo byAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7 IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiov fHwnYDsKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJ UikkKHBrZ2luY2x1ZGVkaXIpIgorK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwp CisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX3Bvc3RncmVzcWxf bGFfREVQRU5ERU5DSUVTID0KKythbV9fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVNfRElT VCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5o IFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jl c3FsLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAg XAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBc CisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrYW1fX29iamVjdHNfMSA9CisrYW1fX29i amVjdHNfMiA9IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIFwKKysJbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWNvbW1vbi5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5Lmxv IFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zZXNzaW9uLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5s byBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9s YS12ZWN0b3ItdXNlLXR5cGUubG8KKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAYW1fbGlic29jaV9w b3N0Z3Jlc3FsX2xhX09CSkVDVFMgPSAgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChhbV9f b2JqZWN0c18xKSAkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVD VFMgPSAkKGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwK KysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX3Bv c3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBh bV9saWJzb2NpX3Bvc3RncmVzcWxfbGFfcnBhdGggPSAtcnBhdGggXAorK0BIQVZFX1BPU1RHUkVT UUxfVFJVRUAJJChsaWJkaXIpCisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkk KHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxF ID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRD WFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFN X0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwkt LW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxB R1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdT KSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1D QyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUg JChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKEND KQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykg JChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX3Bv c3RncmVzcWxfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vy c2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGlu Zm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1 cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUg aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxs LXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNp dmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUg dW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5o CisrcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCisrSEVBREVS UyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9z dGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJz aXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrRVRBR1MgPSBldGFncworK0NUQUdTID0g Y3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NP TU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytwa2dpbmNs dWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRB UiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AK KytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA CisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIg PSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NU X1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9O ID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAor K0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AK KytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBD UFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRf VkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hY Q1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AK KytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQ RElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hP X0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytF R1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dF TkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAg PSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExf REFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NS SVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxM X1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9C SlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJ UE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytN QUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FM X0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisr TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBO TUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xF X0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9D RkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFD TEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAor K09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05A CisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BH X0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9D RkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FM X0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQ T1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBS UE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxM ID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK KytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA CisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2Fj X2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVN UEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2Ft X19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90 ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5k aXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2Fs aWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisr YnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytk YXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9v ayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2Vu X29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19w cmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAor K2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0 X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9 IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9k aXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAor K2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRp ciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VD SE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAK KytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytw cmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2Vk X29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNk aXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMg PSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAK Kyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp ckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2Jj a19wb3N0Z3Jlc3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrCisrYmNrX3Bvc3RncmVz cWxfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5k YXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAor KworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCisrRVhU UkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorK0BIQVZFX1BP U1RHUkVTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKKytA SEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMgPSAkKGJj a19wb3N0Z3Jlc3FsX2hfc291cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAKKytA SEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQ T1NUR1JFU1FMX0NGTEFHUykKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jl c3FsX2xhX0xJQkFERCA9IAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVz cWxfbGFfTERGTEFHUyA9IFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1RfTElCUykg JChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKytA SEFWRV9QT1NUR1JFU1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVS U0lPTikKKysKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytA U09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisr LlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBk ZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJ ICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsg XAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlJzsgXAor KwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxl OiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJ QGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAg KikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RF UEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25m aWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5P Uk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVT VERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisrCSAgICBmPSQoYW1fX3N0 cmlwX2RpcikgXAorKwkgICAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQo SU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAor KwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcp ICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKKysJICBlbHNlIDo7IGZpOyBcCisr CWRvbmUKKysKKyt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6CisrCUAkKE5PUk1BTF9VTklOU1RB TEwpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwK KysJICBwPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNU RElSKSQobGliZGlyKS8kJHAnIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJk aXIpLyQkcCI7IFwKKysJZG9uZQorKworK2NsZWFuLWxpYkxUTElCUkFSSUVTOgorKwktdGVzdCAt eiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKKysJQGxp c3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGRpcj0i YGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKKysJICB0ZXN0ICIkJGRpciIg IT0gIiQkcCIgfHwgZGlyPS47IFwKKysJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRp b25zXCIiOyBcCisrCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAorKwlkb25lCisr bGlic29jaV9wb3N0Z3Jlc3FsLmxhOiAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9ERVBFTkRFTkNJRVMpIAorKwkkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCkgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREKSAk KExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisr CisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1ibG9iLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvQGFtX19xdW90 ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXJvdy1pZC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxv QGFtX19xdW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09N UElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZ R1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQq LlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5s bzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1Q IC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAor K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisr bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9s aWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv YmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcAorKworK2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3Bw CisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5Lmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5UcG8g LWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9y eS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1yb3ctaWQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1p ZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJv dy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv cm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jv dy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrCisrbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNl c3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Np b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zZXNzaW9uLmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFy ZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8t dHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11 c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlw ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rv ci11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysK Kyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6 CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBr Z2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtn aW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgor KwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwK KysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJT X0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAor KwkgICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVB REVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFE RVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisr CSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkg IHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKysj IFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsg eW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhy b3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZh cmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFy aWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysj ICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdo ZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2 YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6 CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwK KysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikg ZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vl bj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1h a2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwK KysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRm YWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAx JzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAor KwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7 IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAi IGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNU X1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBc CisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2Ijsg XAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVj aG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRv IFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkg IGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16 ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1y ZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VS Q0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisr dGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRh Z3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAt LXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1l dGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVk ZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RB R1MgfHwgXAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRz dWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16 ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3Qg LW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3Mg JCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1f Q1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisr R1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAg JiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhl cmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdT WU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlw PWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0 b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBm b3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAi c3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlw L3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkg ICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9c Ly8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAg OzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlm IHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3Jj ZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGly PWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRl c3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAor KwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmls ZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAg IHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAu OyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAor KwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisr CSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJ ICAgIChjZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwK KysJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3Rk aXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJ YW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAg fHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVj azogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhF QURFUlMpCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJz LWFtOgorKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtn aW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQk ZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1y ZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFt OiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytp bnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJ TlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0 IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJ UFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2Ns ZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50 YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBm b3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1h eSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5U QUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVh bjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGli TFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNs ZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1m IE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0 Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZl CisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1y ZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5m by1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1w ZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytp bnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1y ZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWlu dGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisr CisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFt OiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVh bi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBw cy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJM VExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisr CWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4t bGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNv bXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4t dGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGlu c3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFs bC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGlu c3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZv LWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlp bnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAorKwlp bnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBc CisrCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisr CW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIFwKKysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJ dW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKwor K0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jl c3FsLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBv c3RncmVzcWwuaAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zb2NpLXBvc3RncmVzcWwuaAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0 Z3Jlc3FsLmgJMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMiw5ICsy MiwxNCBAQAorICNpZm5kZWYgU09DSV9QT1NUR1JFU1FMX0RFQ0wKKyAjIGRlZmluZSBTT0NJX1BP U1RHUkVTUUxfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKy0j aW5jbHVkZSA8bGlicHEtZmUuaD4KKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJ RUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UK KysjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1ZGUgPGxp YnBxLWZlLmg+IC8vIFBvc3RHcmVTUUwgY2xpZW50CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAj aWZkZWYgX01TQ19WRVIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc291cmNl cy5tawkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNCBA QAorK2Jja19wb3N0Z3Jlc3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrYmNrX3Bvc3Rn cmVzcWxfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTIzIDEz OjM3OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE4 LjAwMDAwMDAwMCArMDIwMAorQEAgLTgsOSArOCwxNiBAQAorICNkZWZpbmUgU09DSV9QT1NUR1JF U1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLXBvc3RncmVzcWwuaCIKKyAjaW5jbHVkZSAiY29t bW9uLmgiCistI2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgImJsb2IuaCIKKy0jaW5jbHVk ZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVB REVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYmxvYi5oPgorKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUg PGJsb2IuaD4KKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrI2VuZGlmCisrLy8KKysjaW5j bHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQorICNp bmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4K K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3 OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAw MDAwMDAwICswMjAwCitAQCAtNyw4ICs3LDE0IEBACisgCisgI2RlZmluZSBTT0NJX1BPU1RHUkVT UUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgorLSNpbmNsdWRlICJyb3dp ZC5oIgorLSNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQorKy8vCisrI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9y b3dpZC5oPgorKyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgorKyNlbmRpZgorKy8v CisrI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxIChQb3N0R3JlU1FMIGNsaWVu dCkKKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNz dHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMTggQEAKKysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawor KworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytpZiBSVU5fVEVTVFMK KysgIG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNxbAorK2VuZGlmCisrCisrdGVzdF9w b3N0Z3Jlc3FsX1NPVVJDRVMgPSAkKHBvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3Rf cG9zdGdyZXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3RfcG9zdGdyZXNxbF9M REFERCA9CisrdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9j b3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwKKysJCSQoUE9TVEdSRVNRTF9M REZMQUdTKQorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rl c3RfaF9zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTIwMDktMDUt MjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMiArMCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZh cmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNvcnJlY3QKKy0jIHZh bHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQg aXQgYWNjb3JkaW5nbHkuCistCistUEdTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUKKy1Q R1NRTExJQkRJUiA9IC1ML3Vzci9saWIKKy1QR1NRTExJQlMgPSAtbHBxCistCistIyBUaGUgcmVz dCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVu dC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8t bG9uZy1sb25nCistSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZS90ZXN0IC1JLi4v Li4vLi4vY29yZSAke1BHU1FMSU5DTFVERURJUn0KKy1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4u L2NvcmUgJHtQR1NRTExJQkRJUn0KKy1MSUJTID0gLWxzb2NpX2NvcmUgLWxzb2NpX3Bvc3RncmVz cWwgLWxkbCAke1BHU1FMTElCU30KKy0KKy0KKy10ZXN0LXBvc3RncmVzcWwgOiB0ZXN0LXBvc3Rn cmVzcWwuY3BwCistCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9ICR7TElCRElSU30gJHtMSUJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYgdGVzdC1wb3N0 Z3Jlc3FsCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsNTI1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisr CisrQFNFVF9NQUtFQAorKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5j bHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5T VEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9T VF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQg PSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgorK0BSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X3Bvc3Rn cmVzcWwkKEVYRUVYVCkKKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdAor K0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9k ZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9v Y2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xp YnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2 ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2Fs X200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisr bWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3Bf YnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1BST0dSQU1T ID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX29iamVjdHNfMSA9IHRlc3RfcG9zdGdyZXNxbC10 ZXN0LXBvc3RncmVzcWwuJChPQkpFWFQpCisrYW1fdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAk KGFtX19vYmplY3RzXzEpCisrdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfcG9z dGdyZXNxbF9PQkpFQ1RTKQorK3Rlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMgPQorK3Rlc3Rf cG9zdGdyZXNxbF9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp IFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJCh0ZXN0X3Bv c3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJCh0ZXN0X3Bvc3RncmVzcWxfTERG TEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNA IC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGly KS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrQ1hYQ09N UElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAor KwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQor K0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwK KysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9M REZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVz cWxfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQor K0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0g QEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVU T0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtF QAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9E QVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9M SUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09T VF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9H UkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVH RVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdO QUxTX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJA CisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RF ID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxB R1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQ VU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRf TElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhA CisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxB R1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNA CisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0g QERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9f VCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JF UCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllf VkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExf REFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JB TUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BS T0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBA TERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wg PSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9 IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9Q QAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FM X0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBN WVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBO 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 dG9wX3NyY2RpcikKKytwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzID0gCisrcG9zdGdyZXNxbF90 ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCisrdGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMgPSAkKHBvc3RncmVzcWxfdGVzdF9jY19zb3Vy Y2VzKQorK3Rlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3Rf cG9zdGdyZXNxbF9MREFERCA9IAorK3Rlc3RfcG9zdGdyZXNxbF9MREZMQUdTID0gJCh0b3BfYnVp bGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2xpYnNvY2lfcG9zdGdyZXNxbC5sYSBcCisrCQkk KFBPU1RHUkVTUUxfTERGTEFHUykKKysKKythbGw6IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKysu U1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNy Y2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIp L3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBc CisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBc CisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0 IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlJzsgXAorKwljZCAkKHRv cF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQo c3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2Fz ZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBc CisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5E RU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK KysKKytjbGVhbi1ub2luc3RQUk9HUkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7 IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkk JC8vJ2A7IFwKKysJICBlY2hvICIgcm0gLWYgJCRwICQkZiI7IFwKKysJICBybSAtZiAkJHAgJCRm IDsgXAorKwlkb25lCisrdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpOiAkKHRlc3RfcG9zdGdyZXNx bF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMpIAorKwlAcm0gLWYgdGVz dF9wb3N0Z3Jlc3FsJChFWEVFWFQpCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0xJTkspICQodGVzdF9w b3N0Z3Jlc3FsX09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0xEQUREKSAkKExJQlMpCisrCisr bW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFu LWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwu UG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhD T01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8k Ki5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2Jq ZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUp IC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hY Q09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQo Q1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3Bw LmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAt TVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysK Kyt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIC1NRCAtTVAg LU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0 ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQ RElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9z dGdyZXNxbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAKKysKKyt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9i ajogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0 X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5v YmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBlbHNl ICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGZpYAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8g JChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9z dGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9z dGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhf VykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysK KytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQo RVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVu aXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJD RVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJ dGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK KysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIg XAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdT X0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChh bV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIp IFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10 YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKwor K2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hv ICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlz dD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsg ZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8 O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98 O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBl Y2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIp L3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJ Zm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwg dGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlm IHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwg c2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRm aWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNy Y2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisr CSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAg ZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAg Zmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwt YW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFs bC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFs bC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt ZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJp cDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJ UCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNU UklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmlj OgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFu LWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWlu ZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBz cGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFt CisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQ Uk9HUkFNUyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0K KysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06 IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNs ZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFt CisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgor KworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1hbToKKysK KytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzogaW5zdGFs bC1pbmZvLWFtCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LWFtCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVjay1hbToK KysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtcmYgLi8k KERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNs ZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHlj bGVhbi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNs ZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysK KytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgor KworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IENUQUdTIEdU QUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNs ZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKysJZGlz dGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlk aXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBcCisrCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIFwKKysJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgXAorKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBcCisrCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCisrCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorKwlwZGYgcGRmLWFtIHBzIHBzLWFt IHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjbm9kaXN0 X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQocG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcykKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6 MTguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytwb3N0Z3Jlc3FsX3Rlc3RfaF9z b3VyY2VzID0KKytwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9z dGdyZXNxbC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMDktMDUtMjMgMTM6Mzc6 MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOC4w MDAwMDAwMDAgKzAyMDAKK0BAIC01LDkgKzUsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJvb3N0Lm9y Zy9MSUNFTlNFXzFfMC50eHQpCisgLy8KKyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNpbmNsdWRl ICJzb2NpLXBvc3RncmVzcWwuaCIKKy0jaW5jbHVkZSAiY29tbW9uLXRlc3RzLmgiCisrLy8KKysj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b2NpLXBvc3RncmVzcWwuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1v bi10ZXN0cy5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIwlpbmNsdWRlIDxzb2Np LXBvc3RncmVzcWwuaD4KKysjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+Cisr I2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8aW9zdHJlYW0+CisgI2luY2x1ZGUgPHNzdHJlYW0+Cisg I2luY2x1ZGUgPHN0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvbmZp Zy5oLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvbmZpZy5oLmluCistLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9jb25maWcuaC5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvbmZpZy5oLmluCTIwMDktMDUtMjMg MTA6MDI6MDEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE0NiBAQAorKy8qIHNvY2kvY29u ZmlnLmguaW4uICBHZW5lcmF0ZWQgZnJvbSBjb25maWd1cmUuYWMgYnkgYXV0b2hlYWRlci4gICov CisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1 bmRlZiBIQVZFX0JPT1NUCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxp YnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfREFURV9USU1FCisrCisr LyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RklMRVNZU1RFTSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAq LworKyN1bmRlZiBIQVZFX0JPT1NUX0ZJTEVTWVNURU0KKysKKysvKiBkZWZpbmUgaWYgdGhlIEJv b3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09T VF9JT1NUUkVBTVMKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMg bGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9QUk9HUkFNX09QVElP TlMKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX1JFR0VYCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29z dDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JP T1NUX1NFUklBTElaQVRJT04KKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxp YnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU0lHTkFMUworKworKy8q IGRlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1 bmRlZiBIQVZFX0JPT1NUX1RIUkVBRAorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRf dGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxjbWF0aD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfQ01BVEgKKysKKysvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRlcXVlPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYg SEFWRV9ERVFVRQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGxmY24uaD4g aGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfRExGQ05fSAorKworKy8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8ZnN0cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVf RlNUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4g aGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAorKworKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8aW9tYW5pcD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhB VkVfSU9NQU5JUAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW9zdHJlYW0+ IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0lPU1RSRUFNCisrCisrLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHM+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZF X0xJTUlUUworKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlzdD4gaGVhZGVy IGZpbGUuICovCisrI3VuZGVmIEhBVkVfTElTVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8bWFwPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9NQVAKKysKKysvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9NRU1PUllfSAorKworKy8qIERlZmluZSB0byAxIGlmIE15U1FMIGxpYnJhcmll cyBhcmUgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfTVlTUUwKKysKKysvKiBEZWZpbmUgdG8g MSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZF X09SQUNMRQorKworKy8qIERlZmluZSB0byAxIGlmIFBvc3RncmVTUUwgbGlicmFyaWVzIGFyZSBh dmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9QT1NUR1JFU1FMCisrCisrLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIDxxdWV1ZT4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfUVVF VUUKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNldD4gaGVhZGVyIGZpbGUu ICovCisrI3VuZGVmIEhBVkVfU0VUCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TU1RSRUFNCisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRleGNlcHQ+IGhlYWRlciBmaWxlLiAqLwor KyN1bmRlZiBIQVZFX1NUREVYQ0VQVAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NURElOVF9ICisrCisr LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICov CisrI3VuZGVmIEhBVkVfU1RETElCX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPHN0cmluZz4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1RSSU5HCisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwor KyN1bmRlZiBIQVZFX1NUUklOR1NfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NUUklOR19ICisrCisr LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4g Ki8KKysjdW5kZWYgSEFWRV9TWVNfU1RBVF9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1lTX1RZ UEVTX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFk ZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9VTklTVERfSAorKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8dmVjdG9yPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9WRUNU T1IKKysKKysvKiBEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBz dG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLgorKyAgICovCisrI3VuZGVmIExUX09CSkRJUgor KworKy8qIE5hbWUgb2YgcGFja2FnZSAqLworKyN1bmRlZiBQQUNLQUdFCisrCisrLyogRGVmaW5l IHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxk IGJlIHNlbnQuICovCisrI3VuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCisrCisrLyogRGVmaW5lIHRv IHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX05BTUUK KysKKysvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2th Z2UuICovCisrI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCisrCisrLyogRGVmaW5lIHRvIHRoZSBvbmUg c3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX1RB Uk5BTUUKKysKKysvKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwor KyN1bmRlZiBQQUNLQUdFX1ZFUlNJT04KKysKKysvKiBEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0 aW9ucyBoYW5kbGluZyAqLworKyN1bmRlZiBTT0NJX0VYQ0VQVElPTlMKKysKKysvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KKysjdW5kZWYgU1RE Q19IRUFERVJTCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGNhbiBzYWZlbHkgaW5jbHVkZSBi b3RoIDxzeXMvdGltZS5oPiBhbmQgPHRpbWUuaD4uICovCisrI3VuZGVmIFRJTUVfV0lUSF9TWVNf VElNRQorKworKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKysjdW5kZWYgVkVSU0lP TgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5hbSBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5hbQkyMDA5LTA1 LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyOSBAQAorKyMjIGNvcmUg c3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytp bmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSAuIHRlc3QKKysKKysjRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZID0gLl9yb3cuY3BwIC5fc29jaS1zaW1wbGUuY3BwIC5fc29jaS1zaW1w bGUuaCAuX3ZhbHVlcy1leGNoYW5nZS5oCisrCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9G T1JfU09DSV9DT01QQVRJQklMSVRZKQorKworK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9jb3Jl LmxhCisrCisrbGlic29jaV9jb3JlX2xhX1NPVVJDRVM9ICQoY29yZV9oX3NvdXJjZXMpICQoY29y ZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPQorK2xpYnNvY2lfY29y ZV9sYV9MSUJBREQgPQorK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0gXAorKwkkKEJPT1NUX0xJ QlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBc CisrCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytwa2dpbmNs dWRlX0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQK Kytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUKKytlbHNlCisrc29j aV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAk KHNvY2lfaW5jbHVkZV9kaXIpCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9j b3JlL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUu YmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMjAw OS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9jb3JlL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCitAQCAtMSw3NiArMCwwIEBACistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxs IC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gCistT0JKUyA9ICBzZXNz aW9uLm8gc3RhdGVtZW50Lm8gcm93Lm8gdmFsdWVzLm8gXAorLQlpbnRvLXR5cGUubyB1c2UtdHlw ZS5vIFwKKy0JYmxvYi5vIHJvd2lkLm8gcHJvY2VkdXJlLm8gcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLm8gcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gXAorLQlvbmNlLXRlbXAtdHlwZS5vIHByZXBh cmUtdGVtcC10eXBlLm8gZXJyb3IubyB0cmFuc2FjdGlvbi5vIGJhY2tlbmQtbG9hZGVyLm8gXAor LQljb25uZWN0aW9uLXBvb2wubyBzb2NpLXNpbXBsZS5vCistCistCistbGlic29jaV9jb3JlLmEg OiAke09CSlN9IAorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0KKy1zaGFyZWQgOiAke09CSlN9 IAorLQkke0NPTVBJTEVSfSAtZlBJQyAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfY29yZS5zbyAke09CSlN9IAorLQlybSAq Lm8KKy0KKy1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAor LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy5v IDogcm93LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLXZhbHVlcy5vIDogdmFsdWVzLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLWludG8tdHlwZS5vIDogaW50by10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXVzZS10eXBl Lm8gOiB1c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0JCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1lcnJvci5vIDogZXJyb3IuY3BwCistCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcm93aWQubyA6IHJv d2lkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLXByb2NlZHVyZS5vIDogcHJvY2VkdXJlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5vIDog cmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJlZi1jb3VudGVkLXN0YXRlbWVudC5vIDogcmVmLWNv dW50ZWQtc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLW9uY2UtdGVtcC10eXBlLm8gOiBvbmNlLXRlbXAtdHlwZS5jcHAKKy0J JHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1wcmVwYXJl LXRlbXAtdHlwZS5vIDogcHJlcGFyZS10ZW1wLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdHJhbnNhY3Rpb24ubyA6IHRyYW5zYWN0 aW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQor LQorLWJhY2tlbmQtbG9hZGVyLm8gOiBiYWNrZW5kLWxvYWRlci5jcHAKKy0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb25uZWN0aW9uLXBvb2wubyA6 IGNvbm5lY3Rpb24tcG9vbC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KKy0KKy1zb2NpLXNpbXBsZS5vIDogc29jaS1zaW1wbGUuY3BwCistCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgor LQlybSAtZiBsaWJzb2NpX2NvcmUuYSBsaWJzb2NpX2NvcmUuc28KK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv Y29yZS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmls ZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMy4wMDAwMDAw MDAgKzAyMDAKK0BAIC0wLDAgKzEsOTA1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkg YXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAor KworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAy MDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2 ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4 dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBV UlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRh ZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tB R0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1Ip IiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5z dGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0g JChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJh bnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgor K1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0g OgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxl dCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQocGtn aW5jbHVkZV9IRUFERVJTKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFr ZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgorK3N1YmRpciA9IHNvY2kvY29yZQorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9z aCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytD T05GSUdfQ0xFQU5fRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNl ICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNy Y2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3Ry aXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsZGly cyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisr bGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9ICQobGli X0xUTElCUkFSSUVTKQorK2xpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19vYmpl Y3RzXzEgPQorK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIu bG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlv bi1wb29sLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGxpYnNvY2lfY29yZV9sYS1p bnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gXAorKwls aWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEt cHJvY2VkdXJlLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5m by5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gXAorKwls aWJzb2NpX2NvcmVfbGEtcm93LmxvIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyBcCisrCWxpYnNv Y2lfY29yZV9sYS1zZXNzaW9uLmxvIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBcCisr CWxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9u LmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGxpYnNvY2lfY29yZV9sYS12YWx1 ZXMubG8KKythbV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgJChh bV9fb2JqZWN0c18yKQorK2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2Nv cmVfbGFfT0JKRUNUUykKKytsaWJzb2NpX2NvcmVfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAk KENYWExEKSBcCisrCSQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisr CSQobGlic29jaV9jb3JlX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lO Q0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9 ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5 YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D WFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQg PSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09N UElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENP TVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFH UykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0Mg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NM RCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAt byAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNF UyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJDRVMpCisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwt cmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNp dmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZp LXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vy c2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGlu c3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vy c2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQo SU5TVEFMTF9IRUFERVIpCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2 ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisr RVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMp CisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1Mp ICQoRVhUUkFfRElTVCkKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FD TE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09O RiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBA QVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAor K0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxF U1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElC ID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JP T1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytC T09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJP T1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAK KytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytD Q0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAK KytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFH U0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBA Q1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hY ID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAK KytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMg PSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RV TVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05A CisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhU QAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisr SU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFM TF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExf U1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERG TEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisr TElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRM SUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0g QE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcg PSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZM QUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAor K05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09C SkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09D SV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9S QUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJT SU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0g QFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFD S0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NU UklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVS U0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFU T1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNR TF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RH UkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAor K1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJB TkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9N QUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQg PSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytV UExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisr YWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJA CisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGly ID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA CisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3Vu dGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAor K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisr YnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKyti dWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJA CisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNf b2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBA Z3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0 X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAor K2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGly QAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJA CisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNm b3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytz YmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9 IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lz Y29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVm aXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAor K3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRk aXIpIC1JJCh0b3Bfc3JjZGlyKQorK2NvcmVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9ibG9iLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmxvYi1leGNoYW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0 LWdyZWdvcmlhbi1kYXRlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9v c3QtZnVzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0 aW9uYWwuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2Ut dGVtcC10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10 ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJl LWluZm8uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1z dGF0ZW1lbnQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcm93c2V0LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vz c2lvbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3N0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5z YWN0aW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJz aW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9u LXRyYWl0cy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVy LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3ZhbHVlcy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1l eGNoYW5nZS5oCisrCisrY29yZV9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nv bm5lY3Rpb24tcG9vbC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJy b3IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50 LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFu c2FjdGlvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUu Y3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKKysKKytN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAorKwor KyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNp bXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKKytFWFRSQV9ESVNU ID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrbGliX0xUTElCUkFSSUVT ID0gbGlic29jaV9jb3JlLmxhCisrbGlic29jaV9jb3JlX2xhX1NPVVJDRVMgPSAkKGNvcmVfaF9z b3VyY2VzKSAkKGNvcmVfY2Nfc291cmNlcykgCisrbGlic29jaV9jb3JlX2xhX0NYWEZMQUdTID0g CisrbGlic29jaV9jb3JlX2xhX0xJQkFERCA9IAorK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0g XAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFN X09QVElPTlNfTElCKSBcCisrCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lP TikKKysKKytwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQorK0BTT0NJX0hF QURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNP Q0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2NvcmUKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVT OiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01h a2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2Vz Lm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNh c2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAg ICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNl IGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25l OyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2Np L2NvcmUvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2NvcmUvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKytpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJ QCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAi JChERVNURElSKSQobGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBw IGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGY9JChh bV9fc3RyaXBfZGlyKSBcCisrCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFM TCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZici OyBcCisrCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBf RkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7 IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VO SU5TVEFMTCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICck KERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikk KGxpYmRpcikvJCRwIjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10 ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQor KwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAg ZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQk ZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19s b2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRv bmUKKytsaWJzb2NpX2NvcmUubGE6ICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29j aV9jb3JlX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9jb3JlX2xhX0xJTkspIC1ycGF0 aCAkKGxpYmRpcikgJChsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfbGFf TElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChP QkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1iYWNrZW5kLWxvYWRlci5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5QbG9AYW1f X3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1lcnJvci5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlBsb0BhbV9fcXVvdGVA CisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFy ZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlBsb0BhbV9fcXVvdGVACisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJv dy5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xh LXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlBsb0BhbV9fcXVv dGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0 aW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtdmFsdWVzLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAn JDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAorKworK2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlRwbyAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIu VHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1s b2FkZXIubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorKworK2xpYnNv Y2lfY29yZV9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmxv Yi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuVHBvIC1jIC1v IGxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1ibG9iLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAK KysKKytsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9jb25uZWN0aW9uLXBvb2wuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9u LXBvb2wubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAorKworK2xp YnNvY2lfY29yZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9s YS1lcnJvci5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRw byAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvZXJyb3IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJy b3IuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtZXJy b3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Vycm9yLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9j b3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50 by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRv LXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3Jl X2xhLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3Jl X2xhLW9uY2UtdGVtcC10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAt dHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRl bXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNl LXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1vbmNlLXRlbXAtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtb25j ZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVt cC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv b25jZS10ZW1wLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXByZXBh cmUtdGVtcC10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJl cGFyZS10ZW1wLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJl LXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUu Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3Jl X2xhLXByb2NlZHVyZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt cHJvY2VkdXJlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2Vk dXJlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1w cm9jZWR1cmUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVy ZS5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1y ZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1wcmVwYXJlLWluZm8uVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtcHJlcGFyZS1pbmZvLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8n IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJlZi1j b3VudGVkLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXJlZi1jb3VudGVkLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3Vu dGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNv dW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5U cG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3Jl X2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQt c3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJvdy5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXJvdy5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgb2JqZWN0PSds aWJzb2NpX2NvcmVfbGEtcm93LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcm93aWQubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xh LXJvd2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lk LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dp ZC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1y b3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKysKKyts aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lv bi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9j b3JlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1z ZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCisrCisrbGlic29j aV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNp bXBsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtc29jaS1zaW1wbGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1z b2NpLXNpbXBsZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zb2Np LXNpbXBsZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCisrCisrbGlic29jaV9jb3Jl X2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEt c3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVt ZW50LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1z dGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVu dC5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG86ICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5UcG8gLWMgLW8gbGlic29jaV9jb3Jl X2xhLXRyYW5zYWN0aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFu c2FjdGlvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3RyYW5zYWN0aW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXRyYW5zYWN0aW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAK KysKKytsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3VzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlRw byAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Ut dHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5 cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Ut dHlwZS5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS92YWx1ZXMuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS12YWx1ZXMuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuVHBvICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyBv YmplY3Q9J2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29y ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorKworK21vc3Rs eWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJt IC1yZiAubGlicyBfbGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVk ZV9IRUFERVJTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRl ZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0 PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGY9 JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFM TCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgJChw a2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgor KwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hv ICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgcm0gLWYg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworKyMgVGhpcyBk aXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2Fu IGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRo aXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVz OiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBp cyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3 aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3Ug cnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBv biB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkg IGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0 ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisr CisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAor KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFp bCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBU QUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwK KysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lv bikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWlu Y2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlv bj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBc CisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9U QUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRB R1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1 bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1 ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisr CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRh Z3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZM QUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoK KysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAk KHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKwor K2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BB VEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAg IGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8 fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwK KysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRv cF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNk ICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAg ICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRk aXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tp cF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0 IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVj ay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr CWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBc CisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1h bQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0 YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwt c3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2Vu ZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJB UklFUyBjbGVhbi1saWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRp c3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZp bGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytk dmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2 ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxj aGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2 ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vy c2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFS SUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFs bC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRp c3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBp bnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1o dG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5z dGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwt cGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAor Kwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9N QUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2NvcmUvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb3VyY2Vz Lm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDU4IEBACisrY29yZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ibG9iLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9ib29zdC1mdXNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29z dC1vcHRpb25hbC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1 cGxlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29s LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvaW50by10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv b25jZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVw YXJlLXRlbXAtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2Nl ZHVyZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXN0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5o IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zZXNzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNr ZW5kLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvc3RhdGVtZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dHJhbnNhY3Rpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNv bnZlcnNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZl cnNpb24tdHJhaXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1o b2xkZXIuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdmFsdWVzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFs dWVzLWV4Y2hhbmdlLmgKKytjb3JlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv Y29ubmVjdGlvbi1wb29sLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9l cnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1l bnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Ry YW5zYWN0aW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlw ZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMDktMDUtMjMgMTM6 Mzc6MDkuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90 ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMDktMDUtMjIgMjI6NTQ6MTcuMDAwMDAwMDAwICswMjAwCitA QCAtOCwxNiArOCwzMCBAQAorICNpZm5kZWYgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAor ICNkZWZpbmUgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorIAorLSNpbmNsdWRlICJzb2Np LmgiCistI2luY2x1ZGUgInNvY2ktY29uZmlnLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8 c29jaS9jb3JlL2Jvb3N0LW9wdGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv Ym9vc3QtdHVwbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1ncmVnb3Jp YW4tZGF0ZS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIyAgICAgICBpbmNsdWRl IDxzb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKysj ICAgICAgIGluY2x1ZGUgPGJvb3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxib29zdC1n cmVnb3JpYW4tZGF0ZS5oPgorKyNlbmRpZgorKy8vCisgCisgLy8gZXhwbGljaXRseSBwdWxsIGNv bnZlcnNpb25zIGZvciBCb29zdCdzIG9wdGlvbmFsLCB0dXBsZSBhbmQgZnVzaW9uOgorICNpbmNs dWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKy0jaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKy0j aW5jbHVkZSA8Ym9vc3QtdHVwbGUuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUu aD4KKyAjaWYgZGVmaW5lZChCT09TVF9WRVJTSU9OKSAmJiBCT09TVF9WRVJTSU9OID49IDEwMzUw MAorKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrI2luY2x1ZGUgPHNvY2kvY29y ZS9ib29zdC1mdXNpb24uaD4KKysjZWxzZQorICNpbmNsdWRlIDxib29zdC1mdXNpb24uaD4KKysj ZW5kaWYKKyAjZW5kaWYgLy8gQk9PU1RfVkVSU0lPTgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+ CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qv TWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsMjYgQEAKKysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkgPQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSkKKysKKytub2luc3RfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29yZV90ZXN0Lmxh CisrCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUz0gJChjb3JlX3Rlc3RfaF9zb3VyY2Vz KQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0KKytsaWJzb2NpX2NvcmVfdGVzdF9s YV9MSUJBREQgPQorKyNsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5m byAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxB R1MgPQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKKytp ZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikv c29jaS9jb3JlL3Rlc3QKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikK KytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUu aW4JMjAwOS0wNS0yMyAxMDowMjowMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTE2IEBA CisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZp bGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKwor KworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK Kytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5T VEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9T VF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQg PSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMu bWsgXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvY29y ZS90ZXN0CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xv Y2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9w X3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf b3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5t NCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1f X2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NB TF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9Cisr TFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9MVExJQlJBUklFUykKKytsaWJzb2NpX2NvcmVfdGVzdF9s YV9ERVBFTkRFTkNJRVMgPQorK2FtX19vYmplY3RzXzEgPQorK2FtX2xpYnNvY2lfY29yZV90ZXN0 X2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JK RUNUUyA9ICQoYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykKKytsaWJzb2NpX2NvcmVf dGVzdF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAor KwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxB R1MpIFwKKysJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRA CisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29j aQorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1Mp CisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChB TV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0t dGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGlu ayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERG TEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQor K0RJU1RfU09VUkNFUyA9ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUykKKythbV9fdnBh dGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8Lnwu fGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikg Zj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBm PSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAn c3xeLiovfHwnYDsKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiCisrcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCisrSEVB REVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0 YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5G T1MpICQoRVhUUkFfRElTVCkKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQor K0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRP Q09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0Ug PSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdT QAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9G SUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNf TElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAor K0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAK KytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0g QEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJ QkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AK KytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQ UEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NG TEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMg PSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisr Q1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9E RUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RF RlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAor K0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hP X05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhF RVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExA CisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisr TERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNA CisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisr TFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9Q ID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05G SUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9M REZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9O QAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAor K09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xF X09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0g QE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9W RVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdF ID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisr UEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdF X1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0Vf VkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBB UkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdS RVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBP U1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdT QAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0g QFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NF VF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAK KytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05A CisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNk aXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3Jj ZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NY WCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19p bmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19k b3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1f X3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxk QAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVA CisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAK KytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3Rk aXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2Nk aXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZp cHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sg PSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKyto b3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3Ig PSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5j bHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3No QAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2Rp ciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRp ciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFu ZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVk aXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJh bnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAK KytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRp ciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBA c3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9w cmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGly QAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVp bGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2NvcmVfdGVzdF9oX3NvdXJjZXMgPSAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCisrY29yZV90ZXN0X2NjX3NvdXJjZXMg PSAKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrRVhUUkFfRElTVF9GT1Jf U09DSV9DT01QQVRJQklMSVRZID0gCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZKQorK25vaW5zdF9MVExJQlJBUklFUyA9IGxpYnNvY2lfY29yZV90ZXN0 LmxhCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUyA9ICQoY29yZV90ZXN0X2hfc291cmNl cykKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9DWFhGTEFHUyA9IAorK2xpYnNvY2lfY29yZV90ZXN0 X2xhX0xJQkFERCA9IAorKyNsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24t aW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xE RkxBR1MgPSAKKytwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisr QFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRp cikKKytAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpL3NvY2kvY29yZS90ZXN0CisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBz KScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7 IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAg ICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwK KysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29y ZS90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/ JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkg ICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lF UykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisr Y2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklF UykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChub2luc3RfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBz ZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBk aXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJ ICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmVf dGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90 ZXN0X2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQo bGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJB REQpICQoTElCUykKKysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVY VCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKyttb3N0bHlj bGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAt cmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVf SEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0n JChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQo YW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwp ICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgICQocGtn aW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJ QCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZv ciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAi IHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFE RVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMp ICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQg JCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAg JChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9 OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisr CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykk JHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8 IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9F VEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1ZTsgXAorKwlm aQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisr CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwg XAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQo Q1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJ ICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9w X2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBn dGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0g LWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQo RElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNk aXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklM RVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZp bGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAg ICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwlj YXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3Rf ZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSok JCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4g JCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZp bGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRk LyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9b Xi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3Qg JCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxl ICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIg JCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAg ICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUg JChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9u ZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxl ICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczoKKysJZm9yIGRpciBpbiAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8 ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQorK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt YW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlA JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQor KworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChN QUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwK KysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBp bnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rp c3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8 IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xl YW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklF UyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJt IC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysK KytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZv LWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytp bnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1p bmZvLWFtCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFt CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysK KyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmls ZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdl bmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1h bTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xl YW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQor KworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogQ1RBR1Mg R1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKKysJ Y2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBjdGFncyBkaXN0Y2xlYW4gXAor KwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBc CisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBp bmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5z dGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBcCisrCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBp bnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGly cyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNs ZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNs ZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdW5pbnN0YWxsIHVuaW5z dGFsbC1hbSB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VUX01BS0VACisrIyBU ZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZh cmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3Qp IG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3Jl L3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L3Nv dXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA1LTIyIDIyOjU0OjE3 LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyIEBACisrY29yZV90ZXN0X2hfc291cmNlcyA9 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKytjb3JlX3Rlc3Rf Y2Nfc291cmNlcyA9CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5h bSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0 OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw5IEBACisraW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorKworKyMjIFNvdXJjZSBkaXJlY3RvcnkKKysKKytNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IGNvcmUgYmFja2VuZHMK KysKKytFWFRSQV9ESVNUID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmluCTIwMDktMDUtMjMg MTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDU2NSBAQAorKyMgTWFrZWZpbGUu aW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNv bmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIw MDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBN YWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQor KyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJA CisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJk aXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAor K2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYg Y2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxf c2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5z dGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9y bSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVf SU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQ UkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBA YnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL2NvbmZpZy5o LmluICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaQorK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9u Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGly KS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2Rl cHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0 YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gY29uZmlnLmgKKytD T05GSUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJT SVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZl IFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFs bC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwK KysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vy c2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysg IGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9 IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNU RklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRS QV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBB UkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisr QVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK KytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05B TFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1Rf VEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisr Qk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytD QyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisr Q1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBD UFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBV TklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZF UlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBA Q1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFU SF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERT WU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9f TiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVF WFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9O ID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0g QElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dS QU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBU QAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQg PSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJT ID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0g QExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AK KytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytN WVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AK KytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNR TF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRFVNUCA9IEBP QkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNA CisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9M REZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JB Q0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQgPSBAT1RPT0w2NEAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA CisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisr UkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklO QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9f bGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190 YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxk ID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBi dWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxk X3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisr ZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2Rp ciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlk aXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9h bGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9z dF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVk aXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBp bnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisr bGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9j YWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5k aXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9s ZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3By b2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9 IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFy ZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2Nv bmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3Rv cF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9w X2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1J JCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KKytTVUJESVJTID0gY29yZSBiYWNrZW5kcworK0VYVFJBX0RJU1QgPSAKKyth bGw6IGNvbmZpZy5oCisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFsbC1yZWN1cnNpdmUKKysK KysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxl LmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQor KwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScg aW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlm IHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBl eGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNk aXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9z cmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9NYWtlZmlsZQorKy5QUkVD SU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3Rh dHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVz YWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29u ZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2Rp cikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6 ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK2NvbmZpZy5oOiBzdGFtcC1oMQorKwlA aWYgdGVzdCAhIC1mICRAOyB0aGVuIFwKKysJICBybSAtZiBzdGFtcC1oMTsgXAorKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIHN0YW1wLWgxOyBcCisrCWVsc2UgOjsgZmkKKysKKytzdGFtcC1o MTogJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisr CUBybSAtZiBzdGFtcC1oMQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzIHNvY2kvY29uZmlnLmgKKyskKHNyY2RpcikvY29uZmlnLmguaW46ICAkKGFtX19j b25maWd1cmVfZGVwcykgCisrCWNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPSEVBREVSKQorKwly bSAtZiBzdGFtcC1oMQorKwl0b3VjaCAkQAorKworK2Rpc3RjbGVhbi1oZHI6CisrCS1ybSAtZiBj b25maWcuaCBzdGFtcC1oMQorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxv CisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworKworKyMgVGhpcyBk aXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2Fu IGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRo aXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVz OiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBp cyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3 aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3Ug cnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBv biB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkg IGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0 ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisr CisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAor KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFp bCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBU QUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZp Zy5oLmluICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQor Kwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1 ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9u PS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGlu Y2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRp ci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJl LyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwK KysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVs c2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJ ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc CisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzog Y3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmluICQoTElTUCkgJChUQUdTX0ZJ TEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3Qg LWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAor KwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7 IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmlu dCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBc CisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1Nf QVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFt X19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2Rpcikg XAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRh Z3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisr ZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3Jj ZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJ ICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBl bHNlIFwKKysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAg JCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBm aTsgXAorKwlkb25lCisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRp cj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQo YW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYg XAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3Rk aXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJk aXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVj az06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZp OyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQor K2FsbC1hbTogTWFrZWZpbGUgY29uZmlnLmgKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVj dXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytp bnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3Rh bGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytp bnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1 cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAor KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmlj OgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQor KworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBp bnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxl cyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16 ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJl Y3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3Rj bGVhbi1nZW5lcmljIGRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1y ZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZv OiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKwor K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06 CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFs bC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt cmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2 ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5p bnN0YWxsLWFtOgorKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTog JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RB R1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFu LWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10 YWdzIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBz IGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxsY2hl Y2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gXAorKwltYWludGFpbmVyLWNsZWFuIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdz LXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2ktY29uZmlnLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmlnLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCTIwMDktMDUt MjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDc2IEBACisrIyEvYmluL3No 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 KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAw 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 b2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorK3ByZWZpeD1AcHJlZml4QAorK2V4ZWNfcHJlZml4 PUBleGVjX3ByZWZpeEAKKytsaWJkaXI9QGxpYmRpckAKKytpbmNsdWRlZGlyPUBpbmNsdWRlZGly QAorKworK05hbWU6IEBQQUNLQUdFX05BTUVACisrRGVzY3JpcHRpb246IFRoZSBkYXRhYmFzZSBh Y2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJzCisrVmVyc2lvbjogQFBBQ0tBR0VfVkVS U0lPTkAKKytVUkw6IGh0dHA6Ly9AUEFDS0FHRUAuc291cmNlZm9yZ2UubmV0CisrTGliczogLUwk e2xpYmRpcn0gLWxAUEFDS0FHRUBfY29yZSBATERGTEFHU0AgQExJQlNACisrQ2ZsYWdzOiAtSSR7 aW5jbHVkZWRpcn0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4gc29j aS0zLjAuMF90cmVwMzAwL3NvY2kuc3BlYy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ku c3BlYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpLnNwZWMuaW4JMjAwOS0wNS0yMyAwOTo1ODozOC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsMzI3IEBACisrIworKyMjCisrIyBEZWZhdWx0IHZhbHVlcyBhcmUgLS13 aXRoIG15c3FsIC0td2l0aCBwb3N0Z3Jlc3FsIC0td2l0aG91dCBvcmFjbGUgCisrIyBOb3RlIHRo YXQsIGZvciBPcmFjbGUsIHdoZW4gZW5hYmxlZCwgdGhlIGZvbGxvd2luZyBvcHRpb25zIHNob3Vs ZAorKyMgYWxzbyBiZSBnaXZlbjoKKysjIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0vb3B0L29yYWNs ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEvcmRibXMvcHVibGljCisrIyAtLXdpdGgt b3JhY2xlLWxpYj0vb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEvbGli CisrIyBJZiB0aGUgbWFjcm9zIGFyZSBkZWZpbmVkLCByZWRlZmluZSB0aGVtIHdpdGggdGhlIGNv cnJlY3QgY29tcGlsYXRpb24gZmxhZ3MuCisrJWJjb25kX3dpdGhvdXQgbXlzcWwKKyslYmNvbmRf d2l0aG91dCBwb3N0Z3Jlc3FsCisrJWJjb25kX3dpdGggb3JhY2xlCisrCisrJWRlZmluZSBfZGVm YXVsdF9vcmFjbGVfZGlyIC9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJf MQorKyV7IT9fd2l0aF9vcmFjbGVfaW5jZGlyOiAlZGVmaW5lIF93aXRoX29yYWNsZV9pbmNkaXIg LS13aXRoLW9yYWNsZS1pbmNsdWRlPSV7X2RlZmF1bHRfb3JhY2xlX2Rpcn0vcmRibXMvcHVibGlj fQorKyV7IT9fd2l0aF9vcmFjbGVfbGliZGlyOiAlZGVmaW5lIF93aXRoX29yYWNsZV9saWJkaXIg LS13aXRoLW9yYWNsZS1saWI9JXtfZGVmYXVsdF9vcmFjbGVfZGlyfS9saWJ9CisrIworKyMjCisr IworK05hbWU6ICAgICAgICAgICBAUEFDS0FHRUAKKytWZXJzaW9uOiAgICAgICAgQFZFUlNJT05A CisrUmVsZWFzZTogICAgICAgIEBSUE1fUkVMRUFTRUAlez9kaXN0fQorKworK1N1bW1hcnk6ICAg ICAgICBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycworKwor K0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCisrTGljZW5zZTog ICAgICAgIEJvb3N0CisrVVJMOiAgICAgICAgICAgIGh0dHA6Ly8le25hbWV9LnNvdXJjZWZvcmdl Lm5ldAorK1NvdXJjZTA6ICAgICAgICBodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9z b2NpLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKKysjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJt aXR0ZWQgdXBzdHJlYW0KKytQYXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWZpeC1n Y2M0My1jb21wYXRpYmlsaXR5LnBhdGNoCisrIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVk IHVwc3RyZWFtCisrUGF0Y2gxOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ251LWF1 dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCisrQnVpbGRSb290OiAgICAgICV7X3RtcHBhdGh9 LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0gLW4pCisrCisr QnVpbGRSZXF1aXJlczogIGJvb3N0LWRldmVsCisrI0J1aWxkUmVxdWlyZXM6ICBjcHB1bml0LWRl dmVsID49IDEuMTAKKytCdWlsZFJlcXVpcmVzOiAgbGlidG9vbAorKyNSZXF1aXJlczogICAgICAg CisrCisrJWRlc2NyaXB0aW9uCisrQFBBQ0tBR0VfTkFNRUAgaXMgYSBDKysgZGF0YWJhc2UgYWNj ZXNzIGxpYnJhcnkgdGhhdCBwcm92aWRlcyB0aGUKKytpbGx1c2lvbiBvZiBlbWJlZGRpbmcgU1FM IGluIHJlZ3VsYXIgQysrIGNvZGUsIHN0YXlpbmcgZW50aXJlbHkgd2l0aGluCisrdGhlIEMrKyBz dGFuZGFyZC4KKysKKysKKyslez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBteXNxbAorK1N1 bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAg IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtuYW1lfSA9 ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK0J1aWxkUmVxdWlyZXM6ICBteXNxbC1kZXZlbCA+PSA1 LjAKKysKKyslZGVzY3JpcHRpb24gICAgbXlzcWwKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhl IE15U1FMIGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAorK2R5bmFtaWMgbGlicmFy eSBzcGVjaWZpYyB0byB0aGUgTXlTUUwgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCisr dXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBNeVNRTCwgeW91IHdpbGwg bmVlZCB0bworK2luc3RhbGwgJXtuYW1lfS1teXNxbC59CisrCisrJXs/d2l0aF9wb3N0Z3Jlc3Fs OiVwYWNrYWdlICAgICAgICBwb3N0Z3Jlc3FsCisrU3VtbWFyeTogICAgICAgIFBvc3RHcmVTUUwg YmFja2VuZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQv TGlicmFyaWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFz ZX0KKytCdWlsZFJlcXVpcmVzOiAgcG9zdGdyZXNxbC1kZXZlbCA+PSA3LjEKKysKKyslZGVzY3Jp cHRpb24gICAgcG9zdGdyZXNxbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgUG9zdEdyZVNR TCBiYWNrZW5kIGZvciBAUEFDS0FHRV9OQU1FQCwgaS5lLiwKKytkeW5hbWljIGxpYnJhcnkgc3Bl Y2lmaWMgdG8gdGhlIFBvc3RHcmVTUUwgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlCisrdG8g dXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBQb3N0R3JlU1FMLCB5b3Ug d2lsbCBuZWVkIHRvCisraW5zdGFsbCAle25hbWV9LXBvc3RncmVzcWwufQorKworKyV7P3dpdGhf b3JhY2xlOiVwYWNrYWdlICAgICAgICBvcmFjbGUKKytTdW1tYXJ5OiAgICAgICAgT3JhY2xlIGJh Y2tlbmQgZm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xp YnJhcmllcworK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CisrCisrJWRlc2NyaXB0aW9uICAgIG9yYWNsZQorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUg T3JhY2xlIGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAorK2R5bmFtaWMgbGlicmFy eSBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRhdGFiYXNlLiBJZiB5b3Ugd291bGQgbGlrZSB0bwor K3VzZSBAUEFDS0FHRV9OQU1FQCBpbiB5b3VyIHByb2dyYW1zIHdpdGggT3JhY2xlLCB5b3Ugd2ls bCBuZWVkIHRvIGluc3RhbGwKKysle25hbWV9LW9yYWNsZS59CisrCisrCisrJXBhY2thZ2UgICAg ICAgIGRldmVsCisrU3VtbWFyeTogICAgICAgIEhlYWRlciBmaWxlcywgbGlicmFyaWVzIGFuZCBk ZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIERl dmVsb3BtZW50L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9CisrUmVxdWlyZXM6ICAgICAgIHBrZ2NvbmZpZworKworKyVkZXNjcmlwdGlv biAgICBkZXZlbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgaGVhZGVyIGZpbGVzLCBkeW5h bWljIGxpYnJhcmllcyBhbmQKKytkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIGZvciAle25hbWV9 LiBJZiB5b3Ugd291bGQgbGlrZSB0byBkZXZlbG9wCisrcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSwg eW91IHdpbGwgbmVlZCB0byBpbnN0YWxsICV7bmFtZX0tZGV2ZWwuCisrCisrJXs/d2l0aF9teXNx bDolcGFja2FnZSAgICAgICAgbXlzcWwtZGV2ZWwKKytTdW1tYXJ5OiAgICAgICAgTXlTUUwgYmFj a2VuZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMK KytSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQor K1JlcXVpcmVzOiAgICAgICAle25hbWV9LW15c3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Cisr UmVxdWlyZXM6ICAgICAgIG15c3FsLWRldmVsID49IDUuMAorKworKyVkZXNjcmlwdGlvbiAgICBt eXNxbC1kZXZlbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3Ig JXtuYW1lfSwgaS5lLiwgaGVhZGVyCisrZmlsZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNp ZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91Cisrd291bGQgbGlrZSB0byBkZXZlbG9w IHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIE15U1FMLCB5b3Ugd2lsbCBuZWVkCisrdG8gaW5z dGFsbCAle25hbWV9LW15c3FsLn0KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAg ICAgIHBvc3RncmVzcWwtZGV2ZWwKKytTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBiYWNrZW5k IGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcworK1Jl cXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVx dWlyZXM6ICAgICAgICV7bmFtZX0tcG9zdGdyZXNxbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQor K1JlcXVpcmVzOiAgICAgICBwb3N0Z3Jlc3FsLWRldmVsID49IDcuMQorKworKyVkZXNjcmlwdGlv biAgICBwb3N0Z3Jlc3FsLWRldmVsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3Jl U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRlcgorK2ZpbGVzIGFuZCBkeW5hbWlj IGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYKKyt5b3Ug d291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIFBvc3RHcmVT UUwsIHlvdQorK3dpbGwgbmVlZCB0byBpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59CisrCisr JXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZS1kZXZlbAorK1N1bW1hcnk6ICAg ICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBEZXZlbG9w bWVudC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAgICAle25hbWV9LW9yYWNsZSA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfQorKworKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUtZGV2ZWwKKytUaGlzIHBh Y2thZ2UgY29udGFpbnMgdGhlIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9LCBpLmUuLCBoZWFk ZXIKKytmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIE9yYWNsZSBk YXRhYmFzZS4gSWYgeW91Cisrd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7 bmFtZX0gYW5kIE9yYWNsZSwgeW91IHdpbGwgbmVlZAorK3RvIGluc3RhbGwgJXtuYW1lfS1vcmFj bGUufQorKworKworKyVwYWNrYWdlIGRvYworK1N1bW1hcnk6ICAgICAgICBIVE1MIGRvY3VtZW50 YXRpb24gZm9yIHRoZSBAUEFDS0FHRV9OQU1FQCBsaWJyYXJ5CisrR3JvdXA6ICAgICAgICAgIERv Y3VtZW50YXRpb24KKyslaWYgMCV7P2ZlZG9yYX0gPj0gMTAKKytCdWlsZEFyY2g6ICAgICAgbm9h cmNoCisrI0J1aWxkUmVxdWlyZXM6ICB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBzCisrJWVu ZGlmCisrI0J1aWxkUmVxdWlyZXM6ICB0ZXRleC1sYXRleCwgdGV0ZXgtZHZpcHMKKysjQnVpbGRS ZXF1aXJlczogIGRveHlnZW4sIGdob3N0c2NyaXB0CisrCisrJWRlc2NyaXB0aW9uIGRvYworK1Ro aXMgcGFja2FnZSBjb250YWlucyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgSFRNTCBmb3JtYXQg b2YgdGhlIEBQQUNLQUdFX05BTUVACisrbGlicmFyeS4gVGhlIGRvY3VtZW50YXRpb24gaXMgdGhl IHNhbWUgYXMgYXQgdGhlIEBQQUNLQUdFX05BTUVAIHdlYiBwYWdlLgorKworKworKyVwcmVwCisr JXNldHVwIC1xCisrCisrIyBBcHBseSB0aGUgZysrIDQuMyBjb21wYXRpYmlsaXR5IHBhdGNoCisr JXBhdGNoMCAtcDEKKysKKysjIFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNlbnNlIGZpbGUsIHNv IHRoYXQgdGhleSBjb21wbHkgd2l0aAorKyMgcGFja2FnaW5nIHN0YW5kYXJkCisrbXYgQ0hBTkdF UyBDaGFuZ2VMb2cKKyttdiBMSUNFTlNFXzFfMC50eHQgQ09QWUlORworK3JtIC1mIElOU1RBTEwK KysKKysjIFJlbW92ZSBNYWNPU1ggY29tcGF0aWJpbGl0eSBidWlsZGluZyBmaWxlcworK3JtIC1m IGJ1aWxkL3VuaXgvLl8qLnRjbAorK3JtIC1mIC5fTWFrZWZpbGUgLl9jb25maWd1cmUKKytybSAt ZiBzcmMvY29yZS8uXyouaCBzcmMvY29yZS8uXyouY3BwCisrcm0gLWYgc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvLl8qLmgKKytybSAtZiBkb2MvLl8qLmh0bWwKKysKKysjIFJlbmFtZSB0aGUgc291 cmNlIGNvZGUgZGlyZWN0b3J5LCBzbyB0aGF0IHRoZSBmaWxlcyAoZS5nLCBoZWFkZXIKKysjIGZp bGVzKSBjYW4gYmUgZXhwb3J0ZWQgY29ycmVjdGx5IGludG8ge19zdGFuZGFyZF9kaXJ9LyV7bmFt ZX0KKyttdiBzcmMgJXtuYW1lfQorKworKyMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0 aWJpbGl0eSBwYXRjaAorKyVwYXRjaDEgLXAxCisrCisrIyBGaXggc29tZSBwZXJtaXNzaW9ucyBh bmQgZm9ybWF0cworK2ZpbmQgLi9kb2MgLXR5cGUgZiAtcGVybSA3NTUgLWV4ZWMgY2htb2QgNjQ0 IHt9IFw7CisrY2htb2QgLXggQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQor KyMgZmluZCAuIC10eXBlIGYgLW5hbWUgJyouW2hjXXBwJyAtZXhlYyBjaG1vZCA2NDQge30gXDsK KysKKysKKyslYnVpbGQKKyslY29uZmlndXJlIC0tZGlzYWJsZS1zdGF0aWMgXAorKyV7P3dpdGhf bXlzcWw6LS1lbmFibGUtYmFja2VuZC1teXNxbH0gXAorKyV7P3dpdGhfcG9zdGdyZXNxbDotLWVu YWJsZS1iYWNrZW5kLXBvc3RncmVzcWx9IFwKKyslez93aXRoX29yYWNsZTotLWVuYWJsZS1iYWNr ZW5kLW9yYWNsZSAlez9fd2l0aF9vcmFjbGVfaW5jZGlyfSAlez9fd2l0aF9vcmFjbGVfbGliZGly fX0KKyttYWtlICV7P19zbXBfbWZsYWdzfQorKworKyVpbnN0YWxsCisrcm0gLXJmICRSUE1fQlVJ TERfUk9PVAorK21ha2UgaW5zdGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVAorKyMjCisrIyAg UmVtb3ZlIHVucGFja2FnZWQgZmlsZXMgZnJvbSB0aGUgYnVpbGRyb290Cisrcm0gLWYgJFJQTV9C VUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb25maWcuaAorK3JtIC1mICRSUE1fQlVJ TERfUk9PVCV7X2xpYmRpcn0vbGliJXtuYW1lfV8qLmxhCisrIyMKKysjIworKyMgIER1cGxpY2F0 ZSB0aGUgaGVhZGVyIGZpbGVzLCBzbyBhcyB0byBrZWVwIHRoZSBjb21wYXRpYmlsaXR5LCBmb3IK KysjICBkZXZlbG9wZXJzIHVzaW5nIHRoZSBTT0NJIGxpYnJhcnksIHdpdGggdGhlIG5vbi1wYWNr YWdlZCB2ZXJzaW9uIG9mCisrIyAgdGhhdCBsaWJyYXJ5LgorK2ZvciBoZWFkZXJfZmlsZSBpbiAk UlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUvKi5oOyBkbworKyAgY3Ag JHtoZWFkZXJfZmlsZX0gJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorK2Rv bmUKKyslez93aXRoX215c3FsOmNwICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFt ZX0vYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVk aXJ9LyV7bmFtZX19CisrJXs/d2l0aF9wb3N0Z3Jlc3FsOmNwICRSUE1fQlVJTERfUk9PVCV7X2lu Y2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAk UlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQorKyV7P3dpdGhfb3JhY2xlOmNw ICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvb3JhY2xlL3Nv Y2ktb3JhY2xlLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KKysKKysK KyslY2xlYW4KKytybSAtcmYgJFJQTV9CVUlMRF9ST09UCisrCisrJXBvc3QgLXAgL3NiaW4vbGRj b25maWcKKysKKyslcG9zdHVuIC1wIC9zYmluL2xkY29uZmlnCisrCisrJXs/d2l0aF9teXNxbDol cG9zdCBteXNxbCAtcCAvc2Jpbi9sZGNvbmZpZworKworKyVwb3N0dW4gbXlzcWwgLXAgL3NiaW4v bGRjb25maWd9CisrCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOiVwb3N0IHBvc3RncmVzcWwgLXAgL3Ni aW4vbGRjb25maWcKKysKKyslcG9zdHVuIHBvc3RncmVzcWwgLXAgL3NiaW4vbGRjb25maWd9Cisr CisrJXs/d2l0aF9vcmFjbGU6JXBvc3Qgb3JhY2xlIC1wIC9zYmluL2xkY29uZmlnCisrCisrJXBv c3R1biBvcmFjbGUgLXAgL3NiaW4vbGRjb25maWd9CisrCisrCisrCisrJWZpbGVzCisrJWRlZmF0 dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBS RUFETUUKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fY29yZS5zby4qCisrCisrJXs/d2l0aF9teXNx bDolZmlsZXMgbXlzcWwKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBD aGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9teXNx bC5zby4qfQorKworKyV7P3dpdGhfcG9zdGdyZXNxbDolZmlsZXMgcG9zdGdyZXNxbAorKyVkZWZh dHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1Mg UkVBRE1FCisrJXtfbGliZGlyfS9saWIle25hbWV9X3Bvc3RncmVzcWwuc28uKn0KKysKKyslez93 aXRoX29yYWNsZTolZmlsZXMgb3JhY2xlCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9j IEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysle19saWJkaXJ9L2xpYiV7 bmFtZX1fb3JhY2xlLnNvLip9CisrCisrCisrJWZpbGVzIGRldmVsCisrJWRlZmF0dHIoLSxyb290 LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysl ZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKyslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0v Y29yZQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vKi5oCisrJXtfaW5jbHVkZWRpcn0vJXtuYW1l fS9jb3JlLyouaAorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS90ZXN0CisrJXtfYmluZGly fS8le25hbWV9LWNvbmZpZworKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvCisrJXtfbGli ZGlyfS9wa2djb25maWcvJXtuYW1lfS5wYworKyV7X2RhdGFkaXJ9L2FjbG9jYWwvJXtuYW1lfS5t NAorKyV7X21hbmRpcn0vbWFuMS8le25hbWV9LWNvbmZpZy4xLioKKysKKyslez93aXRoX215c3Fs OiVmaWxlcyBteXNxbC1kZXZlbAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRI T1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJWRpciAle19pbmNsdWRlZGlyfS8l e25hbWV9CisrJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9teXNxbAorKyV7X2xpYmRp cn0vbGliJXtuYW1lfV9teXNxbC5zb30KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JWZpbGVzIHBv c3RncmVzcWwtZGV2ZWwKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBD aGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1l fQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvcG9zdGdyZXNxbAorKyV7X2xpYmRp cn0vbGliJXtuYW1lfV9wb3N0Z3Jlc3FsLnNvfQorKworKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBv cmFjbGUtZGV2ZWwKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFu Z2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQor KyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvb3JhY2xlCisrJXtfbGliZGlyfS9saWIl e25hbWV9X29yYWNsZS5zb30KKysKKysKKyslZmlsZXMgZG9jCisrJWRlZmF0dHIoLSxyb290LHJv b3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUgZG9jCisr CisrCisrJWNoYW5nZWxvZworKyogU2F0IE1heSAwOSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMu YXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMworKy0gSW50cm9kdWNlZCBkaXN0aW5jdCBk ZXBlbmRlbmNpZXMgZm9yIGRpZmZlcmVudCBkaXN0cmlidXRpb25zCisrCisrKiBUdWUgTWF5IDA1 IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEy CisrLSBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5IG9uIHRoZSB2ZXJzaW9uIG9mIEJvb3N0LCBhbmQg b24gQ1BQVW5pdAorKworKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJu YXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMQorKy0gUmVtb3ZlZCB0aGUgZGVwZW5kZW5jeSBv biBMYXRleCBmb3IgZG9jdW1lbnRhdGlvbiBkZWxpdmVyeQorKworKyogVHVlIE1heSAwNSAyMDA5 IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMAorKy0g QnVycmllZCB0aGUgQm9vc3QgRnVzaW9uIGhlYWRlciBpbmNsdWRlIGZvciBjb3JlL3Rlc3QvY29t bW9uLXRlc3RzLmgKKysKKysqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFy bmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtOQorKy0gQWRkZWQgYSBtaXNzaW5nIGNzdGRpbyBo ZWFkZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5CisrCisrKiBUdWUgTWF5IDA1 IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTgK KystIEFkZGVkIG1pc3NpbmcgY3N0ZGlvIGhlYWRlciBpbmNsdWRlcyBmb3IgZysrLTQuNCBjb21w YXRpYmlsaXR5CisrCisrKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5h dWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTcKKystIEFkZGVkIGEgbWlzc2luZyBjc3RkaW8gaGVh ZGVyIGluY2x1ZGUgZm9yIGcrKy00LjQgY29tcGF0aWJpbGl0eQorKworKyogU2F0IE1heSAwMiAy MDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC02Cisr LSBSZW1vdmVkIHRoZSB1bnVzZWQgYnVpbGQgY29uZGl0aW9uYWxzCisrCisrKiBUdWUgQXByIDI4 IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTUK KystIFNpbXBsaWZpZWQgdGhlIGNvbmRpdGlvbmFsIGJ1aWxkIHJ1bGVzIHdpdGhpbiB0aGUgUlBN IHNwZWNpZmljYXRpb24gZmlsZQorKworKyogU2F0IEFwciAxOCAyMDA5IERlbmlzIEFybmF1ZCA8 ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC00CisrLSBGaXhlZCBhbiBpc3N1ZSBh Ym91dCBPUFRGTEFHUyBjb21waWxhdGlvbgorKworKyogVHVlIEFwciAxNCAyMDA5IERlbmlzIEFy bmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0zCisrLSBSZXN0YXJ0ZWQg ZnJvbSBwcmlzdGluZSB2ZXJzaW9uIDMuMC4wIG9mIHVwc3RyZWFtIChTT0NJKSBwcm9qZWN0Cisr CisrKiBTYXQgQXByICA0IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00 eC5vcmc+IDMuMC4wLTIKKystIFNwZWNpZmljIFJQTSBmb3IgZWFjaCBiYWNrZW5kCisrCisrKiBG cmkgTWFyIDI3IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+ IDMuMC4wLTEKKystIEZpcnN0IFJQTSByZWxlYXNlCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1m aXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRjaCBiL3NvY2ktMy4wLjAtZml4LWdjYzQzLWNvbXBh dGliaWxpdHkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjYTllODkuLjAw MDAwMDAKLS0tIGEvc29jaS0zLjAuMC1maXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi1kaWZmIC1ydSBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9jb21tb24uaCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmgKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA4 LTA3LTAzIDA5OjIyOjU3LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA5LTA1LTA1IDIzOjMyOjIyLjAwMDAwMDAwMCAr MDIwMAotQEAgLTEwLDYgKzEwLDcgQEAKLSAKLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVk ZSAic29jaS1teXNxbC5oIgotKyNpbmNsdWRlIDxjdGltZT4KLSAKLSBuYW1lc3BhY2Ugc29jaQot IHsKLWRpZmYgLXJ1IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotLS0tIHNvY2kt My4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCTIwMDgtMDUtMTUgMTU6NTg6Mzgu MDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3Fs L3Nlc3Npb24uY3BwCTIwMDktMDUtMDUgMjM6MzI6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMTEs NyArMTEsOCBAQAotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNlcnJubz4KLSAjaW5j bHVkZSA8Y2lzbzY0Nj4KLS0KLSsjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjaW5jbHVkZSA8Y2xpbWl0 cz4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLSAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQot ZGlmZiAtcnUgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10 eXBlLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAJMjAwOC0wNS0zMCAxMzozMzo0NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5 LTA1LTA1IDIzOjMyOjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTEyLDYgKzEyLDggQEAKLSAjaW5j bHVkZSAiY29tbW9uLmgiCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+ Ci0rI2luY2x1ZGUgPGN0aW1lPgotKyNpbmNsdWRlIDxjc3RyaW5nPgotIAotICNpZmRlZiBfTVND X1ZFUgotICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1ydSBzb2NpLTMuMC4w L3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBh Y2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4w LjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1 OjU4OjM4LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0wNSAyMzozMjoyMi4wMDAwMDAw MDAgKzAyMDAKLUBAIC05LDkgKzksMTYgQEAKLSAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0g I2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUg PHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0r IwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2lz bzY0Nj4KLSAjaW5jbHVkZSA8bGltaXRzPgotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUg PGNzdHJpbmc+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1ydSBzb2NpLTMuMC4wL3NyYy9i YWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9i YWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAw MDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCTIwMDktMDUtMDUgMjM6MzI6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAt OSwxMCArOSwxOCBAQAotICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29j aS1teXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSA8c29jaS1wbGF0Zm9y bS5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNv Y2ktcGxhdGZvcm0uaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNs dWRlIDxsaW1pdHM+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLSsj aW5jbHVkZSA8Y3RpbWU+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi0gI3ByYWdtYSB3YXJuaW5nKGRp c2FibGU6NDM1NSkKLWRpZmYgLXJ1IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwv Y29tbW9uLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3Bw CTIwMDgtMDYtMjcgMTY6Mzg6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBh Y2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA1IDIzOjMyOjIy LjAwMDAwMDAwMCArMDIwMAotQEAgLTYsOCArNiwxNSBAQAotIC8vCi0gCi0gI2luY2x1ZGUgImNv bW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNr ZW5kLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRpZgotKy8v Ci0gI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3Rp bWU+Ci0gCi0gCi1kaWZmIC1ydSBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcCBz b2NpLTMuMC4wXzQtcGFjay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAKLS0tLSBzb2NpLTMuMC4w L3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAwMDAwMCAr MDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDA5 LTA1LTA1IDIzOjMzOjU3LjAwMDAwMDAwMCArMDIwMAotQEAgLTksNiArOSw4IEBACi0gCi0gI2lu Y2x1ZGUgInNvY2ktc2ltcGxlLmgiCi0gI2luY2x1ZGUgInNvY2kuaCIKLSsvLwotKyNpbmNsdWRl IDxjc3RkaW8+Ci0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gCgpkaWZmIC0tZ2l0IGEvc29j aS0zLjAuMC1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAu MC1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBkZGMxMDZlLi4wMDAwMDAwCi0tLSBhL3NvY2ktMy4wLjAtZml4LWdudS1h dXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwMjM0ICsw LDAgQEAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00IHNvY2ktMy4wLjBf dHJlcDMwMC9hY2xvY2FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5tNAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9h Y2xvY2FsLm00CTIwMDktMDUtMDYgMDE6MzE6NDEuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDc1MTIgQEAKLSsjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9jYWwgMS4xMC4xIC0q LSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKLSsjIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBP U0UuCi0rCi0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsgIFttNF9jb3B5KFtt NF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLSttNF9pZihB Q19BVVRPQ09ORl9WRVJTSU9OLCBbMi42M10sLAotK1ttNF93YXJuaW5nKFt0aGlzIGZpbGUgd2Fz IGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42My4KLStZb3UgaGF2ZSBhbm90aGVyIHZlcnNpb24g b2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvLgotK0lm IHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQg c3lzdGVtIGVudGlyZWx5LgotK1RvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVudGVk IGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKLSsKLSsjIGxpYnRv b2wubTQgLSBDb25maWd1cmUgbGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lzdGVtLiAtKi1BdXRvY29u Zi0qLQotKwotKyMgc2VyaWFsIDUyIEFDX1BST0dfTElCVE9PTAotKwotKwotKyMgQUNfUFJPVklE RV9JRkVMU0UoTUFDUk8tTkFNRSwgSUYtUFJPVklERUQsIElGLU5PVC1QUk9WSURFRCkKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBJZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZpbmVkIGJ5IEF1dG9jb25mLCBkZWZpbmUgaXQg aGVyZS4KLSttNF9pZmRlZihbQUNfUFJPVklERV9JRkVMU0VdLAotKyAgICAgICAgIFtdLAotKyAg ICAgICAgIFttNF9kZWZpbmUoW0FDX1BST1ZJREVfSUZFTFNFXSwKLSsJICAgICAgICAgW200X2lm ZGVmKFtBQ19QUk9WSURFXyQxXSwKLSsJCSAgICAgICAgICAgWyQyXSwgWyQzXSldKV0pCi0rCi0r Ci0rIyBBQ19QUk9HX0xJQlRPT0wKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19Q Uk9HX0xJQlRPT0xdLAotK1tBQ19SRVFVSVJFKFtfQUNfUFJPR19MSUJUT09MXSlkbmwKLStkbmwg SWYgQUNfUFJPR19DWFggaGFzIGFscmVhZHkgYmVlbiBleHBhbmRlZCwgcnVuIEFDX0xJQlRPT0xf Q1hYCi0rZG5sIGltbWVkaWF0ZWx5LCBvdGhlcndpc2UsIGhvb2sgaXQgaW4gYXQgdGhlIGVuZCBv ZiBBQ19QUk9HX0NYWC4KLSsgIEFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0rICAg IFtBQ19MSUJUT09MX0NYWF0sCi0rICAgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwgZGVmbihbQUNf UFJPR19DWFhdKVtBQ19MSUJUT09MX0NYWAotKyAgXSldKQotK2RubCBBbmQgYSBzaW1pbGFyIHNl dHVwIGZvciBGb3J0cmFuIDc3IHN1cHBvcnQKLSsgIEFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9H X0Y3N10sCi0rICAgIFtBQ19MSUJUT09MX0Y3N10sCi0rICAgIFtkZWZpbmUoW0FDX1BST0dfRjc3 XSwgZGVmbihbQUNfUFJPR19GNzddKVtBQ19MSUJUT09MX0Y3NwotK10pXSkKLSsKLStkbmwgUXVv dGUgQV1bTV9QUk9HX0dDSiBzbyB0aGF0IGFjbG9jYWwgZG9lc24ndCBicmluZyBpdCBpbiBuZWVk bGVzc2x5LgotK2RubCBJZiBlaXRoZXIgQUNfUFJPR19HQ0ogb3IgQV1bTV9QUk9HX0dDSiBoYXZl IGFscmVhZHkgYmVlbiBleHBhbmRlZCwgcnVuCi0rZG5sIEFDX0xJQlRPT0xfR0NKIGltbWVkaWF0 ZWx5LCBvdGhlcndpc2UsIGhvb2sgaXQgaW4gYXQgdGhlIGVuZCBvZiBib3RoLgotKyAgQUNfUFJP VklERV9JRkVMU0UoW0FDX1BST0dfR0NKXSwKLSsgICAgW0FDX0xJQlRPT0xfR0NKXSwKLSsgICAg W0FDX1BST1ZJREVfSUZFTFNFKFtBXVtNX1BST0dfR0NKXSwKLSsgICAgICBbQUNfTElCVE9PTF9H Q0pdLAotKyAgICAgIFtBQ19QUk9WSURFX0lGRUxTRShbTFRfQUNfUFJPR19HQ0pdLAotKwlbQUNf TElCVE9PTF9HQ0pdLAotKyAgICAgIFtpZmRlZihbQUNfUFJPR19HQ0pdLAotKwkgICAgIFtkZWZp bmUoW0FDX1BST0dfR0NKXSwgZGVmbihbQUNfUFJPR19HQ0pdKVtBQ19MSUJUT09MX0dDSl0pXSkK LSsgICAgICAgaWZkZWYoW0FdW01fUFJPR19HQ0pdLAotKwkgICAgIFtkZWZpbmUoW0FdW01fUFJP R19HQ0pdLCBkZWZuKFtBXVtNX1BST0dfR0NKXSlbQUNfTElCVE9PTF9HQ0pdKV0pCi0rICAgICAg IGlmZGVmKFtMVF9BQ19QUk9HX0dDSl0sCi0rCSAgICAgW2RlZmluZShbTFRfQUNfUFJPR19HQ0pd LAotKwkJZGVmbihbTFRfQUNfUFJPR19HQ0pdKVtBQ19MSUJUT09MX0dDSl0pXSldKV0pCi0rXSld KSMgQUNfUFJPR19MSUJUT09MCi0rCi0rCi0rIyBfQUNfUFJPR19MSUJUT09MCi0rIyAtLS0tLS0t LS0tLS0tLS0tCi0rQUNfREVGVU4oW19BQ19QUk9HX0xJQlRPT0xdLAotK1tBQ19SRVFVSVJFKFtB Q19MSUJUT09MX1NFVFVQXSlkbmwKLStBQ19CRUZPUkUoWyQwXSxbQUNfTElCVE9PTF9DWFhdKWRu bAotK0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX0Y3N10pZG5sCi0rQUNfQkVGT1JFKFskMF0s W0FDX0xJQlRPT0xfR0NKXSlkbmwKLSsKLSsjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBs aWJ0b29sIHdoZW4gbmVlZGVkCi0rTElCVE9PTF9ERVBTPSIkYWNfYXV4X2Rpci9sdG1haW4uc2gi Ci0rCi0rIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KLStMSUJUT09MPSckKFNIRUxMKSAk KHRvcF9idWlsZGRpcikvbGlidG9vbCcKLStBQ19TVUJTVChMSUJUT09MKWRubAotKwotKyMgUHJl dmVudCBtdWx0aXBsZSBleHBhbnNpb24KLStkZWZpbmUoW0FDX1BST0dfTElCVE9PTF0sIFtdKQot K10pIyBfQUNfUFJPR19MSUJUT09MCi0rCi0rCi0rIyBBQ19MSUJUT09MX1NFVFVQCi0rIyAtLS0t LS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdLAotK1tBQ19QUkVSRVEo Mi41MClkbmwKLStBQ19SRVFVSVJFKFtBQ19FTkFCTEVfU0hBUkVEXSlkbmwKLStBQ19SRVFVSVJF KFtBQ19FTkFCTEVfU1RBVElDXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19FTkFCTEVfRkFTVF9JTlNU QUxMXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCi0rQUNfUkVRVUlS RShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwK LStBQ19SRVFVSVJFKFtBQ19QUk9HX0xEXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0xEX1JF TE9BRF9GTEFHXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX05NXSlkbmwKLSsKLStBQ19SRVFV SVJFKFtBQ19QUk9HX0xOX1NdKWRubAotK0FDX1JFUVVJUkUoW0FDX0RFUExJQlNfQ0hFQ0tfTUVU SE9EXSlkbmwKLSsjIEF1dG9jb25mIDIuMTMncyBBQ19PQkpFWFQgYW5kIEFDX0VYRUVYVCBtYWNy b3Mgb25seSB3b3JrcyBmb3IgQyBjb21waWxlcnMhCi0rQUNfUkVRVUlSRShbQUNfT0JKRVhUXSlk bmwKLStBQ19SRVFVSVJFKFtBQ19FWEVFWFRdKWRubAotK2RubAotK0FDX0xJQlRPT0xfU1lTX01B WF9DTURfTEVOCi0rQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFCi0rQUNfTElCVE9P TF9PQkpESVIKLSsKLStBQ19SRVFVSVJFKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSlkbmwKLStfTFRf QUNfUFJPR19FQ0hPX0JBQ0tTTEFTSAotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsg ICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dy YW0uICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBl bnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rICAjIHZhbmlzaCBpbiBhIHB1ZmYg b2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRo ZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLSsgIGZp Ci0rICA7OwotK2VzYWMKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyBy b2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0 IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KLStYc2VkPSdz ZWQgLWUgMXMvXlgvLycKLStbc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcIlxcYCRcXFxcXVwpL1xc XDEvZyddCi0rCi0rIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJl ZmVyZW5jZXMuCi0rW2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtcXCJcXGBcXFxcXVwpL1xcXDEv ZyddCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2Nh cGVkIHNoZWxsIHZhcmlhYmxlIGluIGEKLSsjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcu Ci0rZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKLSsKLSsj IFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQg ZXhwcmVzc2lvbnMKLStub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKLSsKLSsjIENvbnN0YW50 czoKLStybT0icm0gLWYiCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgotK2RlZmF1bHRfb2ZpbGU9 bGlidG9vbAotK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCi0rCi0rIyBBbGwga25vd24gbGlua2VycyBy ZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCi0r IyB3aGljaCBuZWVkcyAnLmxpYicpLgotK2xpYmV4dD1hCi0rbHRtYWluPSIkYWNfYXV4X2Rpci9s dG1haW4uc2giCi0rb2ZpbGU9IiRkZWZhdWx0X29maWxlIgotK3dpdGhfZ251X2xkPSIkbHRfY3Zf cHJvZ19nbnVfbGQiCi0rCi0rQUNfQ0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNlKQotK0FDX0NIRUNL X1RPT0woUkFOTElCLCByYW5saWIsIDopCi0rQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDop Ci0rCi0rb2xkX0NDPSIkQ0MiCi0rb2xkX0NGTEFHUz0iJENGTEFHUyIKLSsKLSsjIFNldCBzYW5l IGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcwotK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIK LSt0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQotK3Rlc3QgLXogIiRBUyIgJiYg QVM9YXMKLSt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCi0rdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9 JENDCi0rdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCi0rdGVzdCAteiAi JERMTFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAotK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKLSt0 ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCi0rdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYg TUFHSUNfQ01EPWZpbGUKLSt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCi0rdGVzdCAteiAiJFNFRCIg JiYgU0VEPXNlZAotK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKLSt0ZXN0 IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9OgotK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9Ogot K3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCi0rCi0rIyBEZXRlcm1pbmUgY29t bWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCi0rb2xkX2FyY2hpdmVf Y21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCi0rb2xkX3Bvc3RpbnN0YWxsX2Nt ZHM9J2NobW9kIDY0NCAkb2xkbGliJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9Ci0rCi0raWYg dGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG9wZW5ic2Qq KQotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFO TElCIC10IFwkb2xkbGliIgotKyAgICA7OwotKyAgKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2Nt ZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLSsgICAgOzsKLSsg IGVzYWMKLSsgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwk b2xkbGliIgotK2ZpCi0rCi0rX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQotKwotKyMgT25s eSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJl cyBpdAotK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rZmlsZV9tYWdpYyopCi0rICBp ZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCi0rICAgIEFDX1BB VEhfTUFHSUMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLStfTFRfUkVRVUlSRURfREFSV0lOX0NI RUNLUwotKwotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19MSUJUT09MX0RMT1BFTl0sIGVuYWJsZV9k bG9wZW49eWVzLCBlbmFibGVfZGxvcGVuPW5vKQotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19MSUJU T09MX1dJTjMyX0RMTF0sCi0rZW5hYmxlX3dpbjMyX2RsbD15ZXMsIGVuYWJsZV93aW4zMl9kbGw9 bm8pCi0rCi0rQUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKLSsgICAgW0FDX0hFTFBfU1RS SU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKLSsJW2F2b2lkIGxvY2tpbmcgKG1pZ2h0IGJy ZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCi0rdGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAh PSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKLSsKLStBQ19BUkdfV0lUSChbcGljXSwK LSsgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljXSwKLSsJW3RyeSB0byB1c2Ugb25seSBQ SUMvbm9uLVBJQyBvYmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKLSsgICAgW3Bp Y19tb2RlPSIkd2l0aHZhbCJdLAotKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCi0rdGVzdCAteiAi JHBpY19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0Ci0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1 bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKLSt0YWduYW1lPQotK0FDX0xJ QlRPT0xfTEFOR19DX0NPTkZJRwotK19MVF9BQ19UQUdDT05GSUcKLStdKSMgQUNfTElCVE9PTF9T RVRVUAotKwotKwotKyMgX0xUX0FDX1NZU19DT01QSUxFUgotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LQotK0FDX0RFRlVOKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSwKLStbQUNfUkVRVUlSRShbQUNfUFJP R19DQ10pZG5sCi0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4K LStMVENDPSR7TFRDQy0iJENDIn0KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBz cGVjaWZpZWQsIHVzZSBDRkxBR1MuCi0rTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Ci0r Ci0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStjb21w aWxlcj0kQ0MKLStdKSMgX0xUX0FDX1NZU19DT01QSUxFUgotKwotKwotKyMgX0xUX0NDX0JBU0VO QU1FKENDKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1l LiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jvc3MtcHJlZml4LgotK0FDX0RF RlVOKFtfTFRfQ0NfQkFTRU5BTUVdLAotK1tmb3IgY2NfdGVtcCBpbiAkMSIiOyBkbwotKyAgY2Fz ZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltbXFwvXV1jb21waWxlIHwgY2NhY2hlIHwg KltbXFwvXV1jY2FjaGUgKSA7OwotKyAgICBkaXN0Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlm eSB8ICpbW1xcL11dcHVyaWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0r ICBlc2FjCi0rZG9uZQotK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1l ICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAotK10pCi0rCi0rCi0rIyBfTFRfQ09N UElMRVJfQk9JTEVSUExBVEUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sg Zm9yIGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCi0rIyB0aGUg c2ltcGxlIGNvbXBpbGVyIHRlc3QgY29kZS4KLStBQ19ERUZVTihbX0xUX0NPTVBJTEVSX0JPSUxF UlBMQVRFXSwKLStbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAotK2FjX291dGZpbGU9 Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUi ID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8 ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRybSBjb25mdGVzdCoKLStdKSMgX0xUX0NPTVBJ TEVSX0JPSUxFUlBMQVRFCi0rCi0rCi0rIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgbGlua2VyIGJvaWxlcnBsYXRlIG91dHB1 dCBvciB3YXJuaW5ncyB3aXRoCi0rIyB0aGUgc2ltcGxlIGxpbmsgdGVzdCBjb2RlLgotK0FDX0RF RlVOKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwKLStbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19T RURdKWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1w bGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xpbmsiIDI+ JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0 X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gLXIgY29uZnRlc3Qq Ci0rXSkjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIF9MVF9SRVFVSVJFRF9EQVJXSU5f Q0hFQ0tTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgZm9yIHNvbWUg dGhpbmdzIG9uIGRhcndpbgotK0FDX0RFRlVOKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10s WwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQotKyAgICBB Q19DSEVDS19UT09MKFtEU1lNVVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkKLSsgICAgQUNfQ0hFQ0tf VE9PTChbTk1FRElUXSwgW25tZWRpdF0sIFs6XSkKLSsKLSsgICAgQUNfQ0FDSEVfQ0hFQ0soW2Zv ciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Rd LAotKyAgICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCi0rICAgICAgaWYgdGVzdCAt eiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgotKyAgICMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFk ZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKyAgICMgYnkgZWl0 aGVyIHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQotKyAg ICMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVs ZSB0byB0aGUKLSsgICAjIGxpbmsgZmxhZ3MuCi0rICAgZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1 cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGli Y29uZnRlc3QuZHlsaWIgXAotKyAgICAgLWR5bmFtaWNsaWIgJHt3bH0tc2luZ2xlX21vZHVsZSBj b25mdGVzdC5jCi0rICAgaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYjsgdGhlbgotKyAgICAg bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKLSsgICAgIHJtIC1yZiBsaWJjb25mdGVzdC5k eWxpYioKLSsgICBmaQotKyAgIHJtIGNvbmZ0ZXN0LmMKLSsgICAgICBmaV0pCi0rICAgIEFDX0NB Q0hFX0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCi0rICAg ICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdF0sCi0rICAgICAgW2x0X2N2X2xkX2V4 cG9ydGVkX3N5bWJvbHNfbGlzdD1ubwotKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAg ICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0LnN5bQotKyAgICAgIExERkxBR1M9IiRMREZMQUdT IC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKLSsgICAgICBBQ19MSU5L X0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCi0rICAgW2x0X2N2X2xkX2V4cG9ydGVk X3N5bWJvbHNfbGlzdD15ZXNdLAotKyAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9 bm9dKQotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rICAgIF0pCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bWzAxMjNdXSkKLSsgICAgICBfbHRf ZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0r ICAgIGRhcndpbjEuKikKLSsgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0 X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2lu KikKLSsgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQg dGFyZ2V0IGRlZmF1bHRzCi0rICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBh bmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKLSsgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40 LiBEb24ndCB5b3UgbG92ZSBpdD8KLSsgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFS R0VULTEwLjB9LCRob3N0IGluCi0rICAgMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5b WzkxXV0qKQotKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAk e3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgIDEwLltbMDEyXV0qKQotKyAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3ds fXN1cHByZXNzJyA7OwotKyAgIDEwLiopCi0rICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0n JHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rICAgICAgZXNhYwotKyAg ICA7OwotKyAgZXNhYwotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIg PSAieWVzIjsgdGhlbgotKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUn Ci0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Qi ID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0 ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0n Ci0rICAgIGVsc2UKLSsgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSJ+JE5NRURJVCAtcyBcJG91 dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gXCR7bGlifSIKLSsgICAgZmkK LSsgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KLSsgICAgICBfbHRfZHN5bXV0 aWw9In4kRFNZTVVUSUwgXCRsaWIgfHwgOiIKLSsgICAgZWxzZQotKyAgICAgIF9sdF9kc3ltdXRp bD0KLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLStdKQotKwotKyMgX0xUX0FDX1NZU19MSUJQ QVRIX0FJWAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgTGlua3MgYSBtaW5pbWFsIHBy b2dyYW0gYW5kIGNoZWNrcyB0aGUgZXhlY3V0YWJsZQotKyMgZm9yIHRoZSBzeXN0ZW0gZGVmYXVs dCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2VzLAotKyMgdGhpcyBpcyAvdXNy L2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAotKyMgdGhlIGxv Y2F0aW9uIG9mIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBNUEkgbGlicyBhcmUgaW5jbHVkZWQgdG9v LgotKyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJhcnkg cGF0aCBhY2NvcmRpbmcKLSsjIHRvIHRoZSBhaXggbGQgbWFudWFsLgotK0FDX0RFRlVOKFtfTFRf QUNfU1lTX0xJQlBBVEhfQUlYXSwKLStbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAot K0FDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSxbCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScK LSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAg ICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAg LUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9s aWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBm aW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9s aWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQg LW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpXSxbXSkKLStpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKLStdKSMgX0xU X0FDX1NZU19MSUJQQVRIX0FJWAotKwotKwotKyMgX0xUX0FDX1NIRUxMX0lOSVQoQVJHKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfTFRfQUNfU0hFTExfSU5JVF0sCi0r W2lmZGVmKFtBQ19ESVZFUlNJT05fTk9USUNFXSwKLSsJICAgICBbQUNfRElWRVJUX1BVU0goQUNf RElWRVJTSU9OX05PVElDRSldLAotKwkgW0FDX0RJVkVSVF9QVVNIKE5PVElDRSldKQotKyQxCi0r QUNfRElWRVJUX1BPUAotK10pIyBfTFRfQUNfU0hFTExfSU5JVAotKwotKwotKyMgX0xUX0FDX1BS T0dfRUNIT19CQUNLU0xBU0gKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBZGQg c29tZSBjb2RlIHRvIHRoZSBzdGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQg d2hpY2gKLSsjIHdpbGwgZmluZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnBy ZXQgYmFja3NsYXNoZXMuCi0rQUNfREVGVU4oW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSwK LStbX0xUX0FDX1NIRUxMX0lOSVQoWwotKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRl ciB0aGUgY29ycmVjdCBzaGVsbC4KLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKwot K2Nhc2UgWCRFQ0hPIGluCi0rWCotLWZhbGxiYWNrLWVjaG8pCi0rICAjIFJlbW92ZSBvbmUgbGV2 ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgotKyAgRUNITz1g ZWNobyAiJEVDSE8iIHwgc2VkICdzLFxcXFxcWyRdXFxbJF0wLCdbJF0wJywnYAotKyAgOzsKLStl c2FjCi0rCi0rZWNobz0ke0VDSE8tZWNob30KLStpZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4 ZWM7IHRoZW4KLSsgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVl LgotKyAgc2hpZnQKLStlbGlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4K LSsgICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSsg IDoKLStlbGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRo ZW4KLSsgICMgWWlwcGVlLCAkZWNobyB3b3JrcyEKLSsgIDoKLStlbHNlCi0rICAjIFJlc3RhcnQg dW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCi0rICBleGVjICRTSEVMTCAiWyRdMCIgLS1uby1yZWV4 ZWMgJHsxKyJbJF1AIn0KLStmaQotKwotK2lmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVj aG87IHRoZW4KLSsgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCi0rICBzaGlmdAotKyAgY2F0IDw8 RU9GCi0rWyRdKgotK0VPRgotKyAgZXhpdCAwCi0rZmkKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5k IFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYg Q0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQg Q0RQQVRICi0rCi0raWYgdGVzdCAteiAiJEVDSE8iOyB0aGVuCi0raWYgdGVzdCAiWCR7ZWNob190 ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCi0rIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdl IGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0Ci0rICBm b3IgY21kIGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRd MCInICdzZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KLSsgICAgIyBleHBlY3RlZCBzaXpl czogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KLSsgICAgaWYg KGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGApIDI+L2Rldi9udWxsICYmCi0rICAgICAgIGVj aG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGAgJiYKLSsgICAgICAgKHRlc3QgIlgkZWNob190ZXN0 X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGwKLSsgICAgdGhlbgot KyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rZmkKLSsKLStpZiB0ZXN0ICJYYCgkZWNo byAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSsgICBlY2hvX3Rlc3Rpbmdfc3RyaW5n PWAoJGVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgdGVzdCAi WCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICA6 Ci0rZWxzZQotKyAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1bHQg ZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0rICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBp bXBvc3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCi0rICAjICAgZWNobyAiJHNvbWV0 aGluZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJwotKyAgIwotKyAgIyBTbywgZmlyc3Qgd2UgbG9vayBm b3IgYSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgotKwotKyAgbHRfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBmb3IgZGlyIGluICRQQVRIIC91c3IvdWNi OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hv IHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKLSsgICAgICAgdGVzdCAiWGAoJGRp ci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgICBlY2hvX3Rlc3Rp bmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAm JgotKyAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0 cmluZyI7IHRoZW4KLSsgICAgICBlY2hvPSIkZGlyL2VjaG8iCi0rICAgICAgYnJlYWsKLSsgICAg ZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotKwotKyAgaWYgdGVzdCAiWCRlY2hv IiA9IFhlY2hvOyB0aGVuCi0rICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28g bG9vayBmb3IgYWx0ZXJuYXRpdmVzLgotKyAgICBpZiB0ZXN0ICJYYChwcmludCAtciAnXHQnKSAy Pi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSsgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKHBy aW50IC1yICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKyAgICAgICB0ZXN0 ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsg ICAgICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRy aWNrLgotKyAgICAgIGVjaG89J3ByaW50IC1yJwotKyAgICBlbGlmICh0ZXN0IC1mIC9iaW4va3No IHx8IHRlc3QgLWYgL2Jpbi9rc2gkYWNfZXhlZXh0KSAmJgotKwkgdGVzdCAiWCRDT05GSUdfU0hF TEwiICE9IFgvYmluL2tzaDsgdGhlbgotKyAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5u aW5nIGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgotKyAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVM TD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdf U0hFTEwKLSsgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKLSsgICAgICBleHBvcnQgQ09ORklH X1NIRUxMCi0rICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezEr IlskXUAifQotKyAgICBlbHNlCi0rICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotKyAgICAgIGVj aG89J3ByaW50ZiAlc1xuJwotKyAgICAgIGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9u dWxsYCIgPSAnWFx0JyAmJgotKwkgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190 ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3Ry aW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSMgQ29vbCwgcHJpbnRmIHdvcmtz Ci0rCToKLSsgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklH X1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCi0rCSAg IHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgotKwkgICBlY2hvX3Rlc3Rp bmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hv ICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICJYJGVjaG9f dGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJQ09ORklHX1NI RUxMPSRPUklHSU5BTF9DT05GSUdfU0hFTEwKLSsJZXhwb3J0IENPTkZJR19TSEVMTAotKwlTSEVM TD0iJENPTkZJR19TSEVMTCIKLSsJZXhwb3J0IFNIRUxMCi0rCWVjaG89IiRDT05GSUdfU0hFTEwg WyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAo JENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAm JgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgZWNo b190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAi JGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgdGVzdCAiWCRlY2hvX3Rl c3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCWVjaG89IiRDT05G SUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgZWxzZQotKwkjIG1heWJlIHdp dGggYSBzbWFsbGVyIHN0cmluZy4uLgotKwlwcmV2PToKLSsKLSsJZm9yIGNtZCBpbiAnZWNobyB0 ZXN0JyAnc2VkIDJxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdz ZWQgNTBxICJbJF0wIic7IGRvCi0rCSAgaWYgKHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAi WGBldmFsICRjbWRgIikgMj4vZGV2L251bGwKLSsJICB0aGVuCi0rCSAgICBicmVhawotKwkgIGZp Ci0rCSAgcHJldj0iJGNtZCIKLSsJZG9uZQotKwotKwlpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1 MHEgIlskXTAiJzsgdGhlbgotKwkgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCi0rCSAg ZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcKLSsJICBleGVjICR7T1JJR0lOQUxfQ09ORklHX1NIRUxM LSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1AIn0KLSsJZWxzZQotKwkg ICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVjaG8uCi0r CSAgZWNobz1lY2hvCi0rCWZpCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rZmkKLStmaQot KwotKyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0 byBsaWJ0b29sIGZyb20KLSsjIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBv cmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KLStFQ0hPPSRlY2hvCi0raWYgdGVzdCAiWCRF Q0hPIiA9ICJYJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KLSsgICBF Q0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rZmkKLSsKLStB Q19TVUJTVChFQ0hPKQotK10pXSkjIF9MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNICi0rCi0rCi0r IyBfTFRfQUNfTE9DSwotKyMgLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0xUX0FDX0xPQ0tdLAot K1tBQ19BUkdfRU5BQkxFKFtsaWJ0b29sLWxvY2tdLAotKyAgICBbQUNfSEVMUF9TVFJJTkcoWy0t ZGlzYWJsZS1saWJ0b29sLWxvY2tdLAotKwlbYXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFy YWxsZWwgYnVpbGRzKV0pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhubyAm JiBlbmFibGVfbGlidG9vbF9sb2NrPXllcwotKwotKyMgU29tZSBmbGFncyBuZWVkIHRvIGJlIHBy b3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAotKyMgbGlidG9vbCBz dXBwb3J0LgotK2Nhc2UgJGhvc3QgaW4KLStpYTY0LSotaHB1eCopCi0rICAjIEZpbmQgb3V0IHdo aWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4 dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9i aW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKyAgICAqRUxGLTMyKikKLSsgICAgICBI UFVYX0lBNjRfTU9ERT0iMzIiCi0rICAgICAgOzsKLSsgICAgKkVMRi02NCopCi0rICAgICAgSFBV WF9JQTY0X01PREU9IjY0IgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYg Y29uZnRlc3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3 ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdbI11saW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIicgPiBj b25mdGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAg IGlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgY2FzZSBgL3Vz ci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKyAgICAqMzItYml0KikKLSsgICAg ICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKyAgICAgIDs7Ci0rICAgICpOMzIqKQotKyAg ICAgIExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKLSsgICAgICA7OwotKyAgICAqNjQtYml0 KikKLSsgICAgICBMRD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCi0rICAgICAgOzsKLSsgICAgZXNh YwotKyAgIGVsc2UKLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0 YCBpbgotKyAgICAqMzItYml0KikKLSsgICAgICBMRD0iJHtMRC1sZH0gLTMyIgotKyAgICAgIDs7 Ci0rICAgICpOMzIqKQotKyAgICAgIExEPSIke0xELWxkfSAtbjMyIgotKyAgICAgIDs7Ci0rICAg ICo2NC1iaXQqKQotKyAgICAgIExEPSIke0xELWxkfSAtNjQiCi0rICAgICAgOzsKLSsgICAgZXNh YwotKyAgIGZpCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSt4ODZfNjQt KmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51 eCp8IFwKLStzMzkwKi0qbGludXgqfHNwYXJjKi0qbGludXgqKQotKyAgIyBGaW5kIG91dCB3aGlj aCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQK LSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmlu L2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgKjMyLWJpdCopCi0rICAgICAgY2FzZSAkaG9zdCBp bgotKyAgICAgICAgeDg2XzY0LSprZnJlZWJzZCotZ251KQotKyAgICAgICAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmX2kzODZfZmJzZCIKLSsgICAgICAgICAgOzsKLSsgICAgICAgIHg4Nl82NC0qbGlu dXgqKQotKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCi0rICAgICAgICAgIDs7 Ci0rICAgICAgICBwcGM2NC0qbGludXgqfHBvd2VycGM2NC0qbGludXgqKQotKyAgICAgICAgICBM RD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKLSsgICAgICAgICAgOzsKLSsgICAgICAgIHMz OTB4LSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKLSsgICAg ICAgICAgOzsKLSsgICAgICAgIHNwYXJjNjQtKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZjMyX3NwYXJjIgotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7 OwotKyAgICAqNjQtYml0KikKLSsgICAgICBsaWJzdWZmPTY0Ci0rICAgICAgY2FzZSAkaG9zdCBp bgotKyAgICAgICAgeDg2XzY0LSprZnJlZWJzZCotZ251KQotKyAgICAgICAgICBMRD0iJHtMRC1s ZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgotKyAgICAgICAgICA7OwotKyAgICAgICAgeDg2XzY0LSps aW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgotKyAgICAgICAg ICA7OwotKyAgICAgICAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCi0rICAgICAgICAg IExEPSIke0xELWxkfSAtbSBlbGY2NHBwYyIKLSsgICAgICAgICAgOzsKLSsgICAgICAgIHMzOTAq LSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKyAgICAg ICAgICA7OwotKyAgICAgICAgc3BhcmMqLSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxk fSAtbSBlbGY2NF9zcGFyYyIKLSsgICAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsK LSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0rKi0qLXNj bzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQg ZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsgIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKyAgQ0ZM QUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEMgY29t cGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19uZWVkc19iZWxmLAotKyAgICBbQUNfTEFOR19Q VVNIKEMpCi0rICAgICBBQ19UUllfTElOSyhbXSxbXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXNd LFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKLSsgICAgIEFDX0xBTkdfUE9QXSkKLSsgIGlmIHRl c3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCi0rICAgICMgdGhpcyBp cyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVs ZgotKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKLSsgIGZpCi0rICA7OwotK3NwYXJjKi0qc29s YXJpcyopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdp bnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7 IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAqNjQt Yml0KikKLSsgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgotKyAgICAgIHllcyopIExE PSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKLSsgICAgICAqKQotKyAgICAgICAgaWYgJHtM RC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCi0rCSAgTEQ9IiR7TEQtbGR9IC02NCIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0r QUNfUFJPVklERV9JRkVMU0UoW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwKLStbKi0qLWN5Z3dpbiog fCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqKQotKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0 b29sLCBmYWxzZSkKLSsgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKLSsgIEFDX0NIRUNL X1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCi0rICA7OwotKyAgXSkKLStlc2FjCi0rCi0r bmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCi0rCi0rXSkjIF9MVF9BQ19MT0NLCi0r Ci0rCi0rIyBBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1F LCBGTEFHUywKLSsjCQlbT1VUUFVULUZJTEVdLCBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZB SUxVUkVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIg b3B0aW9uIHdvcmtzCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwKLStb QUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKQotK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0s Ci0rICBbJDI9bm8KLSsgIGlmZWxzZShbJDRdLCAsIFthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19v YmpleHRdLCBbYWNfb3V0ZmlsZT0kNF0pCi0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJDMiCi0r ICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2 YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0 LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2Vs ZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBk b2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVj dGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2 b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwg JFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsg dCcgXAotKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsg dCcgXAotKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAi XCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkK LSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0k PwotKyAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgIGVjaG8gIiRh c19tZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsg ICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsg ICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlm IG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mg b3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVy X2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNF RCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0 ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+ L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICQyPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRy bSBjb25mdGVzdCoKLStdKQotKwotK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCi0rICAg IGlmZWxzZShbJDVdLCAsIDosIFskNV0pCi0rZWxzZQotKyAgICBpZmVsc2UoWyQ2XSwgLCA6LCBb JDZdKQotK2ZpCi0rXSkjIEFDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OCi0rCi0rCi0rIyBBQ19M SUJUT09MX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCi0rIyAg ICAgICAgICAgICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJF XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIgb3B0aW9uIHdv cmtzCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sCi0rW0FDX1JFUVVJUkUo W0xUX0FDX1BST0dfU0VEXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAotKyAgWyQy PW5vCi0rICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKLSsgICBMREZMQUdTPSIkTERGTEFHUyAk MyIKLSsgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19l eHQKLSsgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFu ZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8g aWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhl bgotKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAg ICBjYXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgICRlY2hvICJY JF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4 cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5l cjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7 IHRoZW4KLSsgICAgICAgICAkMj15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAg JDI9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJHJtIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxB R1M9IiRzYXZlX0xERkxBR1MiCi0rXSkKLSsKLStpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhl bgotKyAgICBpZmVsc2UoWyQ0XSwgLCA6LCBbJDRdKQotK2Vsc2UKLSsgICAgaWZlbHNlKFskNV0s ICwgOiwgWyQ1XSkKLStmaQotK10pIyBBQ19MSUJUT09MX0xJTktFUl9PUFRJT04KLSsKLSsKLSsj IEFDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sCi0rWyMgZmluZCB0aGUg bWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotK0FDX01TR19DSEVDS0lO RyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQotK0FDX0NB Q0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAotKyAgaT0wCi0rICB0ZXN0c3Ry aW5nPSJBQkNEIgotKwotKyAgY2FzZSAkYnVpbGRfb3MgaW4KLSsgIG1zZG9zZGpncHAqKQotKyAg ICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBw cm9ibGVtcyBpbiBsaWJjCi0rICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIw MDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KLSsgICAgIyBkdXJpbmcgZ2xvYiBleHBh bnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKLSsgICAg IyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCi0rICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKLSsgICAgOzsKLSsK LSsgIGdudSopCi0rICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWly ZWQgYmVjYXVzZSB0aGVyZSBpcwotKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29t bWFuZCBsaW5lIGFyZ3VtZW50cy4KLSsgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFz IG5vIGxpbWl0IHdoYXRzb2V2ZXIKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOwotKyAg ICA7OwotKwotKyAgY3lnd2luKiB8IG1pbmd3KikKLSsgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0 ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKLSsgICAgIyBhYm91dCA1IG1p bnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KLSsgICAgIyBXb3Jz ZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKLSsgICAg IyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBw YXRpZW5jZQotKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXgg bGluZSBsZW5ndGggb2YgMjU2aykuCi0rICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1 c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQotKyAgICAjIGFsbCBvZiB0aGUg c3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgotKyAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIGFtaWdhb3MqKQotKyAgICAjIE9uIEFt aWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCi0rICAg ICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIu Ci0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgbmV0YnNk KiB8IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKLSsgICAgIyBU aGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRo ZXIuCi0rICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lz X21heF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsaWYgdGVz dCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbHNlCi0rICAgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCi0r ICAgIGZpCi0rICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCi0rICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCi0rICAgIDs7 Ci0rCi0rICBpbnRlcml4KikKLSsgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhh cmRjb2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCi0rICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj0xOTY2MDgKLSsgICAgOzsKLSsKLSsgIG9zZiopCi0rICAgICMgRHIuIEhhbnMg RWtrZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNv bmZpZ3VyZQotKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xp bWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAotKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVs IHBhbmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgotKyAgICAjIEZpcnN0IHNldCBh IHJlYXNvbmFibGUgZGVmYXVsdC4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0Ci0r ICAgICMKLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KLSsgICAgICBjYXNl IGAvc2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgotKyAg ICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKLSsgICAgICBlc2FjCi0rICAg IGZpCi0rICAgIDs7Ci0rICBzY28zLjJ2NSopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0x MDI0MDAKLSsgICAgOzsKLSsgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKLSsgICAg a2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAot KyAgICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbWyAJXV0vLydgCi0rICAgIGVsc2UKLSsg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKLSsgICAgZmkKLSsgICAgOzsKLSsgICop Ci0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9u dWxsYAotKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgotKyAg ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwv IDRgCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4gXCogM2AKLSsgICAgZWxzZQotKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hF TEwtL2Jpbi9zaH19Ci0rICAgICAgd2hpbGUgKHRlc3QgIlgiYCRTSEVMTCBbJF0wIC0tZmFsbGJh Y2stZWNobyAiWCR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAotKwkgICAgICAgPSAiWFgkdGVz dHN0cmluZyIpID4vZGV2L251bGwgMj4mMSAmJgotKwkgICAgICBuZXdfcmVzdWx0PWBleHByICJY JHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYCAmJgotKwkgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49JG5ld19yZXN1bHQgJiYKLSsJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQg YmUgZW5vdWdoCi0rICAgICAgZG8KLSsgICAgICAgIGk9YGV4cHIgJGkgKyAxYAotKyAgICAgICAg dGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgIHRl c3RzdHJpbmc9Ci0rICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1 c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbiBtYXNzaXZlCi0rICAgICAgIyBhbW91bnRzIG9m IGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlIGxpbmtlci4K LSsgICAgICAjIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBc LyAyYAotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotK10pCi0raWYgdGVzdCAtbiAkbHRfY3Zf c3lzX21heF9jbWRfbGVuIDsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkbHRfY3Zfc3lzX21heF9j bWRfbGVuKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm9uZSkKLStmaQotK10pIyBBQ19MSUJU T09MX1NZU19NQVhfQ01EX0xFTgotKwotKwotKyMgX0xUX0FDX0NIRUNLX0RMRkNOCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0xUX0FDX0NIRUNLX0RMRkNOXSwKLStbQUNfQ0hF Q0tfSEVBREVSUyhkbGZjbi5oKWRubAotK10pIyBfTFRfQUNfQ0hFQ0tfRExGQ04KLSsKLSsKLSsj IF9MVF9BQ19UUllfRExPUEVOX1NFTEYgKEFDVElPTi1JRi1UUlVFLCBBQ1RJT04tSUYtVFJVRS1X LVVTQ09SRSwKLSsjICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNUSU9OLUlGLUZBTFNFLCBB Q1RJT04tSUYtQ1JPU1MtQ09NUElMSU5HKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19M VF9BQ19UUllfRExPUEVOX1NFTEZdLAotK1tBQ19SRVFVSVJFKFtfTFRfQUNfQ0hFQ0tfRExGQ05d KWRubAotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSsgIFskNF0K LStlbHNlCi0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3Vz Y29yZT0yCi0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3QuJGFj X2V4dCA8PEVPRgotK1sjbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29u ZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2Vu ZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAg ZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xP QkFMCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAg IGRlZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5 IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3 ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsj aWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9M QVpZCi0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNl Ci0rIyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9O T1cJUlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAg ICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMg ICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAg ICAgIGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rI2lmZGVmIF9f Y3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCk7Ci0rI2VuZGlmCi0rCi0rdm9p ZCBmbm9yZCgpIHsgaW50IGk9NDI7fQotK2ludCBtYWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9 IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVz ID0gJGx0X2RsdW5rbm93bjsKLSsKLSsgIGlmIChzZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRs c3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAg ICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3Vz Y29yZTsKLSsgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAg ICBwdXRzIChkbGVycm9yICgpKTsKLSsKLSsgICAgZXhpdCAoc3RhdHVzKTsKLSt9XQotK0VPRgot KyAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0 fSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01FU1NB R0VfTE9HX0ZEIDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRf c3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKLSsgICAgICB4JGx0X2Rs bmVlZF91c2NvcmUpICQyIDs7Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7Ci0rICAg IGVzYWMKLSsgIGVsc2UgOgotKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICAkMwotKyAg ZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLStdKSMgX0xUX0FDX1RSWV9ETE9QRU5fU0VMRgot KwotKwotKyMgQUNfTElCVE9PTF9ETE9QRU5fU0VMRgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK0FDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwKLStbQUNfUkVRVUlSRShbX0xU X0FDX0NIRUNLX0RMRkNOXSlkbmwKLStpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7 IHRoZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5rbm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVu a25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgotK2Vsc2UKLSsgIGx0 X2N2X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rCi0rICBjYXNlICRob3N0X29z IGluCi0rICBiZW9zKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKLSsgICAgbHRf Y3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICA7OwotKwot KyAgbWluZ3cqIHwgcHczMiopCi0rICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCi0rICAg IGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgIDs7Ci0rCi0rICBjeWd3aW4qKQotKyAgICBsdF9jdl9k bG9wZW49ImRsb3BlbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgOzsKLSsKLSsgIGRh cndpbiopCi0rICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5z dCBpdAotKyAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVu PSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sWwotKyAgICBsdF9jdl9kbG9wZW49 ImR5bGQiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15 ZXMKLSsgICAgXSkKLSsgICA7OwotKwotKyAgKikKLSsgICAgQUNfQ0hFQ0tfRlVOQyhbc2hsX2xv YWRdLAotKwkgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIl0sCi0rICAgICAgW0FDX0NIRUNLX0xJ QihbZGxkXSwgW3NobF9sb2FkXSwKLSsJICAgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9j dl9kbG9wZW5fbGlicz0iLWxkbGQiXSwKLSsJW0FDX0NIRUNLX0ZVTkMoW2Rsb3Blbl0sCi0rCSAg ICAgIFtsdF9jdl9kbG9wZW49ImRsb3BlbiJdLAotKwkgIFtBQ19DSEVDS19MSUIoW2RsXSwgW2Rs b3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRs Il0sCi0rCSAgICBbQUNfQ0hFQ0tfTElCKFtzdmxkXSwgW2Rsb3Blbl0sCi0rCQkgIFtsdF9jdl9k bG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCJdLAotKwkgICAgICBbQUNf Q0hFQ0tfTElCKFtkbGRdLCBbZGxkX2xpbmtdLAotKwkJICAgIFtsdF9jdl9kbG9wZW49ImRsZF9s aW5rIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSkKLSsJICAgICAgXSkKLSsJICAgIF0pCi0r CSAgXSkKLSsJXSkKLSsgICAgICBdKQotKyAgICA7OwotKyAgZXNhYwotKwotKyAgaWYgdGVzdCAi eCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgotKyAgICBlbmFibGVfZGxvcGVuPXllcwotKyAg ZWxzZQotKyAgICBlbmFibGVfZGxvcGVuPW5vCi0rICBmaQotKwotKyAgY2FzZSAkbHRfY3ZfZGxv cGVuIGluCi0rICBkbG9wZW4pCi0rICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAg dGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxB R1MgLURIQVZFX0RMRkNOX0giCi0rCi0rICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAg IHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjXCIKLSsKLSsgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSsgICAgTElC Uz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgotKwotKyAgICBBQ19DQUNIRV9DSEVDSyhbd2hl dGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAotKwkgIGx0X2N2X2Rsb3Blbl9zZWxm LCBbZG5sCi0rCSAgX0xUX0FDX1RSWV9ETE9QRU5fU0VMRigKLSsJICAgIGx0X2N2X2Rsb3Blbl9z ZWxmPXllcywgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9 bm8sIGx0X2N2X2Rsb3Blbl9zZWxmPWNyb3NzKQotKyAgICBdKQotKwotKyAgICBpZiB0ZXN0ICJ4 JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21w aWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj XCIKLSsgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHBy b2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAotKyAgICAJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0 aWMsIFtkbmwKLSsJICBfTFRfQUNfVFJZX0RMT1BFTl9TRUxGKAotKwkgICAgbHRfY3ZfZGxvcGVu X3NlbGZfc3RhdGljPXllcywgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywKLSsJICAgIGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9z cykKLSsgICAgICBdKQotKyAgICBmaQotKwotKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1Mi Ci0rICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rICAgIExJQlM9IiRzYXZlX0xJQlMiCi0r ICAgIDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgotKyAgeWVz fG5vKSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7Ci0rICAqKSBlbmFi bGVfZGxvcGVuX3NlbGY9dW5rbm93biA7OwotKyAgZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxv cGVuX3NlbGZfc3RhdGljIGluCi0rICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9 JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0 YXRpYz11bmtub3duIDs7Ci0rICBlc2FjCi0rZmkKLStdKSMgQUNfTElCVE9PTF9ETE9QRU5fU0VM RgotKwotKwotKyMgQUNfTElCVE9PTF9QUk9HX0NDX0NfTyhbVEFHTkFNRV0pCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHRvIHNlZSBpZiBvcHRpb25zIC1j IGFuZCAtbyBhcmUgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyCi0rQUNfREVG VU4oW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dLAotK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NF RF0pZG5sCi0rQUNfUkVRVUlSRShbX0xUX0FDX1NZU19DT01QSUxFUl0pZG5sCi0rQUNfQ0FDSEVf Q0hFQ0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAotKyAg W19MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCi0rICBbX0xUX0FD X1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCi0rICAgJHJtIC1yIGNvbmZ0 ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAg IG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29u ZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIu JGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhl IGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFp bmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFj X2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwot KyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91 bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwg JFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsg dCcgXAotKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsg dCcgXAotKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAi XCJcJGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkK LSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0 dXM9JD8KLSsgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAg ZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xP R19GRAotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4k YWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBh bmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5v IGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCi0rICAgICAkU0VE ICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgotKyAg ICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhw IG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBfTFRfQUNfVEFHVkFS KGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAg Y2htb2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAkcm0gY29uZnRlc3QqCi0rICAg IyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZv cgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgotKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVz ICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKLSsgICAkcm0gb3V0 LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4KLSsgICBybWRpciBjb25mdGVzdAotKyAgICRybSBj b25mdGVzdCoKLStdKQotK10pIyBBQ19MSUJUT09MX1BST0dfQ0NfQ19PCi0rCi0rCi0rIyBBQ19M SUJUT09MX1NZU19IQVJEX0xJTktfTE9DS1MoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8g aGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCi0rQUNfREVGVU4oW0FDX0xJ QlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10sCi0rW0FDX1JFUVVJUkUoW19MVF9BQ19MT0NLXSlk bmwKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJF9MVF9BQ19UQUdWQVIo bHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIg IT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2Nr cyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiB3ZSBjYW4gbG9j ayB3aXRoIGhhcmQgbGlua3NdKQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRybSBjb25mdGVzdCoK LSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5v Ci0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8 fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwg JiYgaGFyZF9saW5rcz1ubwotKyAgQUNfTVNHX1JFU1VMVChbJGhhcmRfbGlua3NdKQotKyAgaWYg dGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgQUNfTVNHX1dBUk4oW2AkQ0MnIGRv ZXMgbm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2UgLWonIG1heSBiZSB1bnNhZmVdKQotKyAg ICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0r XSkjIEFDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUwotKwotKwotKyMgQUNfTElCVE9PTF9P QkpESVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfT0JKRElS XSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2ZvciBvYmpkaXJdLCBbbHRfY3Zfb2JqZGlyXSwKLStbcm0g LWYgLmxpYnMgMj4vZGV2L251bGwKLStta2RpciAubGlicyAyPi9kZXYvbnVsbAotK2lmIHRlc3Qg LWQgLmxpYnM7IHRoZW4KLSsgIGx0X2N2X29iamRpcj0ubGlicwotK2Vsc2UKLSsgICMgTVMtRE9T IGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3QuCi0rICBsdF9j dl9vYmpkaXI9X2xpYnMKLStmaQotK3JtZGlyIC5saWJzIDI+L2Rldi9udWxsXSkKLStvYmpkaXI9 JGx0X2N2X29iamRpcgotK10pIyBBQ19MSUJUT09MX09CSkRJUgotKwotKwotKyMgQUNfTElCVE9P TF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgaGFyZGNvZGluZyBhdHRy aWJ1dGVzLgotK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0s Ci0rW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBw cm9ncmFtc10pCi0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KLStpZiB0ZXN0 IC1uICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8IFwK LSsgICB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihydW5wYXRoX3ZhciwgJDEpIiB8fCBcCi0rICAg dGVzdCAiWCRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIiA9ICJYeWVzIiA7 IHRoZW4KLSsKLSsgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGFudCBkaXJlY3Rvcmllcy4K LSsgIGlmIHRlc3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpIiAhPSBubyAm JgotKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBz aGxpYnBhdGhfdmFyLCB3ZQotKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1p Z2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdlIHNob3Vs ZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAgIyMgdGVz dCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpIiAhPSBubyAmJgot KyAgICAgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpIiAhPSBubzsg dGhlbgotKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJh cnkgZGlyZWN0b3J5LgotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXJl bGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5k IHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2FjdGlvbiwgJDEpPWltbWVkaWF0ZQotKyAgZmkKLStlbHNlCi0rICAjIFdlIGNhbm5v dCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGlu ZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAk MSk9dW5zdXBwb3J0ZWQKLStmaQotK0FDX01TR19SRVNVTFQoWyRfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2FjdGlvbiwgJDEpXSkKLSsKLStpZiB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9h Y3Rpb24sICQxKSIgPSByZWxpbms7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90 IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkK LSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotK10pIyBBQ19MSUJUT09MX1BS T0dfTERfSEFSRENPREVfTElCUEFUSAotKwotKwotKyMgQUNfTElCVE9PTF9TWVNfTElCX1NUUklQ Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNf TElCX1NUUklQXSwKLStbc3RyaXBsaWI9Ci0rb2xkX3N0cmlwbGliPQotK0FDX01TR19DSEVDS0lO Ryhbd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlXSkKLStpZiB0ZXN0IC1u ICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgZ3JlcCAiR05VIHN0cmlwIiA+L2Rldi9udWxs OyB0aGVuCi0rICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJ UCAtLXN0cmlwLWRlYnVnIgotKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNU UklQIC0tc3RyaXAtdW5uZWVkZWQiCi0rICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotK2Vsc2UKLSsj IEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29v ZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICBkYXJ3aW4qKQotKyAgICAgICBpZiB0 ZXN0IC1uICIkU1RSSVAiIDsgdGhlbgotKyAgICAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCi0r ICAgICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCi0rICAgICAgICAgQUNfTVNHX1JFU1VM VChbeWVzXSkKLSsgICAgICAgZWxzZQotKyAgQUNfTVNHX1JFU1VMVChbbm9dKQotK2ZpCi0rICAg ICAgIDs7Ci0rICAgKikKLSsgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgOzsKLSsgIGVzYWMK LStmaQotK10pIyBBQ19MSUJUT09MX1NZU19MSUJfU1RSSVAKLSsKLSsKLSsjIEFDX0xJQlRPT0xf U1lTX0RZTkFNSUNfTElOS0VSCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg UE9SVE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKLStBQ19ERUZVTihbQUNf TElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAotK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NF RF0pZG5sCi0rQUNfTVNHX0NIRUNLSU5HKFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3Nd KQotK2xpYnJhcnlfbmFtZXNfc3BlYz0KLStsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJwotK3NvbmFt ZV9zcGVjPQotK3NocmV4dF9jbWRzPSIuc28iCi0rcG9zdGluc3RhbGxfY21kcz0KLStwb3N0dW5p bnN0YWxsX2NtZHM9Ci0rZmluaXNoX2NtZHM9Ci0rZmluaXNoX2V2YWw9Ci0rc2hsaWJwYXRoX3Zh cj0KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgotK3ZlcnNpb25fdHlwZT1u b25lCi0rZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotK3N5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgotK200X2lmKCQxLFtdLFsKLStpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3aW4qKSBsdF9hd2tf YXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFy aWVzOi8iIDs7Ci0rICBlc2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNl YXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAt ZSAicyw9LywvLGciYAotKyAgaWYgZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAn OycgPi9kZXYvbnVsbCA7IHRoZW4KLSsgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhl biB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgotKyAgICAjIG90aGVyd2lzZSBkZWZh dWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKLSsg ICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAi OyIgYnV0IHRoYXQgc2hvdWxkCi0rICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAi OyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgotKyAgICBsdF9zZWFyY2hfcGF0 aF9zcGVjPWBlY2hvICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AK LSsgIGVsc2UKLSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJGx0X3NlYXJjaF9wYXRo X3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICBmaQotKyAgIyBP aywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVw IHRocm91Z2ggaXQKLSsgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgotKyAg bHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQ RkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9u dWxsYAotKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwotKyAg ICBpZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsgICAg ICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVj ICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVzdCAt ZCAiJGx0X3N5c19wYXRoIiAmJiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRf dG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9uZQot KyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMg fCBhd2sgJwotK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0X2Zvbz0iIjsKLSsg IGx0X2NvdW50PTA7Ci0rICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgewotKyAg ICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAgaWYgKCRsdF9pID09 ICIuLiIpIHsKLSsgICAgICAgIGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAg IGlmIChsdF9jb3VudCA9PSAwKSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9v OwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgbHRfY291bnQtLTsKLSsgICAgICAgIH0K LSsgICAgICB9Ci0rICAgIH0KLSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtb bHRfZm9vXV0rKzsgfQotKyAgaWYgKGx0X2ZyZXFbW2x0X2Zvb11dID09IDEpIHsgcHJpbnQgbHRf Zm9vOyB9Ci0rfSdgCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gJGx0X3NlYXJj aF9wYXRoX3NwZWNgCi0rZWxzZQotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91 c3IvbGliIC91c3IvbG9jYWwvbGliIgotK2ZpXSkKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgot K2hhcmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0 byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3Mg dG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0r Y2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBo YXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRv IHRoZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4W1s0LTldXSopCi0rICB2ZXJzaW9uX3R5cGU9bGlu dXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAg ICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBlbHNlCi0rICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45 NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKLSsgICAgIyBmb3IgZGVw ZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAotKyAg ICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJy YXJ5IHRvCi0rICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4g IFRoaXMgd2FzIGZpeGVkIGluCi0rICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBw cmlvciB0byAzLjAuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXg0IHwgYWl4NC5b WzAxXV0gfCBhaXg0LltbMDFdXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4g MiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8g JyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8IGdyZXAgeWVzID4g L2Rldi9udWxsOyB0aGVuCi0rCToKLSsgICAgICBlbHNlCi0rCWNhbl9idWlsZF9zaGFyZWQ9bm8K LSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgIyBBSVggKG9uIFBvd2VyKikg aGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNv ZGUgY29ycmVjdAotKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNh biBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCi0rICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9u YWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUg bGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbwotKyAgICAgICMg aW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUg bm90Ci0rICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgotKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgICBlbHNlCi0rICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24g Zm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKLSsgICAgICAjIGFuZCBsYXRlciB3 aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKLSsgICAgICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBm aQotKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIGZpCi0rICA7OwotKwotK2FtaWdhb3Mq KQotKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScK LSsgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMu Ci0rICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9k ZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiov XChbW14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8ke2xp Ym5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHts aWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFt ZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJwotKyAgOzsKLSsKLStiZW9zKikKLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAotKyAg OzsKLSsKLStic2RpW1s0NV1dKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9z YmluIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xp YiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgotKyAgIyB0aGUg ZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKLSsg ICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0 IGxldCB1cyBhbGxvdwotKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dy YW1zCi0rICA7OwotKwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgIHZlcnNpb25fdHlw ZT13aW5kb3dzCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rCi0rICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KLSsgIHllcyxj eWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVj PSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8u Li9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2Zp bGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdc JycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTtlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAg ICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRk bGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgotKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxu YW1lIFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lJwot KyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmls ZTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+Ci0rICAg ICAgICRybSBcJGRscGF0aCcKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGN5Z3dpbiopCi0rICAgICAgIyBDeWd3aW4g RExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0rICAgICAgc29uYW1lX3Nw ZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVh c2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGli IC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KikKLSsgICAgICAjIE1pbkdX IERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1 ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEND IC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxp YnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgICAgICBpZiBlY2hvICIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIiB8IFtncmVwICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KLSsg ICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRl ZCBieQotKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4u IEdjYyBwcmludHMgaXRzIHNlYXJjaAotKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3Jz LCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQotKyAgICAgICAgIyBk cml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2 ZSB0aGVtLAotKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91 bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAotKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1 bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgotKyAgICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUg J3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9T RVBBUkFUT1IvIC9nImAKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIHB3MzIqKQotKyAgICAg ICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwotKyAgICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3Lydg YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3No YXJlZF9leHR9JwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsKLSsgICopCi0rICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0r ICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBG SVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVj dXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8 IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lv bl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0k c2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJu YW1lfSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtt YWpvcn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9jbWRzPSdgdGVzdCAu JG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwotKyAgbTRfaWYoWyQx XSwgW10sWwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIC91c3IvbG9jYWwvbGliIl0pIAotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1u bwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7 OwotKwotK2ZyZWVic2QxKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVi c2QqIHwgZHJhZ29uZmx5KikKLSsgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdo ZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKLSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFk anVzdCB0aGlzLgotKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAg b2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OwotKyAgICAqKSBv Ympmb3JtYXQ9ZWxmIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJz ZC0kb2JqZm9ybWF0Ci0rICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsgICAgZnJlZWJzZC1lbGYq KQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5h bWUke3NoYXJlZF9leHR9JwotKyAgICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIGZyZWVic2QtKikKLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxp Ym5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAgICBuZWVkX3ZlcnNpb249eWVzCi0r ICAgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBj YXNlICRob3N0X29zIGluCi0rICBmcmVlYnNkMiopCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKLSsgICAgOzsKLSsgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNkZWxmMy5b WzAxXV0qKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGZyZWVic2QzLltbMi05XV0qIHwgZnJlZWJz ZGVsZjMuW1syLTldXSogfCBcCi0rICBmcmVlYnNkNC5bWzAtNV1dIHwgZnJlZWJzZGVsZjQuW1sw LTVdXSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsK LSsgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKLSsgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0r ICBlc2FjCi0rICA7OwotKwotK2dudSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0r ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgIDs7Ci0rCi0raHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rICAjIEdpdmUgYSBz b25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCBy ZWZ1c2VzIHRvCi0rICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KLSsgIHZlcnNpb25f dHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGNhc2UgJGhvc3RfY3B1IGluCi0rICBpYTY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbycKLSsg ICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg ZGxkLnNvIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQu Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9 IFgzMjsgdGhlbgotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1 eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKLSsgICAgZWxzZQotKyAg ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwv bGliL2hwdXg2NCIKLSsgICAgZmkKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICA7OwotKyAgIGhwcGEqNjQqKQotKyAgICAgc2hy ZXh0X2NtZHM9Jy5zbCcKLSsgICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgIGR5bmFt aWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4K LSsgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKLSsgICAgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgIDs7Ci0rICAg KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29z IGRsZC5zbCIKLSsgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICi0rICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRI Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICA7OwotKyAgZXNhYwotKyAgIyBIUC1VWCBydW5z ICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCi0r ICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKLSsgIDs7Ci0rCi0raW50ZXJpeFtb My05XV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0n SW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4 KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5v bnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVz OyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWly aXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGli c3VmZj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0 b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoi LTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNo bGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJi bWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1O MzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxm NjRibWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0 OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0r ICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7 c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9 IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRs ZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNv ZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGlu dXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGly JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubwotKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBp cyB1bmFjY2VwdGFibGUuCi0rICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93 IGZvciBmYXN0X2luc3RhbGwKLSsgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0r ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xp YnN1ZmZ9IgotKwotKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNo IHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4 dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAy Pi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRd MDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsg CV0qaHdjYXBbIAldL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14k L2QnIHwgdHIgJ1xuJyAnICdgCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgotKyAgZmkKLSsKLSsgICMgV2Ug dXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmll cyBvbgotKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVk IGxpYnJhcmllcyB3aXRoIHRoZQotKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlz IHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCi0rICAjIG1vc3QgcG93ZXJwYy1saW51 eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAotKyAgIyBwZW9w bGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5k IHdlCi0rICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4K LSsgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCi0rICA7OwotKwotK25ldGJzZCop Ci0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92 ZXJzaW9uPW5vCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1t ICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKLSsg IGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJT RCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLStudG8tcW54KikKLSsgIHZlcnNpb25fdHlw ZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICA7OwotKwotK29wZW5ic2QqKQotKyAgdmVyc2lv bl90eXBlPXN1bm9zCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCi0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNE ICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KLSsgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikgbmVlZF92ZXJzaW9uPXllcyA7 OwotKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7Ci0r ICBlc2FjCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9j cHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgot KyAgICAgIG9wZW5ic2QyLltbODldXSB8IG9wZW5ic2QyLltbODldXS4qKQotKwlzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStvczIqKQotKyAgbGli bmFtZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGli bmFtZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAgc2hsaWJwYXRoX3Zh cj1MSUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIHZlcnNpb25f dHlwZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBs cnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotKyAgOzsKLSsKLSty ZG9zKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1u bwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCi0r ICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsKLStzdW5vczQqKQot KyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25m aWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVz OyB0aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5lZWRfdmVyc2lvbj15 ZXMKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNh c2UgJGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsgICAgICBydW5wYXRoX3Zhcj1M RF9SVU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGli IC91c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStzeXN2NCpNUCop Ci0rICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25fdHlwZT1saW51eAot KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg ICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKLSsgICAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5c3Y1KiB8IHNjbzMu MnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQotKyAg dmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5 ZXM7IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAv dXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0rICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAgICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9s aWIiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0nL3Vzci9saWInCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsK LSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK0FDX01TR19SRVNV TFQoWyRkeW5hbWljX2xpbmtlcl0pCi0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNh bl9idWlsZF9zaGFyZWQ9bm8KLSsKLStBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19saWJfc2VhcmNo X3BhdGhfc3BlY10sCi0rW2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYyJdKQotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLStBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjXSwKLStbbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyJdKQotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rCi0rdmFyaWFibGVzX3NhdmVk X2Zvcl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3Qg IiRHQ0MiID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlh Ymxlc19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJB UllfUEFUSCIKLStmaQotK10pIyBBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUgotKwotKwot KyMgX0xUX0FDX1RBR0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfTFRf QUNfVEFHQ09ORklHXSwKLStbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAotK0FDX0FS R19XSVRIKFt0YWdzXSwKLSsgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtdGFnc0A8OkA9VEFH U0A6PkBdLAotKyAgICAgICAgW2luY2x1ZGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9ucyBAPDpA YXV0b21hdGljQDo+QF0pXSwKLSsgICAgW3RhZ25hbWVzPSIkd2l0aHZhbCJdKQotKwotK2lmIHRl c3QgLWYgIiRsdG1haW4iICYmIHRlc3QgLW4gIiR0YWduYW1lcyI7IHRoZW4KLSsgIGlmIHRlc3Qg ISAtZiAiJHtvZmlsZX0iOyB0aGVuCi0rICAgIEFDX01TR19XQVJOKFtvdXRwdXQgZmlsZSBgJG9m aWxlJyBkb2VzIG5vdCBleGlzdF0pCi0rICBmaQotKwotKyAgaWYgdGVzdCAteiAiJExUQ0MiOyB0 aGVuCi0rICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICdeTFRDQz0n YCIKLSsgICAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVuCi0rICAgICAgQUNfTVNHX1dBUk4oW291 dHB1dCBmaWxlIGAkb2ZpbGUnIGRvZXMgbm90IGxvb2sgbGlrZSBhIGxpYnRvb2wgc2NyaXB0XSkK LSsgICAgZWxzZQotKyAgICAgIEFDX01TR19XQVJOKFt1c2luZyBgTFRDQz0kTFRDQycsIGV4dHJh Y3RlZCBmcm9tIGAkb2ZpbGUnXSkKLSsgICAgZmkKLSsgIGZpCi0rICBpZiB0ZXN0IC16ICIkTFRD RkxBR1MiOyB0aGVuCi0rICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVw ICdeTFRDRkxBR1M9J2AiCi0rICBmaQotKwotKyAgIyBFeHRyYWN0IGxpc3Qgb2YgYXZhaWxhYmxl IHRhZ2dlZCBjb25maWd1cmF0aW9ucyBpbiAkb2ZpbGUuCi0rICAjIE5vdGUgdGhhdCB0aGlzIGFz c3VtZXMgdGhlIGVudGlyZSBsaXN0IGlzIG9uIG9uZSBsaW5lLgotKyAgYXZhaWxhYmxlX3RhZ3M9 YGdyZXAgIl5hdmFpbGFibGVfdGFncz0iICIke29maWxlfSIgfCAkU0VEIC1lICdzL2F2YWlsYWJs ZV90YWdzPVwoLiokXCkvXDEvJyAtZSAncy9cIi8vZydgCi0rCi0rICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgIGZvciB0YWduYW1lIGluICR0YWdu YW1lczsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICMgQ2hlY2sgd2hldGhlciB0 YWduYW1lIGNvbnRhaW5zIG9ubHkgdmFsaWQgY2hhcmFjdGVycwotKyAgICBjYXNlIGAkZWNobyAi WCR0YWduYW1lIiB8ICRYc2VkIC1lICdzOltbLV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFi Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MCwvXV06OmcnYCBpbgotKyAgICAiIikg OzsKLSsgICAgKikgIEFDX01TR19FUlJPUihbaW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWVdKQot Kwk7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIGdyZXAgIl4jICMjIyBCRUdJTiBMSUJUT09MIFRB RyBDT05GSUc6ICR0YWduYW1lJCIgPCAiJHtvZmlsZX0iID4gL2Rldi9udWxsCi0rICAgIHRoZW4K LSsgICAgICBBQ19NU0dfRVJST1IoW3RhZyBuYW1lIFwiJHRhZ25hbWVcIiBhbHJlYWR5IGV4aXN0 c10pCi0rICAgIGZpCi0rCi0rICAgICMgVXBkYXRlIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdz LgotKyAgICBpZiB0ZXN0IC1uICIkdGFnbmFtZSI7IHRoZW4KLSsgICAgICBlY2hvIGFwcGVuZGlu ZyBjb25maWd1cmF0aW9uIHRhZyBcIiR0YWduYW1lXCIgdG8gJG9maWxlCi0rCi0rICAgICAgY2Fz ZSAkdGFnbmFtZSBpbgotKyAgICAgIENYWCkKLSsJaWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0 ICJYJENYWCIgIT0gIlhubyIgJiYKLSsJICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBg ZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAotKwkgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcr KyIpKSkgOyB0aGVuCi0rCSAgQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUcKLSsJZWxzZQotKwkg IHRhZ25hbWU9IiIKLSsJZmkKLSsJOzsKLSsKLSsgICAgICBGNzcpCi0rCWlmIHRlc3QgLW4gIiRG NzciICYmIHRlc3QgIlgkRjc3IiAhPSAiWG5vIjsgdGhlbgotKwkgIEFDX0xJQlRPT0xfTEFOR19G NzdfQ09ORklHCi0rCWVsc2UKLSsJICB0YWduYW1lPSIiCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAg R0NKKQotKwlpZiB0ZXN0IC1uICIkR0NKIiAmJiB0ZXN0ICJYJEdDSiIgIT0gIlhubyI7IHRoZW4K LSsJICBBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJRwotKwllbHNlCi0rCSAgdGFnbmFtZT0iIgot KwlmaQotKwk7OwotKwotKyAgICAgIFJDKQotKwlBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHCi0r CTs7Ci0rCi0rICAgICAgKikKLSsJQUNfTVNHX0VSUk9SKFtVbnN1cHBvcnRlZCB0YWcgbmFtZTog JHRhZ25hbWVdKQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIEFwcGVuZCB0aGUgbmV3 IHRhZyBuYW1lIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdzLgotKyAgICAgIGlmIHRlc3Qg LW4gIiR0YWduYW1lIiA7IHRoZW4KLSsgICAgICBhdmFpbGFibGVfdGFncz0iJGF2YWlsYWJsZV90 YWdzICR0YWduYW1lIgotKyAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rCi0rICAjIE5vdyBzdWJzdGl0dXRlIHRoZSB1cGRhdGVkIGxpc3Qgb2YgYXZhaWxh YmxlIHRhZ3MuCi0rICBpZiBldmFsICJzZWQgLWUgJ3MvXmF2YWlsYWJsZV90YWdzPS4qXCQvYXZh aWxhYmxlX3RhZ3M9XCIkYXZhaWxhYmxlX3RhZ3NcIi8nIFwiJG9maWxlXCIgPiBcIiR7b2ZpbGV9 VFwiIjsgdGhlbgotKyAgICBtdiAiJHtvZmlsZX1UIiAiJG9maWxlIgotKyAgICBjaG1vZCAreCAi JG9maWxlIgotKyAgZWxzZQotKyAgICBybSAtZiAiJHtvZmlsZX1UIgotKyAgICBBQ19NU0dfRVJS T1IoW3VuYWJsZSB0byB1cGRhdGUgbGlzdCBvZiBhdmFpbGFibGUgdGFnZ2VkIGNvbmZpZ3VyYXRp b25zLl0pCi0rICBmaQotK2ZpCi0rXSkjIF9MVF9BQ19UQUdDT05GSUcKLSsKLSsKLSsjIEFDX0xJ QlRPT0xfRExPUEVOCi0rIyAtLS0tLS0tLS0tLS0tLS0tLQotKyMgZW5hYmxlIGNoZWNrcyBmb3Ig ZGxvcGVuIHN1cHBvcnQKLStBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLAotKyBbQUNfQkVG T1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKQotK10pIyBBQ19MSUJUT09MX0RMT1BFTgotKwot KwotKyMgQUNfTElCVE9PTF9XSU4zMl9ETEwKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBk ZWNsYXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgRExMcwotK0FDX0RFRlVO KFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCi0rW0FDX0JFRk9SRShbJDBdLCBbQUNfTElCVE9PTF9T RVRVUF0pCi0rXSkjIEFDX0xJQlRPT0xfV0lOMzJfRExMCi0rCi0rCi0rIyBBQ19FTkFCTEVfU0hB UkVEKFtERUZBVUxUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgaW1wbGVt ZW50IHRoZSAtLWVuYWJsZS1zaGFyZWQgZmxhZwotKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycg b3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgotK0FDX0RFRlVOKFtB Q19FTkFCTEVfU0hBUkVEXSwKLStbZGVmaW5lKFtBQ19FTkFCTEVfU0hBUkVEX0RFRkFVTFRdLCBp ZmVsc2UoJDEsIG5vLCBubywgeWVzKSlkbmwKLStBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAotKyAg ICBbQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAotKwlbYnVp bGQgc2hhcmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dQUNfRU5BQkxFX1NIQVJFRF9ERUZBVUxU W0A6PkBdKV0sCi0rICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2 YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OwotKyAgICBubykgZW5hYmxlX3No YXJlZD1ubyA7OwotKyAgICAqKQotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICAjIExv b2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNl cGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NF UEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9z YXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc2hh cmVkPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsg ICAgICA7OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJsZV9zaGFyZWQ9XUFDX0VOQUJMRV9TSEFS RURfREVGQVVMVCkKLStdKSMgQUNfRU5BQkxFX1NIQVJFRAotKwotKwotKyMgQUNfRElTQUJMRV9T SEFSRUQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tCi0rIyBzZXQgdGhlIGRlZmF1bHQgc2hhcmVkIGZs YWcgdG8gLS1kaXNhYmxlLXNoYXJlZAotK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NIQVJFRF0sCi0r W0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKLStBQ19FTkFCTEVfU0hBUkVE KG5vKQotK10pIyBBQ19ESVNBQkxFX1NIQVJFRAotKwotKwotKyMgQUNfRU5BQkxFX1NUQVRJQyhb REVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxlbWVudCB0 aGUgLS1lbmFibGUtc3RhdGljIGZsYWcKLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBu bycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KLStBQ19ERUZVTihbQUNfRU5B QkxFX1NUQVRJQ10sCi0rW2RlZmluZShbQUNfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgaWZlbHNl KCQxLCBubywgbm8sIHllcykpZG5sCi0rQUNfQVJHX0VOQUJMRShbc3RhdGljXSwKLSsgICAgW0FD X0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNAPDpAPVBLR1NAOj5AXSwKLSsJW2J1aWxkIHN0 YXRpYyBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XUFDX0VOQUJMRV9TVEFUSUNfREVGQVVMVFtAOj5A XSldLAotKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGlu Ci0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9 bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQg dGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRv cnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRP UiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lm cyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXll cwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7 OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJsZV9zdGF0aWM9XUFDX0VOQUJMRV9TVEFUSUNfREVG QVVMVCkKLStdKSMgQUNfRU5BQkxFX1NUQVRJQwotKwotKwotKyMgQUNfRElTQUJMRV9TVEFUSUMK LSsjIC0tLS0tLS0tLS0tLS0tLS0tCi0rIyBzZXQgdGhlIGRlZmF1bHQgc3RhdGljIGZsYWcgdG8g LS1kaXNhYmxlLXN0YXRpYwotK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NUQVRJQ10sCi0rW0FDX0JF Rk9SRShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKLStBQ19FTkFCTEVfU1RBVElDKG5vKQot K10pIyBBQ19ESVNBQkxFX1NUQVRJQwotKwotKwotKyMgQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTChb REVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxl bWVudCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcKLSsjIERFRkFVTFQgaXMgZWl0aGVy IGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KLStBQ19E RUZVTihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW2RlZmluZShbQUNfRU5BQkxFX0ZBU1Rf SU5TVEFMTF9ERUZBVUxUXSwgaWZlbHNlKCQxLCBubywgbm8sIHllcykpZG5sCi0rQUNfQVJHX0VO QUJMRShbZmFzdC1pbnN0YWxsXSwKLSsgICAgW0FDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0 LWluc3RhbGxAPDpAPVBLR1NAOj5AXSwKLSsgICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxh dGlvbiBAPDpAZGVmYXVsdD1dQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUW0A6PkBdKV0s Ci0rICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsg ICAgeWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OwotKyAgICBubykgZW5hYmxlX2Zhc3Rf aW5zdGFsbD1ubyA7OwotKyAgICAqKQotKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLSsg ICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1v biBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZT fSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJ RlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBl bmFibGVfZmFzdF9pbnN0YWxsPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJsZV9mYXN0X2lu c3RhbGw9XUFDX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKLStdKSMgQUNfRU5BQkxFX0ZB U1RfSU5TVEFMTAotKwotKwotKyMgQUNfRElTQUJMRV9GQVNUX0lOU1RBTEwKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBzZXQgdGhlIGRlZmF1bHQgdG8gLS1kaXNhYmxlLWZhc3QtaW5z dGFsbAotK0FDX0RFRlVOKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCi0rW0FDX0JFRk9SRShb JDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKLStBQ19FTkFCTEVfRkFTVF9JTlNUQUxMKG5vKQot K10pIyBBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTAotKwotKwotKyMgQUNfTElCVE9PTF9QSUNNT0RF KFtNT0RFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBpbXBsZW1lbnQgdGhl IC0td2l0aC1waWMgZmxhZwotKyMgTU9ERSBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9t aXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGBib3RoJy4KLStBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNN T0RFXSwKLStbQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKWRubAotK3BpY19tb2Rl PWlmZWxzZSgkIywxLCQxLGRlZmF1bHQpCi0rXSkjIEFDX0xJQlRPT0xfUElDTU9ERQotKwotKwot KyMgQUNfUFJPR19FR1JFUAotKyMgLS0tLS0tLS0tLS0tLQotKyMgVGhpcyBpcyBwcmVkZWZpbmVk IHN0YXJ0aW5nIHdpdGggQXV0b2NvbmYgMi41NCwgc28gdGhpcyBjb25kaXRpb25hbAotKyMgZGVm aW5pdGlvbiBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIHJlcXVpcmUgQXV0b2NvbmYgMi41NCBvciBs YXRlci4KLSttNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLCBbQUNfREVGVU4oW0FDX1BST0dfRUdS RVBdLAotK1tBQ19DQUNIRV9DSEVDSyhbZm9yIGVncmVwXSwgW2FjX2N2X3Byb2dfZWdyZXBdLAot KyAgIFtpZiBlY2hvIGEgfCAoZ3JlcCAtRSAnKGF8YiknKSA+L2Rldi9udWxsIDI+JjEKLSsgICAg dGhlbiBhY19jdl9wcm9nX2VncmVwPSdncmVwIC1FJwotKyAgICBlbHNlIGFjX2N2X3Byb2dfZWdy ZXA9J2VncmVwJwotKyAgICBmaV0pCi0rIEVHUkVQPSRhY19jdl9wcm9nX2VncmVwCi0rIEFDX1NV QlNUKFtFR1JFUF0pCi0rXSldKQotKwotKwotKyMgQUNfUEFUSF9UT09MX1BSRUZJWAotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2du aXplIHNoYXJlZCBsaWJyYXJ5Ci0rQUNfREVGVU4oW0FDX1BBVEhfVE9PTF9QUkVGSVhdLAotK1tB Q19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0p Ci0rQUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTUFHSUNfQ01ELAotK1tjYXNlICRNQUdJQ19DTUQg aW4KLStbW1xcLypdIHwgID86W1xcL10qXSkKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFH SUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsg IDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9p ZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZG5sICRhY19kdW1teSBmb3JjZXMgc3Bs aXR0aW5nIG9uIGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCi0rZG5sIFBPU0lYLjIgd29y ZCBzcGxpdHRpbmcgaXMgZG9uZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBleHBhbnNpb25z LAotK2RubCBub3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNl Y3VyaXR5IGhvbGUuCi0rICBhY19kdW1teT0iaWZlbHNlKFskMl0sICwgJFBBVEgsIFskMl0pIgot KyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIElGUz0iJGx0X3NhdmVfaWZzIgot KyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICRhY19k aXIvJDE7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKLSsg ICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCi0rCWNhc2UgJGRl cGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCSJmaWxlX21hZ2ljICIqKQotKwkgIGZpbGVfbWFnaWNf cmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCki YAotKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotKwkgIGlmIGV2YWwgJGZp bGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKLSsJICAg ICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICA6Ci0r CSAgZWxzZQotKwkgICAgY2F0IDw8RU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNvbW1h bmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmlsZV9t YWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4K LSsqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNo YXJlZCBsaWJyYXJpZXMKLSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0 aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJy YXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGlicmFy aWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywg eW91Ci0rKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBt YW5hZ2VyIGFuZC9vciB0bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rRU9GCi0rCSAg ZmkgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgYnJlYWsKLSsgICAgZmkKLSsgIGRvbmUK LSsgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQi Ci0rICA7OwotK2VzYWNdKQotK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotK2lm IHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKCRNQUdJQ19DTUQp Ci0rZWxzZQotKyAgQUNfTVNHX1JFU1VMVChubykKLStmaQotK10pIyBBQ19QQVRIX1RPT0xfUFJF RklYCi0rCi0rCi0rIyBBQ19QQVRIX01BR0lDCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBmaW5kIGEg ZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQotK0FDX0RF RlVOKFtBQ19QQVRIX01BR0lDXSwKLStbQUNfUEFUSF9UT09MX1BSRUZJWCgke2FjX3Rvb2xfcHJl Zml4fWZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCi0raWYgdGVzdCAteiAiJGx0 X2N2X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4 IjsgdGhlbgotKyAgICBBQ19QQVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQ QVJBVE9SJFBBVEgpCi0rICBlbHNlCi0rICAgIE1BR0lDX0NNRD06Ci0rICBmaQotK2ZpCi0rXSkj IEFDX1BBVEhfTUFHSUMKLSsKLSsKLSsjIEFDX1BST0dfTEQKLSsjIC0tLS0tLS0tLS0KLSsjIGZp bmQgdGhlIHBhdGhuYW1lIHRvIHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKLStBQ19ERUZVTihb QUNfUFJPR19MRF0sCi0rW0FDX0FSR19XSVRIKFtnbnUtbGRdLAotKyAgICBbQUNfSEVMUF9TVFJJ TkcoWy0td2l0aC1nbnUtbGRdLAotKwlbYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxk IEA8OkBkZWZhdWx0PW5vQDo+QF0pXSwKLSsgICAgW3Rlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdp dGhfZ251X2xkPXllc10sCi0rICAgIFt3aXRoX2dudV9sZD1ub10pCi0rQUNfUkVRVUlSRShbTFRf QUNfUFJPR19TRURdKWRubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJ UkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJ TERdKWRubAotK2FjX3Byb2c9bGQKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgIyBD aGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCi0rICBBQ19NU0df Q0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCi0rICBjYXNlICRob3N0IGluCi0rICAqLSot bWluZ3cqKQotKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hp Y2ggdXBzZXRzIG1pbmd3Ci0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkg Mj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKLSsgICopCi0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50 LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFjX3Byb2cgaW4KLSsg ICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCi0rICAgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikK LSsgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJwotKyAgICAgICMgQ2Fub25p Y2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8 ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlIGVjaG8gJGFjX3Byb2cgfCBncmVwICIk cmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbwotKwlhY19wcm9nPWBlY2hvICRhY19wcm9n fCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAotKyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIk TEQiICYmIExEPSIkYWNfcHJvZyIKLSsgICAgICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFp bHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0r ICAgIDs7Ci0rICAqKQotKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3Ig dGhlIGZpcnN0IGxkIGluIFBBVEguCi0rICAgIHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsK LSsgIGVzYWMKLStlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIEFDX01T R19DSEVDS0lORyhbZm9yIEdOVSBsZF0pCi0rZWxzZQotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Ig bm9uLUdOVSBsZF0pCi0rZmkKLStBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9MRCwKLStbaWYgdGVz dCAteiAiJExEIjsgdGhlbgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIK LSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAiJGFj X2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0 aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKLSsgICAgICAjIENo ZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZl cnNpb24sCi0rICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBv bmx5IGFjY2VwdCAtdi4KLSsgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9u LUdOVSBsZCB0aGF0IHdlIHByZWZlci4KLSsgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12 IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKLSsJdGVz dCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhawotKwk7OwotKyAgICAgICopCi0rCXRlc3Qg IiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBm aQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rZWxzZQotKyAgbHRfY3ZfcGF0aF9M RD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLStm aV0pCi0rTEQ9IiRsdF9jdl9wYXRoX0xEIgotK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KLSsgIEFD X01TR19SRVNVTFQoJExEKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLSt0ZXN0 IC16ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBB VEhdKQotK0FDX1BST0dfTERfR05VCi0rXSkjIEFDX1BST0dfTEQKLSsKLSsKLSsjIEFDX1BST0df TERfR05VCi0rIyAtLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19QUk9HX0xEX0dOVV0sCi0r W0FDX1JFUVVJUkUoW0FDX1BST0dfRUdSRVBdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFtpZiB0aGUg bGlua2VyICgkTEQpIGlzIEdOVSBsZF0sIGx0X2N2X3Byb2dfZ251X2xkLAotK1sjIEknZCByYXRo ZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBh Y2NlcHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICon d2l0aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRf Y3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhY10pCi0rd2l0aF9nbnVfbGQ9JGx0X2N2X3By b2dfZ251X2xkCi0rXSkjIEFDX1BST0dfTERfR05VCi0rCi0rCi0rIyBBQ19QUk9HX0xEX1JFTE9B RF9GTEFHCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBmaW5kIHJlbG9hZCBmbGFnIGZv ciBsaW5rZXIKLSsjICAgLS0gUE9SVE1FIFNvbWUgbGlua2VycyBtYXkgbmVlZCBhIGRpZmZlcmVu dCByZWxvYWQgZmxhZy4KLStBQ19ERUZVTihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10sCi0rW0FD X0NBQ0hFX0NIRUNLKFtmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKLSsg IGx0X2N2X2xkX3JlbG9hZF9mbGFnLAotKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQot K3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZwotK2Nhc2UgJHJlbG9hZF9mbGFnIGlu Ci0rIiIgfCAiICIqKSA7OwotKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OwotK2Vz YWMKLStyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMn Ci0rY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAk e3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGVsc2UKLSsgICAgICByZWxvYWRf Y21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGZpCi0r ICAgIDs7Ci0rZXNhYwotK10pIyBBQ19QUk9HX0xEX1JFTE9BRF9GTEFHCi0rCi0rCi0rIyBBQ19E RVBMSUJTX0NIRUNLX01FVEhPRAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGhvdyB0 byBjaGVjayBmb3IgbGlicmFyeSBkZXBlbmRlbmNpZXMKLSsjICAtLSBQT1JUTUUgZmlsbCBpbiB3 aXRoIHRoZSBkeW5hbWljIGxpYnJhcnkgY2hhcmFjdGVyaXN0aWNzCi0rQUNfREVGVU4oW0FDX0RF UExJQlNfQ0hFQ0tfTUVUSE9EXSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byByZWNvZ25pemUg ZGVwZW5kZW50IGxpYnJhcmllc10sCi0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QsCi0rW2x0 X2N2X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNfQ01EJwotK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m aWxlPQotK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJwotKyMgTmVlZCB0byBz ZXQgdGhlIHByZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAot KyMgaW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KLSsjICdub25lJyAtLSBkZXBlbmRlbmNpZXMg bm90IHN1cHBvcnRlZC4KLSsjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1dCBkb2N1bWVu dHMgdGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25vdy4KLSsjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVu ZGVuY2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCi0rIyAndGVzdF9jb21waWxlJyAtLSBjaGVj ayBieSBtYWtpbmcgdGVzdCBwcm9ncmFtLgotKyMgJ2ZpbGVfbWFnaWMgW1tyZWdleF1dJyAtLSBj aGVjayBieSBsb29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKLSsjIHdoaWNoIHJlc3Bv bmRzIHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4Lgot KyMgSWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlv dSdyZSBub3Qgc3VyZQotKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5cyogd29yaywg eW91IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUuCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeFtb NC05XV0qKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0r Ci0rYmVvcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsK LSsKLStic2RpW1s0NV1dKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21h Z2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFt aWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJwotKyAg bHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KLSsgIDs7Ci0rCi0rY3ln d2luKikKLSsgICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQg aW4gbHRtYWluLnNoCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBe eDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1 bmNfd2luMzJfbGliaWQnCi0rICA7OwotKwotK21pbmd3KiB8IHB3MzIqKQotKyAgIyBCYXNlIE1T WVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQotKyAg IyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBi YXNlZCBvbiAnb2JqZHVtcCcsCi0rICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1w bGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgotKyAgaWYgKCBmaWxlIC8gKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVy ZTogaTM4Nik/JwotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICBm aQotKyAgOzsKLSsKLStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAg aWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRo ZW4KLSsgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgaSo4NiApCi0rICAgICAgIyBOb3Qgc3Vy ZSB3aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KLSsg ICAgICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVw LgotKyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNE fE9wZW5CU0R8RHJhZ29uRmx5KS9pW1szLTldXTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNo YXJlZCBsaWJyYXJ5JwotKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUK LSsgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNv LipgCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgZmkKLSsgIDs7Ci0rCi0rZ251KikKLSsgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2hwdXgxMC4yMCogfCBocHV4 MTEqKQotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmls ZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxFTEYtW1swLTldXVtbMC05XV0pIHNoYXJl ZCBvYmplY3QgZmlsZSAtIElBNjQnCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91 c3IvbGliL2hwdXgzMi9saWJjLnNvCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgW2x0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1b MC05XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJ10KLSsg ICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCi0r ICAgIDs7Ci0rICAqKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdp YyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXS5bWzAtOV1dKSBzaGFyZWQg bGlicmFyeScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5z bAotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0rICAjIFBJ QyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8X3Bp Y1wuYSBoZXJlCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAv bGliW1teL11dKyhcLnNvfFwuYSkkJwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25z dG9wdXgqKQotKyAgY2FzZSAkTEQgaW4KLSsgICotMzJ8KiItMzIgIikgbGlibWFnaWM9MzItYml0 OzsKLSsgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7OwotKyAgKi02NHwqIi02NCAiKSBs aWJtYWdpYz02NC1iaXQ7OwotKyAgKikgbGlibWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgZXNhYwot KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rIyBUaGlz IG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgaWYgZWNo byBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSso XC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xfcGlj XC5hKSQnCi0rICBmaQotKyAgOzsKLSsKLStuZXdvczYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKGV4 ZWN1dGFibGV8ZHluYW1pYyBsaWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4v ZmlsZQotKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCi0r ICA7OwotKwotK250by1xbngqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93 bgotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAi b3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8XC5z b3xfcGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdt YXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5h KSQnCi0rICBmaQotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc3lzdjQgfCBz eXN2NC4zKikKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rICBtb3Rvcm9sYSkKLSsgICAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1i aXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bWzAtOV1dW1swLTldXSog VmVyc2lvbiBbWzAtOV1dJwotKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAv dXNyL2xpYi9saWJjLnNvKmAKLSsgICAgOzsKLSsgIG5jcikKLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAgOzsKLSsgIHNlcXVlbnQpCi0rICAgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2Jq ZWN0fGR5bmFtaWMgbGliICknCi0rICAgIDs7Ci0rICBzbmkpCi0rICAgIGx0X2N2X2ZpbGVfbWFn aWNfY21kPScvYmluL2ZpbGUnCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxl X21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIGR5bmFtaWMgbGliIgotKyAg ICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KLSsgICAgOzsKLSsgIHNp ZW1lbnMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7 Ci0rICBwYykKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAg OzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVu aXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStlc2FjCi0rXSkKLStmaWxlX21hZ2ljX2NtZD0kbHRf Y3ZfZmlsZV9tYWdpY19jbWQKLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2QKLSt0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNf Y2hlY2tfbWV0aG9kPXVua25vd24KLStdKSMgQUNfREVQTElCU19DSEVDS19NRVRIT0QKLSsKLSsK LSsjIEFDX1BST0dfTk0KLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEg QlNELWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIKLStBQ19ERUZVTihbQUNfUFJPR19OTV0sCi0rW0FD X0NBQ0hFX0NIRUNLKFtmb3IgQlNELWNvbXBhdGlibGUgbm1dLCBsdF9jdl9wYXRoX05NLAotK1tp ZiB0ZXN0IC1uICIkTk0iOyB0aGVuCi0rICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLSsgIGx0X2N2X3BhdGhfTk09IiROTSIKLStlbHNlCi0rICBsdF9ubV90b19jaGVjaz0iJHth Y190b29sX3ByZWZpeH1ubSIKLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVz dCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KLSsgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90 b19jaGVjayBubSIKLSsgIGZpCi0rICBmb3IgbHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsg ZG8KLSsgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICAgIGZv ciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2Ig L2JpbjsgZG8KLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICB0ZXN0IC16ICIkYWNf ZGlyIiAmJiBhY19kaXI9LgotKyAgICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgotKyAg ICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7 IHRoZW4KLSsJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZs YWcuCi0rCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24g SFAtVVgsIHdoaWNoIHNheXM6Ci0rCSMgICBubTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQK LSsJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9i amVjdCBmaWxlCi0rCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEn YCBpbgotKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCi0r CSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKLSsJICBicmVhawotKwkgIDs7Ci0rCSopCi0r CSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCi0rCSAg Ki9kZXYvbnVsbCopCi0rCSAgICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgotKwkgICAgYnJl YWsKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05N PSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0Ci0rCSAgICBjb250aW51ZSAj IHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncwot KwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgIGRvbmUK LSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICBkb25lCi0rICB0ZXN0IC16ICIkbHRfY3ZfcGF0 aF9OTSIgJiYgbHRfY3ZfcGF0aF9OTT1ubQotK2ZpXSkKLStOTT0iJGx0X2N2X3BhdGhfTk0iCi0r XSkjIEFDX1BST0dfTk0KLSsKLSsKLSsjIEFDX0NIRUNLX0xJQk0KLSsjIC0tLS0tLS0tLS0tLS0K LSsjIGNoZWNrIGZvciBtYXRoIGxpYnJhcnkKLStBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sCi0r W0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStMSUJNPQotK2Nhc2UgJGhvc3Qg aW4KLSsqLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQot KyAgIyBUaGVzZSBzeXN0ZW0gZG9uJ3QgaGF2ZSBsaWJtLCBvciBkb24ndCBuZWVkIGl0Ci0rICA7 OwotKyotbmNyLXN5c3Y0LjMqKQotKyAgQUNfQ0hFQ0tfTElCKG13LCBfbXd2YWxpZGNoZWNrbCwg TElCTT0iLWxtdyIpCi0rICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSIkTElCTSAtbG0iKQot KyAgOzsKLSsqKQotKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iLWxtIikKLSsgIDs7Ci0r ZXNhYwotK10pIyBBQ19DSEVDS19MSUJNCi0rCi0rCi0rIyBBQ19MSUJMVERMX0NPTlZFTklFTkNF KFtESVJFQ1RPUlldKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IHNldHMgTElCTFRETCB0byB0aGUgbGluayBmbGFncyBmb3IgdGhlIGxpYmx0ZGwgY29udmVuaWVu Y2UgbGlicmFyeSBhbmQKLSsjIExURExJTkNMIHRvIHRoZSBpbmNsdWRlIGZsYWdzIGZvciB0aGUg bGlibHRkbCBoZWFkZXIgYW5kIGFkZHMKLSsjIC0tZW5hYmxlLWx0ZGwtY29udmVuaWVuY2UgdG8g dGhlIGNvbmZpZ3VyZSBhcmd1bWVudHMuICBOb3RlIHRoYXQKLSsjIEFDX0NPTkZJR19TVUJESVJT IGlzIG5vdCBjYWxsZWQgaGVyZS4gIElmIERJUkVDVE9SWSBpcyBub3QgcHJvdmlkZWQsCi0rIyBp dCBpcyBhc3N1bWVkIHRvIGJlIGBsaWJsdGRsJy4gIExJQkxUREwgd2lsbCBiZSBwcmVmaXhlZCB3 aXRoCi0rIyAnJHt0b3BfYnVpbGRkaXJ9LycgYW5kIExURExJTkNMIHdpbGwgYmUgcHJlZml4ZWQg d2l0aCAnJHt0b3Bfc3JjZGlyfS8nCi0rIyAobm90ZSB0aGUgc2luZ2xlIHF1b3RlcyEpLiAgSWYg eW91ciBwYWNrYWdlIGlzIG5vdCBmbGF0IGFuZCB5b3UncmUgbm90Ci0rIyB1c2luZyBhdXRvbWFr ZSwgZGVmaW5lIHRvcF9idWlsZGRpciBhbmQgdG9wX3NyY2RpciBhcHByb3ByaWF0ZWx5IGluCi0r IyB0aGUgTWFrZWZpbGVzLgotK0FDX0RFRlVOKFtBQ19MSUJMVERMX0NPTlZFTklFTkNFXSwKLStb QUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKWRubAotKyAgY2FzZSAkZW5hYmxlX2x0 ZGxfY29udmVuaWVuY2UgaW4KLSsgIG5vKSBBQ19NU0dfRVJST1IoW3RoaXMgcGFja2FnZSBuZWVk cyBhIGNvbnZlbmllbmNlIGxpYmx0ZGxdKSA7OwotKyAgIiIpIGVuYWJsZV9sdGRsX2NvbnZlbmll bmNlPXllcwotKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1l bmFibGUtbHRkbC1jb252ZW5pZW5jZSIgOzsKLSsgIGVzYWMKLSsgIExJQkxUREw9JyR7dG9wX2J1 aWxkZGlyfS8naWZlbHNlKCQjLDEsWyQxXSxbJ2xpYmx0ZGwnXSkvbGlibHRkbGMubGEKLSsgIExU RExJTkNMPSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0sWydsaWJsdGRsJ10pCi0r ICAjIEZvciBiYWNrd2FyZHMgbm9uLWdldHRleHQgY29uc2lzdGVudCBjb21wYXRpYmlsaXR5Li4u Ci0rICBJTkNMVERMPSIkTFRETElOQ0wiCi0rXSkjIEFDX0xJQkxURExfQ09OVkVOSUVOQ0UKLSsK LSsKLSsjIEFDX0xJQkxURExfSU5TVEFMTEFCTEUoW0RJUkVDVE9SWV0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgc2V0cyBMSUJMVERMIHRvIHRoZSBsaW5rIGZs YWdzIGZvciB0aGUgbGlibHRkbCBpbnN0YWxsYWJsZSBsaWJyYXJ5IGFuZAotKyMgTFRETElOQ0wg dG8gdGhlIGluY2x1ZGUgZmxhZ3MgZm9yIHRoZSBsaWJsdGRsIGhlYWRlciBhbmQgYWRkcwotKyMg LS1lbmFibGUtbHRkbC1pbnN0YWxsIHRvIHRoZSBjb25maWd1cmUgYXJndW1lbnRzLiAgTm90ZSB0 aGF0Ci0rIyBBQ19DT05GSUdfU1VCRElSUyBpcyBub3QgY2FsbGVkIGhlcmUuICBJZiBESVJFQ1RP UlkgaXMgbm90IHByb3ZpZGVkLAotKyMgYW5kIGFuIGluc3RhbGxlZCBsaWJsdGRsIGlzIG5vdCBm b3VuZCwgaXQgaXMgYXNzdW1lZCB0byBiZSBgbGlibHRkbCcuCi0rIyBMSUJMVERMIHdpbGwgYmUg cHJlZml4ZWQgd2l0aCAnJHt0b3BfYnVpbGRkaXJ9LycjIGFuZCBMVERMSU5DTCB3aXRoCi0rIyAn JHt0b3Bfc3JjZGlyfS8nIChub3RlIHRoZSBzaW5nbGUgcXVvdGVzISkuICBJZiB5b3VyIHBhY2th Z2UgaXMgbm90Ci0rIyBmbGF0IGFuZCB5b3UncmUgbm90IHVzaW5nIGF1dG9tYWtlLCBkZWZpbmUg dG9wX2J1aWxkZGlyIGFuZCB0b3Bfc3JjZGlyCi0rIyBhcHByb3ByaWF0ZWx5IGluIHRoZSBNYWtl ZmlsZXMuCi0rIyBJbiB0aGUgZnV0dXJlLCB0aGlzIG1hY3JvIG1heSBoYXZlIHRvIGJlIGNhbGxl ZCBhZnRlciBBQ19QUk9HX0xJQlRPT0wuCi0rQUNfREVGVU4oW0FDX0xJQkxURExfSU5TVEFMTEFC TEVdLAotK1tBQ19CRUZPUkUoWyQwXSxbQUNfTElCVE9PTF9TRVRVUF0pZG5sCi0rICBBQ19DSEVD S19MSUIobHRkbCwgbHRfZGxpbml0LAotKyAgW3Rlc3QgeCIkZW5hYmxlX2x0ZGxfaW5zdGFsbCIg IT0geHllcyAmJiBlbmFibGVfbHRkbF9pbnN0YWxsPW5vXSwKLSsgIFtpZiB0ZXN0IHgiJGVuYWJs ZV9sdGRsX2luc3RhbGwiID0geG5vOyB0aGVuCi0rICAgICBBQ19NU0dfV0FSTihbbGlibHRkbCBu b3QgaW5zdGFsbGVkLCBidXQgaW5zdGFsbGF0aW9uIGRpc2FibGVkXSkKLSsgICBlbHNlCi0rICAg ICBlbmFibGVfbHRkbF9pbnN0YWxsPXllcwotKyAgIGZpCi0rICBdKQotKyAgaWYgdGVzdCB4IiRl bmFibGVfbHRkbF9pbnN0YWxsIiA9IHgieWVzIjsgdGhlbgotKyAgICBhY19jb25maWd1cmVfYXJn cz0iJGFjX2NvbmZpZ3VyZV9hcmdzIC0tZW5hYmxlLWx0ZGwtaW5zdGFsbCIKLSsgICAgTElCTFRE TD0nJHt0b3BfYnVpbGRkaXJ9LydpZmVsc2UoJCMsMSxbJDFdLFsnbGlibHRkbCddKS9saWJsdGRs LmxhCi0rICAgIExURExJTkNMPSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0sWyds aWJsdGRsJ10pCi0rICBlbHNlCi0rICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJl X2FyZ3MgLS1lbmFibGUtbHRkbC1pbnN0YWxsPW5vIgotKyAgICBMSUJMVERMPSItbGx0ZGwiCi0r ICAgIExURExJTkNMPQotKyAgZmkKLSsgICMgRm9yIGJhY2t3YXJkcyBub24tZ2V0dGV4dCBjb25z aXN0ZW50IGNvbXBhdGliaWxpdHkuLi4KLSsgIElOQ0xUREw9IiRMVERMSU5DTCIKLStdKSMgQUNf TElCTFRETF9JTlNUQUxMQUJMRQotKwotKwotKyMgQUNfTElCVE9PTF9DWFgKLSsjIC0tLS0tLS0t LS0tLS0tCi0rIyBlbmFibGUgc3VwcG9ydCBmb3IgQysrIGxpYnJhcmllcwotK0FDX0RFRlVOKFtB Q19MSUJUT09MX0NYWF0sCi0rW0FDX1JFUVVJUkUoW19MVF9BQ19MQU5HX0NYWF0pCi0rXSkjIEFD X0xJQlRPT0xfQ1hYCi0rCi0rCi0rIyBfTFRfQUNfTEFOR19DWFgKLSsjIC0tLS0tLS0tLS0tLS0t LQotK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhdLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NY WF0pCi0rQUNfUkVRVUlSRShbX0xUX0FDX1BST0dfQ1hYQ1BQXSkKLStfTFRfQUNfU0hFTExfSU5J VChbdGFnbmFtZXM9JHt0YWduYW1lcyske3RhZ25hbWVzfSx9Q1hYXSkKLStdKSMgX0xUX0FDX0xB TkdfQ1hYCi0rCi0rIyBfTFRfQUNfUFJPR19DWFhDUFAKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQot K0FDX0RFRlVOKFtfTFRfQUNfUFJPR19DWFhDUFBdLAotK1sKLStBQ19SRVFVSVJFKFtBQ19QUk9H X0NYWF0pCi0raWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYK LSsgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYx YCApIHx8Ci0rICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgotKyAgQUNfUFJP R19DWFhDUFAKLStmaQotK10pIyBfTFRfQUNfUFJPR19DWFhDUFAKLSsKLSsjIEFDX0xJQlRPT0xf Rjc3Ci0rIyAtLS0tLS0tLS0tLS0tLQotKyMgZW5hYmxlIHN1cHBvcnQgZm9yIEZvcnRyYW4gNzcg bGlicmFyaWVzCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwKLStbQUNfUkVRVUlSRShbX0xU X0FDX0xBTkdfRjc3XSkKLStdKSMgQUNfTElCVE9PTF9GNzcKLSsKLSsKLSsjIF9MVF9BQ19MQU5H X0Y3NwotKyMgLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10sCi0r W0FDX1JFUVVJUkUoW0FDX1BST0dfRjc3XSkKLStfTFRfQUNfU0hFTExfSU5JVChbdGFnbmFtZXM9 JHt0YWduYW1lcyske3RhZ25hbWVzfSx9Rjc3XSkKLStdKSMgX0xUX0FDX0xBTkdfRjc3Ci0rCi0r Ci0rIyBBQ19MSUJUT09MX0dDSgotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGVuYWJsZSBzdXBwb3J0 IGZvciBHQ0ogbGlicmFyaWVzCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwKLStbQUNfUkVR VUlSRShbX0xUX0FDX0xBTkdfR0NKXSkKLStdKSMgQUNfTElCVE9PTF9HQ0oKLSsKLSsKLSsjIF9M VF9BQ19MQU5HX0dDSgotKyMgLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19MVF9BQ19MQU5H X0dDSl0sCi0rW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0dDSl0sW10sCi0rICBbQUNfUFJP VklERV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLFtdLAotKyAgICBbQUNfUFJPVklERV9JRkVMU0Uo W0xUX0FDX1BST0dfR0NKXSxbXSwKLSsgICAgICBbaWZkZWYoW0FDX1BST0dfR0NKXSxbQUNfUkVR VUlSRShbQUNfUFJPR19HQ0pdKV0sCi0rCSBbaWZkZWYoW0FdW01fUFJPR19HQ0pdLFtBQ19SRVFV SVJFKFtBXVtNX1BST0dfR0NKXSldLAotKwkgICBbQUNfUkVRVUlSRShbQV1bQ19QUk9HX0dDSl9P Ul9BXVtNX1BST0dfR0NKXSldKV0pXSldKV0pCi0rX0xUX0FDX1NIRUxMX0lOSVQoW3RhZ25hbWVz PSR7dGFnbmFtZXMrJHt0YWduYW1lc30sfUdDSl0pCi0rXSkjIF9MVF9BQ19MQU5HX0dDSgotKwot KwotKyMgQUNfTElCVE9PTF9SQwotKyMgLS0tLS0tLS0tLS0tLQotKyMgZW5hYmxlIHN1cHBvcnQg Zm9yIFdpbmRvd3MgcmVzb3VyY2UgZmlsZXMKLStBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10sCi0r W0FDX1JFUVVJUkUoW0xUX0FDX1BST0dfUkNdKQotK19MVF9BQ19TSEVMTF9JTklUKFt0YWduYW1l cz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1SQ10pCi0rXSkjIEFDX0xJQlRPT0xfUkMKLSsKLSsK LSsjIEFDX0xJQlRPT0xfTEFOR19DX0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJzIGZvciB0aGUgQyBjb21waWxl ciBhcmUKLSsjIHN1aXRhYmx5IGRlZmluZWQuICBUaG9zZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVl bnRseSB1c2VkIGJ5Ci0rIyBBQ19MSUJUT09MX0NPTkZJRyB0byB3cml0ZSB0aGUgY29tcGlsZXIg Y29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19D X0NPTkZJR10sIFtfTFRfQUNfTEFOR19DX0NPTkZJR10pCi0rQUNfREVGVU4oW19MVF9BQ19MQU5H X0NfQ09ORklHXSwKLStbbHRfc2F2ZV9DQz0iJENDIgotK0FDX0xBTkdfUFVTSChDKQotKwotKyMg U291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KLSthY19leHQ9YwotKwot KyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KLStv YmpleHQ9bwotK19MVF9BQ19UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAotKwotKyMgQ29kZSB0 byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGlu IHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigp e3JldHVybigwKTt9JwotKwotK19MVF9BQ19TWVNfQ09NUElMRVIKLSsKLSsjIHNhdmUgd2Fybmlu Z3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQ TEFURQotK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLStBQ19MSUJUT09MX1BST0dfQ09NUElM RVJfTk9fUlRUSSgkMSkKLStBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDKCQxKQotK0FDX0xJ QlRPT0xfUFJPR19DQ19DX08oJDEpCi0rQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTKCQx KQotK0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMoJDEpCi0rQUNfTElCVE9PTF9TWVNfRFlOQU1J Q19MSU5LRVIoJDEpCi0rQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0r QUNfTElCVE9PTF9TWVNfTElCX1NUUklQCi0rQUNfTElCVE9PTF9ETE9QRU5fU0VMRgotKwotKyMg UmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAotK0FDX01T R19DSEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLStBQ19N U0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCi0rCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0 aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotK3Rlc3QgIiRjYW5fYnVpbGRfc2hhcmVk IiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyMgT24gQUlYLCBzaGFyZWQgbGlicmFy aWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyMg YXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB0 ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgaWYgdGVz dCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwk UkFOTElCIFwkbGliIgotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICBm aQotKyAgOzsKLSsKLSthaXhbWzQtOV1dKikKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2 NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsgICAgdGVz dCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgIGZpCi0rICAg IDs7Ci0rZXNhYwotK0FDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKLSsKLStBQ19NU0df Q0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rIyBNYWtlIHN1 cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0rQUNfTVNHX1JFU1VM VChbJGVuYWJsZV9zdGF0aWNdKQotKwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FDX0xB TkdfUE9QCi0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBBQ19MSUJUT09MX0xBTkdfQ19DT05GSUcK LSsKLSsKLSsjIEFDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhl IEMgY29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFibGVzIGFy ZSBzdWJzZXF1ZW50bHkgdXNlZCBieQotKyMgQUNfTElCVE9PTF9DT05GSUcgdG8gd3JpdGUgdGhl IGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK0FDX0RFRlVOKFtBQ19MSUJU T09MX0xBTkdfQ1hYX0NPTkZJR10sIFtfTFRfQUNfTEFOR19DWFhfQ09ORklHKENYWCldKQotK0FD X0RFRlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSwKLStbQUNfTEFOR19QVVNIKEMrKykKLStB Q19SRVFVSVJFKFtBQ19QUk9HX0NYWF0pCi0rQUNfUkVRVUlSRShbX0xUX0FDX1BST0dfQ1hYQ1BQ XSkKLSsKLStfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLStfTFRf QUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihhbHdh eXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotK19MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPQotK19MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 Ci0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciwgJDEpPQotK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5v Ci0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQK LStfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCi0rX0xUX0FDX1RBR1ZB Uihtb2R1bGVfY21kcywgJDEpPQotK19MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAk MSk9Ci0rX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9B Q19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX0FD X1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQotK19MVF9BQ19UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0KLStfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXMsICQxKT1ubwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9y ZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6Ci0rX0xUX0FDX1RBR1ZBUihwcmVk ZXBfb2JqZWN0cywgJDEpPQotK19MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9Ci0r X0xUX0FDX1RBR1ZBUihwcmVkZXBzLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEp PQotK19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9Ci0rX0xUX0FD X1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KLSsKLSsjIFNvdXJjZSBmaWxl IGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KLSthY19leHQ9Y3BwCi0rCi0rIyBPYmpl Y3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0 PW8KLStfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUg dXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBj aGFyICpbW11dKSB7IHJldHVybigwKTsgfScKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZv ciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX0FD X1NZU19DT01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUg dGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQ TEFURQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMu Ci0rbHRfc2F2ZV9DQz0kQ0MKLStsdF9zYXZlX0xEPSRMRAotK2x0X3NhdmVfR0NDPSRHQ0MKLStH Q0M9JEdYWAotK2x0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rbHRfc2F2ZV9wYXRo X0xEPSRsdF9jdl9wYXRoX0xECi0raWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtz ZXR9IjsgdGhlbgotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4Ci0r ZWxzZQotKyAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCi0rZmkKLStpZiB0ZXN0IC1uICIk e2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3Bh dGhfTERDWFgKLStlbHNlCi0rICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAotK2ZpCi0rdGVzdCAt eiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKLStDQz0ke0NYWC0iYysrIn0KLStjb21waWxl cj0kQ0MKLStfTFRfQUNfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rX0xUX0NDX0JBU0VOQU1F KFskY29tcGlsZXJdKQotKwotKyMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3ZW4gY29t cGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCi0rIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVs eQotK2lmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nCi0rZWxzZQotKyAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPQotK2Zp Ci0rCi0raWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICMgU2V0IHVwIGRlZmF1bHQgR05V IEMrKyBjb25maWd1cmF0aW9uCi0rCi0rICBBQ19QUk9HX0xECi0rCi0rICAjIENoZWNrIGlmIEdO VSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKLSsg ICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1 c2VkLgotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCi0rCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICBfTFRfQUNf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFt aWMnCi0rCi0rICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hv dWxkIGJlIGVtcHR5Ci0rICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQg aW4gbHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KLSsgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBs aXR0bGUgYml0IG1vcmUuIChNTSkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIGFuY2ll bnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlm IGV2YWwgImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwgXAotKwlncmVw ICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9MVF9BQ19UQUdW QVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUk Y29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgZWxzZQotKyAg ICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLSsgICAgZmkK LSsgIGVsc2UKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgd2xhcmM9Ci0rCi0rICAgICMgQSBn ZW5lcmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCi0r ICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUg bmF0aXZlCi0rICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0 aGlzIHNldHRpbmcgc2hvdWxkCi0rICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBv ZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgotKyAgICAjIHRoZSBwbGF0Zm9ybSBpdCBp cyBiZWluZyB1c2VkIG9uLgotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rICBmaQotKwotKyAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cwotKyAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCi0rICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSB8IGdyZXAgIlwtTCInCi0rCi0rZWxzZQotKyAgR1hYPW5vCi0rICB3aXRoX2dudV9sZD1u bwotKyAgd2xhcmM9Ci0rZmkKLSsKLSsjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9m IHlvdXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCi0rQUNfTVNHX0NIRUNLSU5H KFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJy YXJpZXNdKQotK19MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rY2FzZSAkaG9zdF9v cyBpbgotKyAgYWl4MyopCi0rICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgIDs7Ci0r ICBhaXhbWzQtOV1dKikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsg ICAgICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1 bHQsIHNvIHdlIGRvbid0Ci0rICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0r ICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKyAgICAgIGV4cF9zeW1fZmxhZz0nLUJl eHBvcnQnCi0rICAgICAgbm9fZW50cnlfZmxhZz0iIgotKyAgICBlbHNlCi0rICAgICAgYWl4X3Vz ZV9ydW50aW1lbGlua2luZz1ubwotKwotKyAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRv IHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAotKyAgICAgICMgQUlYIHN0eWxlIGxpbmtp bmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAgICAgICMgbmVlZCB0 byBkbyBydW50aW1lIGxpbmtpbmcuCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNd XXxhaXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQotKwlmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsg ZG8KLSsJICBjYXNlICRsZF9mbGFnIGluCi0rCSAgKi1icnRsKikKLSsJICAgIGFpeF91c2VfcnVu dGltZWxpbmtpbmc9eWVzCi0rCSAgICBicmVhawotKwkgICAgOzsKLSsJICBlc2FjCi0rCWRvbmUK LSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsg ICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgIGZpCi0rCi0rICAgICMgV2hlbiBs YXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4K LSsgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElm IGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBU T0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICMgQ1hYRkxBR1MvQ0ZMQUdT IGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Ci0rICAgICMgZW5v dWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwot KyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCi0rICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKyAgICBfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2Rl cGxpYnMsICQxKT15ZXMKLSsKLSsgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAg ICBjYXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKLSsgICAgICAj IFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sK LSsgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQu MysKLSsJY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAotKwlp ZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCi0rCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5h bWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKLSsJdGhlbgotKwkgICMgV2Ug aGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgIDoKLSsJZWxzZQotKwkgICMgV2UgaGF2ZSBvbGQg Y29sbGVjdDIKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9y dGVkCi0rCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRo ZSB1bmluc3RhbGxlZAotKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAg U2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVs aW5raW5nCi0rCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicK LSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsJZmkK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rICAgICAg aWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCXNoYXJlZF9m bGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsgICAg ICAjIG5vdCB1c2luZyBnY2MKLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgotKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBC ZXRhIDMgUmVsZWFzZQotKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBp cyBjb3JyZWN0OgotKwlzaGFyZWRfZmxhZz0nLUcnCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxhZz0nJHt3 bH0tRycKLSsJZWxzZQotKwkgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCWZpCi0rICAg ICAgZmkKLSsgICAgZmkKLSsKLSsgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90 IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCi0rICAgICMgdW5kZXJzY29yZSAoXyksIHNv IGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0r ICAgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCi0rICAgIGlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgV2Fy bmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJy dGwpLAotKyAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHBy b2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKLSsgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBs aWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KLSsg ICAgICBfTFRfQUNfU1lTX0xJQlBBVEhfQUlYCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xp YnBhdGgiCi0rCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 IlwkQ0MiJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7 d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGVjaG8gIiR7d2x9JHthbGxvd191bmRlZmluZWRf ZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9s cyAkc2hhcmVkX2ZsYWciCi0rICAgICBlbHNlCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwlfTFRfQUNfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBp bGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9m bGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rICAgICAgZWxzZQotKwkjIERldGVybWluZSB0aGUgZGVm YXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJs ZS4KLSsJX0xUX0FDX1NZU19MSUJQQVRIX0FJWAotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0 aCIKLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGlu ZyBmbGFncywKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJv ZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwlfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyAke3dsfS1iZXJub3RvaycKLSsJX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCi0rCSMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVs bGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwlfTFRfQUNfVEFHVkFSKHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKLSsJX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwotKwkjIFRoaXMgaXMgc2ltaWxhciB0byBo b3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgotKwlfTFRf QUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5 ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5l ZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAk b3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgIGZpCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0r ICBiZW9zKikKLSsgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgIyBKb3NlcGggQmVja2Vu YmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKyAgICAgICMg c3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAg RklYTUUKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3Rh cnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lIC1vICRsaWInCi0rICAgIGVsc2UKLSsgICAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBjaG9ydXMqKQotKyAgICBjYXNlICRjY19i YXNlbmFtZSBpbgotKyAgICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0rICAg IGVzYWMKLSsgICAgOzsKLSsKLSsgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgIyBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBt ZWFuaW5nbGVzcywKLSsgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4K LSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxp YmRpcicKLSsgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3Vw cG9ydGVkCi0rICAgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8K LSsgICAgX0xUX0FDX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAk MSk9eWVzCi0rCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+ IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhs aW5rZXIgJGxpYicKLSsgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkg aXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFz IGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0g eEVYUE9SVFM7IHRoZW4KLSsJY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmOwotKyAgICAgIGVsc2UKLSsJZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNv bmFtZS5kZWY7Ci0rCWNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7Ci0rICAgICAgZml+Ci0rICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7 d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtl ciAkbGliJwotKyAgICBlbHNlCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bwotKyAgICBmaQotKyAgOzsKLSsgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2F1dG9tYXRpYywgJDEpPXllcwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPScnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxh ZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICAgICAgaWYgdGVzdCAiJEdYWCIg PSB5ZXMgOyB0aGVuCi0rICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxl cl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9k YXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVs ZV9jbWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxl IFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywn IDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xz LmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIg XCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0 aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhw b3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4 cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91 dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVm aW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVy X2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBpZiB0 ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsgICAgICAg IF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9l eHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5h bWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBc JGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUg XCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCi0rICAgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwk b3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3By aXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRD QyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFz dGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wk c29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIK LSsgICAgICBmaQotKyAgICAgIGVsc2UKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgICAgeGxjKikKLSsgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsg ICAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1xbWtzaHJvYmog JHt3bH0tc2luZ2xlX21vZHVsZSAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8g JHJwYXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgIF9MVF9BQ19UQUdWQVIo bW9kdWxlX2NtZHMsICQxKT0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1idW5k bGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgICAgICMgRG9uJ3Qg Zml4IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywgaXQg ZG9lc24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCi0rICAgICAgICAgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAg IF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29i amRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICR7d2x9LXNpbmds ZV9tb2R1bGUgJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4 bGN2ZXJzdHJpbmd+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW0gJHtsaWJ9JwotKyAgICAgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21k cywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwp LF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgIC1vICRsaWIgLWJ1bmRsZSAkbGli b2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFnc35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHts aWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgICAgICAgIDs7Ci0rICAgICAgICop Ci0rICAgICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgICAgICA7 OwotKyAgICAgIGVzYWMKLSsgICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsgIGRndXgqKQotKyAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGVjKysqKQotKwkjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKwk7OwotKyAgICAgIGdoY3gqKQotKwkjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgot KwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKyAgICAgICopCi0rCSMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGZyZWVic2RbWzEyXV0qKQotKyAg ICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVm b3JlIHN3aXRjaCB0byBFTEYKLSsgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KyAgICA7OwotKyAgZnJlZWJzZC1lbGYqKQotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k c19uZWVkX2xjLCAkMSk9bm8KLSsgICAgOzsKLSsgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsg ICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFu ZGFyZCBFTEYKLSsgICAgIyBjb252ZW50aW9ucwotKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGli cywgJDEpPXllcwotKyAgICA7OwotKyAgZ251KikKLSsgICAgOzsKLSsgIGhwdXg5KikKLSsgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3 bH0kbGliZGlyJwotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Is ICQxKT06Ci0rICAgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LUUnCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0r ICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUg c2VhcmNoIFBBVEgsCi0rCQkJCSMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCSMgbG9jYXRpb24g b2YgdGhlIGxpYnJhcnkuCi0rCi0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgIENDKikK LSsgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAg ICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgYUNDKikK LSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAjIENvbW1hbmRz IHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rICAg ICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCi0rICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rICAgICAgIwot KyAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlz IGNvbXBpbGVyIGZyb20KLSsgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0 IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKyAgICAgICMgZnJvbSB0aGUgb3V0cHV0 IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsgICAgICAj IGRlcGVuZGVuY2llcy4KLSsgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9 YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3JlcCAiW1stXV1M ImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4k b2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoi Oztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgaWYg dGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRybSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYg JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsgICAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX0FDX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwot KyAgICA7OwotKyAgaHB1eDEwKnxocHV4MTEqKQotKyAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9 IG5vOyB0aGVuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgot KyAgICAgIGhwcGEqNjQqfGlhNjQqKSA7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgICAgICA7OwotKyAgICAg IGVzYWMKLSsgICAgZmkKLSsgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgaHBwYSo2NCp8aWE2 NCopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsK LSsgICAgKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwot KyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0 aGUgc2VhcmNoIFBBVEgsCi0rCQkJCQkgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkJ ICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsgICAgICA7OwotKyAgICBlc2FjCi0r Ci0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgQ0MqKQotKwkjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKwk7OwotKyAgICAgIGFDQyopCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEq NjQqKQotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfSto ICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBf TFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikK LSsJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycK LSsJICA7OwotKwllc2FjCi0rCSMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZl cmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2Jq ZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkjCi0rCSMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJl dmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9i amVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJIyBmcm9tIHRoZSBvdXRwdXQg c28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkjIGRlcGVu ZGVuY2llcy4KLSsJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8IGdyZXAgIlwtTCJgOyBsaXN0PSIiOyBm b3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0i JGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsg ZWNobyAkbGlzdCcKLSsJOzsKLSsgICAgICAqKQotKwlpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhl bgotKwkgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KLSsJICAgIGNhc2UgJGhvc3Rf Y3B1IGluCi0rCSAgICBocHBhKjY0KikKLSsJICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1l IC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICA7OwotKwkgICAgaWE2NCopCi0rCSAgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJ QyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncycKLSsJICAgICAgOzsKLSsJICAgICopCi0rCSAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkg ICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCWVsc2UKLSsJICAjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCWZpCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGludGVyaXhbWzMtOV1d KikKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicK LSsgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t RScKLSsgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJl Y2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgotKyAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMg YXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICMgZGVmYXVs dCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBt ZW1vcnkKLSsgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9p ZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAotKyAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBi YXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICMgdGlt ZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNw YWNlLgotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFt ZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIx NDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpk aXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZp bGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIg JHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicK LSsgICAgOzsKLSsgIGlyaXg1KiB8IGlyaXg2KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsgICAgICBDQyopCi0rCSMgU0dJIEMrKwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAt dXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0r Ci0rCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRl ZCB1c2luZwotKwkjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxl ci4gIFRoaXMgaXMKLSsJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1w bGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSMgaW4gdGhlIGFyY2hpdmUuCi0rCV9MVF9BQ19UQUdWQVIo b2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpz JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rCSAgaWYg dGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIF9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgIC1vICRsaWInCi0rCSAgZmkKLSsJZmkK LSsJX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCTs7Ci0rICAgIGVz YWMKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICA7OwotKyAgbGludXgqIHwgaypic2QqLWdudSkKLSsg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29j aWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVh dGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5z byIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0 cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwlfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAt ZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVj aG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCV9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFy ZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wn J2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8i YDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCi0rCSMg Q29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlz dHMKLSsJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCi0rCSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkjCi0rCSMgVGhl cmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZy b20KLSsJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVk IHRvIHN0cmlwIHRoZW0KLSsJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdl dCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkjIGRlcGVuZGVuY2llcy4KLSsJb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8IGdyZXAgImxkImA7IHJtIC1mIGxpYmNv bmZ0ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAk eiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikg bGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwotKwlfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoLCRsaWJkaXIn Ci0rCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1l eHBvcnQtZHluYW1pYycKLSsKLSsJIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmls ZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBp cyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7OwotKyAgICAgIGlj cGMqKQotKwkjIEludGVsIEMrKwotKwl3aXRoX2dudV9sZD15ZXMKLSsJIyB2ZXJzaW9uIDguMCBh bmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKLSsJIyBp ZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcu MSBhbmQKLSsJIyBlYXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KLSsJ Y2FzZSBgJENDIC1WIDI+JjFgIGluCi0rCSoiVmVyc2lvbiA3LiIqKQotKyAgCSAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0r CSAgOzsKLSsJKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKLSsJICB0bXBfaWR5bj0KLSsJICBj YXNlICRob3N0X2NwdSBpbgotKwkgICAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7Owot KwkgIGVzYWMKLSsgIAkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgIDs7Ci0rCWVzYWMKLSsJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCV9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwot KwlfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhw b3J0LWR5bmFtaWMnCi0rCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCi0rCTs7Ci0rICAgICAgcGdDQyogfCBwZ2NwcCopCi0rICAgICAgICAjIFBvcnRsYW5kIEdy b3VwIEMrKyBjb21waWxlcgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8g JGxpYicKLSsgIAlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLSsJ X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0 aCAke3dsfSRsaWJkaXInCi0rCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29u dmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwi JG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2Vc ImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgICA7OwotKyAgICAgIGN4eCopCi0r CSMgQ29tcGFxIEMrKwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR3bCRleHBvcnRfc3ltYm9scycKLSsKLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGly JwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCi0r CSMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFn cyBhcmUgdXNlZCB3aGVuCi0rCSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkjCi0rCSMg VGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVy IGZyb20KLSsJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBu ZWVkIHRvIHN0cmlwIHRoZW0KLSsJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0 IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkjIGRlcGVuZGVuY2llcy4KLSsJb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0 ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgImxkImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8 ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBp biAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3Qg JHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNobyAk bGlzdCcKLSsJOzsKLSsgICAgICAqKQotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4K LSsJKlN1blwgQyopCi0rCSAgIyBTdW4gQysrIDUuOQotKwkgIF9MVF9BQ19UQUdWQVIobm9fdW5k ZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRD QyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJwotKwkgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAg X0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUt YXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBk byB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNl LCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hv bGUtYXJjaGl2ZScKLSsKLSsJICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9u Ci0rCSAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNo YXJlZF9leHQgMj4mMQotKwkgICMgd291bGQgYmUgYmV0dGVyLgotKwkgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSdlY2hvJwotKwotKwkgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0 IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0Mi IGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICMgbmVjZXNzYXJ5IHRvIG1h a2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICMgaW4gdGhl IGFyY2hpdmUuCi0rCSAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt eGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAgICBlc2Fj Ci0rICAgIDs7Ci0rICBseW54b3MqKQotKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAg ICA7OwotKyAgbTg4ayopCi0rICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgIDs7Ci0r ICBtdnMqKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGN4eCopCi0rCSMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlfTFRfQUNfVEFHVkFSKGxk X3NobGlicywgJDEpPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K LSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgbmV0YnNkKikKLSsgICAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2Vy X2ZsYWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubwotKyAgICBmaQotKyAgICAjIFdvcmthcm91bmQgc29tZSBicm9rZW4g cHJlLTEuNSB0b29sY2hhaW5zCi0rICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNo YXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgY29uZnRlc3QuJG9i amV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJwotKyAgICA7OwotKyAgb3BlbmJz ZDIqKQotKyAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIGFyZSBmYWlybHkgYnJva2VuCi0rICAg IF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgOzsKLSsgIG9wZW5ic2QqKQot KyAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJw YXRoLCRsaWJkaXInCi0rICAgICAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAt IHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNk Mi44LXBvd2VycGMiOyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2Ug JyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICBmaQotKyAgICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKyAgICBlbHNlCi0rICAgICAgX0xUX0FDX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKyAgICBmaQotKyAgICA7OwotKyAgb3NmMyopCi0rICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rICAgICAgS0NDKikKLSsJIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJ bmMuIChLQUkpIEMrKyBDb21waWxlcgotKwotKwkjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hh cmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSMgZW5kcyB3aXRoICIuc28iIChvciAi LnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJIyB0byBpdHMgcHJvcGVy IG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KLSsJX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3Mv XChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIg fCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25h bWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwotKwlfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRp cicKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwot KwkjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQg dXNpbmcKLSsJIyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBp bGVyLgotKwlfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3RhdGlj IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCi0rCTs7Ci0rICAgICAgUkNDKikKLSsJIyBSYXRpb25h bCBDKysgMi40LjEKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsgICAgICBjeHgqKQot KwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3Rf dW5yZXNvbHZlZCAke3dsfVwqJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCi0rCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVy IHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBh IHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2lu ZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20g dGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5 Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9 YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQi IHwgZ3JlcCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXChe LipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsg ZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpl eHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7Owot KyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSBubzsgdGhlbgotKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0n ICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBk YXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJh cmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgIyBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hh cmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKLSsKLSsJ ZWxzZQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkg IF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJZmkKLSsJOzsKLSsgICAgZXNhYwot KyAgICA7OwotKyAgb3NmNCogfCBvc2Y1KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg ICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBp bGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUg b3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNv IHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9u KSBhZnRlciBsaW5raW5nLgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1w ZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31d XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVt cGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVt cGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwlfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCi0rCSMgQXJjaGl2ZXMgY29udGFp bmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkjIHRoZSBLQUkg QysrIGNvbXBpbGVyLgotKwlfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJEND IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCTs7Ci0rICAgICAgUkNDKikKLSsJIyBSYXRpb25hbCBD KysgMi40LjEKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r CV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsgICAgICBjeHgqKQotKwlf TFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2 ZWQgXConCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0 ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlfTFRf QUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0 X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ ICRsaWIuZXhwOyBkb25lfgotKwkgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSAgJEND IC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNv bmFtZSAtV2wsLWlucHV0IC1XbCwkbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj aG8gLXNldF92ZXJzaW9uCSR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KLSsJICAkcm0gJGxpYi5leHAnCi0rCi0rCV9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicK LSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkj IENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxp c3RzCi0rCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3Mg YXJlIHVzZWQgd2hlbgotKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJIwotKwkjIFRo ZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBm cm9tCi0rCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVl ZCB0byBzdHJpcCB0aGVtCi0rCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBn ZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJIyBkZXBlbmRlbmNpZXMuCi0rCW91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEgfCBncmVwICJsZCIgfCBncmVwIC12ICJsZDoiYDsgdGVtcGxpc3Q9YGVj aG8gJHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlz dD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQp IGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7 IGRvbmU7IGVjaG8gJGxpc3QnCi0rCTs7Ci0rICAgICAgKikKLSsJaWYgdGVzdCAiJEdYWCIgPSB5 ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgX0xUX0FDX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1c KicKLSsJIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1z b25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNl dF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsKLSsJICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JwotKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsK LSsJICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCi0rCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFu ZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKLSsKLSsJZWxzZQotKwkgICMgRklYTUU6IGlu c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIF9MVF9BQ19UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KLSsJZmkKLSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgcHNvcyopCi0r ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICBfTFRf QUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgIDs7Ci0rICBzdW5vczQqKQotKyAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIENDKikKLSsJIyBTdW4gQysrIDQueAotKwkjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKyAgICAgIGxjYyopCi0rCSMgTHVjaWQKLSsJIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsgICAgICAqKQotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot Kwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBzb2xhcmlzKikKLSsgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCSMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGlu ZSBDKysKLSsgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEpPXll cwotKwlfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCi0rCV9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhw b3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxh Z30gICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJt ICRsaWIuZXhwJwotKwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLVIkbGliZGlyJwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT1ubwotKwljYXNlICRob3N0X29zIGluCi0rCSAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFy aXMyLltbMC01XV0uKikgOzsKLSsJICAqKQotKwkgICAgIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdp bGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJICAgICMgYnV0IHVuZGVy c3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCi0rCSAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlz IDIuNiAobWF5YmUgMi41LjE/KQotKwkgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0 JwotKwkgICAgOzsKLSsJZXNhYwotKwlfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQx KT15ZXMKLSsKLSsJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rCi0rCSMgQXJjaGl2 ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkj ICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMK LSsJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGlu Y2x1ZGVkCi0rCSMgaW4gdGhlIGFyY2hpdmUuCi0rCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7OwotKyAgICAgIGdj eCopCi0rCSMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8g JGxpYicKLSsKLSsJIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhl IGFyY2hpdmUuCi0rCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgJExE RkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJOzsKLSsgICAgICAqKQotKwkj IEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgotKwlpZiB0ZXN0ICIkR1hYIiA9 IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJICBfTFRfQUNfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKLSsJICBpZiAkQ0Mg LS12ZXJzaW9uIHwgZ3JlcCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxB R1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5l eHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIu ZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJJENDIC1zaGFyZWQgLW5v c3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhw JwotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQg bGlicmFyeS4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSIkQ0MgLXNoYXJlZCAkQ0ZM QUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgXCJcLUxcIiIKLSsJICBlbHNlCi0r CSAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0 aGlzCi0rCSAgICAjIHBsYXRmb3JtLgotKwkgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29u YW1lIC1vICRsaWInCi0rCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNF RCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4g JGxpYi5leHB+Ci0rCQkkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJo aWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0r CSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSIkQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwIFwi XC1MXCIiCi0rCSAgZmkKLSsKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nJHt3bH0tUiAkd2wkbGliZGlyJwotKwkgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJ ICBzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkgICopCi0rCSAg ICBfTFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3 bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJ ICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBzeXN2 NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8 IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQotKyAgICBfTFRfQUNfVEFHVkFSKG5v X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf c2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsK LSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCV9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0t aCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7 OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJOzsKLSsgICAgZXNhYwotKyAg ICA7OwotKyAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKLSsgICAgIyBOb3RlOiBXZSBj YW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QK LSsgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1 c2VkIGZyb20gbGliYyB0bwotKyAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFu cyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5 LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKyAgICAjIHRob3Vn aCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1o YW5kZWQKLSsgICAgIyBhcyAteiBkZWZzLgotKyAgICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBp dCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rICAgICMgdXNlIGFic29s dXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCi0r ICAgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0 IGRvaW5nIHNvCi0rICAgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3 aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0rICAgICMgU28gdGhhdCBiZWhhdmlvdXIgaXMgb25seSBl bmFibGVkIGlmIFNDT0FCU1BBVEggaXMgc2V0IHRvIGEKLSsgICAgIyBub24tZW1wdHkgdmFsdWUg aW4gdGhlIGVudmlyb25tZW50LiAgTW9zdCBsaWtlbHkgb25seSB1c2VmdWwgZm9yCi0rICAgICMg Y3JlYXRpbmcgb2ZmaWNpYWwgZGlzdHJpYnV0aW9ucyBvZiBwYWNrYWdlcy4KLSsgICAgIyBUaGlz IGlzIGEgaGFjayB1bnRpbCBsaWJ0b29sIG9mZmljaWFsbHkgc3VwcG9ydHMgYWJzb2x1dGUgcGF0 aAotKyAgICAjIG5hbWVzIGZvciBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBfTFRfQUNfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgX0xUX0FDX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKLSsgICAgX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8g JHt3bH0tUiwkbGliZGlyYCcKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9JzonCi0rICAgIF9MVF9BQ19UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEp PXllcwotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1CZXhwb3J0JwotKyAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgQ0MqKQotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGly fS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhw b3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJk aXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot Kwk7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCV9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRl eHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30k c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7Owot KyAgICBlc2FjCi0rICAgIDs7Ci0rICB0YW5kZW0qKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBp bgotKyAgICAgIE5DQyopCi0rCSMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKwk7OwotKyAgICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCTs7Ci0r ICAgIGVzYWMKLSsgICAgOzsKLSsgIHZ4d29ya3MqKQotKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICA7OwotKyAgKikKLSsgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAg OzsKLStlc2FjCi0rQUNfTVNHX1JFU1VMVChbJF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSld KQotK3Rlc3QgIiRfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWls ZF9zaGFyZWQ9bm8KLSsKLStfTFRfQUNfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgotK19MVF9BQ19U QUdWQVIoTEQsICQxKT0iJExEIgotKwotK0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVAoJDEpCi0r QUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQygkMSkKLStBQ19MSUJUT09MX1BST0dfQ0NfQ19P KCQxKQotK0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUygkMSkKLStBQ19MSUJUT09MX1BS T0dfTERfU0hMSUJTKCQxKQotK0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotK0FD X0xJQlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIKCQxKQotKwotK0FDX0xJQlRPT0xfQ09O RklHKCQxKQotKwotK0FDX0xBTkdfUE9QCi0rQ0M9JGx0X3NhdmVfQ0MKLStMRENYWD0kTEQKLStM RD0kbHRfc2F2ZV9MRAotK0dDQz0kbHRfc2F2ZV9HQ0MKLSt3aXRoX2dudV9sZGN4eD0kd2l0aF9n bnVfbGQKLSt3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2x0X2N2X3BhdGhfTERD WFg9JGx0X2N2X3BhdGhfTEQKLStsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKLStsdF9j dl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKLStsdF9jdl9wcm9nX2dudV9sZD0k bHRfc2F2ZV93aXRoX2dudV9sZAotK10pIyBBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJRwotKwot KyMgQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUChbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEZpZ3VyZSBvdXQgImhpZGRlbiIgbGlicmFyeSBk ZXBlbmRlbmNpZXMgZnJvbSB2ZXJib3NlCi0rIyBjb21waWxlciBvdXRwdXQgd2hlbiBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRy YWN0IHRoZSBuZWNlc3NhcnkKLSsjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFn cy4KLStBQ19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0sCi0rW0FDX1JFUVVJUkUo W0xUX0FDX1BST0dfU0VEXSlkbmwKLStkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUgaGVyZSwKLStkbmwgYmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVu ZGVkIGZvciBhbiBleGVjdXRhYmxlLAotK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJs ZSB3ZSBzaG91bGQgbGV0IGVhY2gKLStkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtf dGVzdF9jb2RlIHZhcmlhYmxlLAotK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgotK2lm ZWxzZShbJDFdLFtdLFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0raW50IGE7Ci0rdm9p ZCBmb28gKHZvaWQpIHsgYSA9IDA7IH0KLStFT0YKLStdLFskMV0sW0NYWF0sW2NhdCA+IGNvbmZ0 ZXN0LiRhY19leHQgPDxFT0YKLStjbGFzcyBGb28KLSt7Ci0rcHVibGljOgotKyAgRm9vICh2b2lk KSB7IGEgPSAwOyB9Ci0rcHJpdmF0ZToKLSsgIGludCBhOwotK307Ci0rRU9GCi0rXSxbJDFdLFtG NzddLFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rICAgICAgc3Vicm91dGluZSBmb28K LSsgICAgICBpbXBsaWNpdCBub25lCi0rICAgICAgaW50ZWdlcio0IGEKLSsgICAgICBhPTAKLSsg ICAgICByZXR1cm4KLSsgICAgICBlbmQKLStFT0YKLStdLFskMV0sW0dDSl0sW2NhdCA+IGNvbmZ0 ZXN0LiRhY19leHQgPDxFT0YKLStwdWJsaWMgY2xhc3MgZm9vIHsKLSsgIHByaXZhdGUgaW50IGE7 Ci0rICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKLSsgICAgYSA9IDA7Ci0rICB9Ci0rfTsKLStF T0YKLStdKQotK2RubCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBu ZWNlc3NhcnkKLStkbmwgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotK2lm IEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAjIFBhcnNlIHRoZSBjb21waWxlciBv dXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQotKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMg YW5kIGxpYnJhcnkgZmxhZ3MuCi0rCi0rICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBv ZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCi0rICAjIHRoZSBjb25mdGVzdCBvYmplY3Qg ZmlsZS4KLSsgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KLSsKLSsgICMgVGhlIGAqJyBp biB0aGUgY2FzZSBtYXRjaGVzIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgdXNlIGBjYXNlJyBpbgot KyAgIyAkb3V0cHV0X3ZlcmJvc2VfY21kIGNhbiB0cmlnZ2VyIGdsb2IgZXhwYW5zaW9uIGR1cmlu ZyB0aGUgbG9vcAotKyAgIyBldmFsIHdpdGhvdXQgdGhpcyBzdWJzdGl0dXRpb24uCi0rICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD1gJGVjaG8gIlgkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiIHwg JFhzZWQgLWUgIiRub19nbG9iX3N1YnN0ImAKLSsKLSsgIGZvciBwIGluIGBldmFsICRvdXRwdXRf dmVyYm9zZV9saW5rX2NtZGA7IGRvCi0rICAgIGNhc2UgJHAgaW4KLSsKLSsgICAgLUwqIHwgLVIq IHwgLWwqKQotKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17 TCxSfSIgYW5kIHRoZSBwYXRoLgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCi0rICAgICAg IGlmIHRlc3QgJHAgPSAiLUwiIFwKLSsJICB8fCB0ZXN0ICRwID0gIi1SIjsgdGhlbgotKwkgcHJl dj0kcAotKwkgY29udGludWUKLSsgICAgICAgZWxzZQotKwkgcHJldj0KLSsgICAgICAgZmkKLSsK LSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4K LSsJIGNhc2UgJHAgaW4KLSsJIC1MKiB8IC1SKikKLSsJICAgIyBJbnRlcm5hbCBjb21waWxlciBs aWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCi0rCSAgICMgcHJvdmlkZWQgdGhl IHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQotKwkgICAjIHVzZXIg c3VwcGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KLSsJICAg aWYgdGVzdCAteiAiJF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSki OyB0aGVuCi0rCSAgICAgX0xUX0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQx KT0iJHtwcmV2fSR7cH0iCi0rCSAgIGVsc2UKLSsJICAgICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJj aF9wYXRoLCAkMSl9ICR7cHJldn0ke3B9IgotKwkgICBmaQotKwkgICA7OwotKwkgIyBUaGUgIi1s IiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKLSsJICMgbGlu a2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgotKwkgZXNhYwotKyAgICAg ICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpIjsgdGhl bgotKwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7cHJldn0ke3B9IgotKwkgZWxz ZQotKwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xUX0FDX1RBR1ZBUihwb3N0 ZGVwcywgJDEpfSAke3ByZXZ9JHtwfSIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0r Ci0rICAgICouJG9iamV4dCkKLSsgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBv YmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCi0rICAgICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIg b3V0cHV0LgotKyAgICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4K LSsJIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9eWVzCi0rCSBjb250aW51ZQotKyAgICAgICBm aQotKwotKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsg dGhlbgotKwkgaWYgdGVzdCAteiAiJF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSI7 IHRoZW4KLSsJICAgX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkcCIKLSsJIGVs c2UKLSsJICAgX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkX0xUX0FDX1RBR1ZB UihwcmVkZXBfb2JqZWN0cywgJDEpICRwIgotKwkgZmkKLSsgICAgICAgZWxzZQotKwkgaWYgdGVz dCAteiAiJF9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCi0rCSAgIF9M VF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRwIgotKwkgZWxzZQotKwkgICBfTFRf QUNfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkX0xUX0FDX1RBR1ZBUihwb3N0ZGVwX29i amVjdHMsICQxKSAkcCIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIDs7Ci0rCi0rICAgICop IDs7ICMgSWdub3JlIHRoZSByZXN0LgotKwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAjIENs ZWFuIHVwLgotKyAgcm0gLWYgYS5vdXQgYS5leGUKLStlbHNlCi0rICBlY2hvICJsaWJ0b29sLm00 OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgJDEgdGVzdCBwcm9ncmFtIgotK2ZpCi0rCi0rJHJt IC1mIGNvbmZlc3QuJG9iamV4dAotKwotK19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJj aF9kaXJzLCAkMSk9Ci0raWYgdGVzdCAtbiAiJF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoLCAkMSkiOyB0aGVuCi0rICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFy Y2hfZGlycywgJDEpPWBlY2hvICIgJHtfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hf cGF0aCwgJDEpfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdgCi0rZmkKLSsK LSsjIFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJy b2tlbgotK2lmZWxzZShbJDFdLFtDWFhdLAotK1tjYXNlICRob3N0X29zIGluCi0raW50ZXJpeFtb My05XV0qKQotKyAgIyBJbnRlcml4IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBm aWxlcyBmb3IgQysrLCBzbyByYXRoZXIgdGhhbgotKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxl dCdzIGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KLSsgIF9MVF9BQ19UQUdWQVIocHJlZGVwX29i amVjdHMsJDEpPQotKyAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsJDEpPQotKyAgX0xU X0FDX1RBR1ZBUihwb3N0ZGVwcywkMSk9Ci0rICA7OwotKwotK2xpbnV4KikKLSsgIGNhc2UgYCRD QyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKyAgKlN1blwgQyopCi0rICAgICMgU3VuIEMrKyA1LjkK LSsgICAgIwotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxp YnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9p ZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNy dW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNl ICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsg ICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAg IGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgX0xU X0FDX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsg ICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgQ0MqKQotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3Jt aW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0 ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFH Uy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9u IGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1z dGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7Owot KyAgICBlc2FjCi0rCi0rICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNl dHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCi0rICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25z IGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKLSsgICAgIyBhcmNoaXZl IHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4K LSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAg ICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVu JwotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLStlc2FjCi0rXSkKLStjYXNlICIg JF9MVF9BQ19UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCi0rKiIgLWxjICIqKSBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8gOzsKLStlc2FjCi0rXSkjIEFDX0xJQlRP T0xfUE9TVERFUF9QUkVERVAKLSsKLSsjIEFDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRp b24gdmFycyBmb3IgdGhlIEMgY29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhv c2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQotKyMgQUNfTElCVE9PTF9DT05G SUcgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK0FD X0RFRlVOKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10sIFtfTFRfQUNfTEFOR19GNzdfQ09O RklHKEY3NyldKQotK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19GNzdfQ09ORklHXSwKLStbQUNfUkVR VUlSRShbQUNfUFJPR19GNzddKQotK0FDX0xBTkdfUFVTSChGb3J0cmFuIDc3KQotKwotK19MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotK19MVF9BQ19UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfQUNfVEFHVkFSKGFsd2F5c19leHBvcnRfc3lt Ym9scywgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0r X0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAk MSk9Ci0rX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KLStfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCi0rX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21k cywgJDEpPQotK19MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX0FD X1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9BQ19UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX0FDX1RBR1ZBUihub191 bmRlZmluZWRfZmxhZywgJDEpPQotK19MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0KLStfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXMsICQxKT1ubwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3Vy Y2VzLgotK2FjX2V4dD1mCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVk IGY3NyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEp PSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwot K2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAotKyAgICAgIHN1YnJvdXRpbmUgdAotKyAg ICAgIHJldHVybgotKyAgICAgIGVuZAotKyIKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAgIHByb2dy YW0gdAotKyAgICAgIGVuZAotKyIKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdn ZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX0FDX1NZU19D T01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBj b2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQot KwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRf c2F2ZV9DQz0iJENDIgotK0NDPSR7Rjc3LSJmNzcifQotK2NvbXBpbGVyPSRDQwotK19MVF9BQ19U QUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKLStfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0r Ci0rQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNd KQotK0FDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLStBQ19NU0dfQ0hFQ0tJ TkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCi0rdGVzdCAiJGNhbl9idWls ZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rIyBPbiBBSVgsIHNoYXJl ZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwg YW5kCi0rIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgz KikKLSsgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0r ICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZl X2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxp YicKLSsgIGZpCi0rICA7OwotK2FpeFtbNC05XV0qKQotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiAh PSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAg ICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAgZmkK LSsgIDs7Ci0rZXNhYwotK0FDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKLSsKLStBQ19N U0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rIyBNYWtl IHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rdGVz dCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0rQUNfTVNHX1JF U1VMVChbJGVuYWJsZV9zdGF0aWNdKQotKwotK19MVF9BQ19UQUdWQVIoR0NDLCAkMSk9IiRHNzci Ci0rX0xUX0FDX1RBR1ZBUihMRCwgJDEpPSIkTEQiCi0rCi0rQUNfTElCVE9PTF9QUk9HX0NPTVBJ TEVSX1BJQygkMSkKLStBQ19MSUJUT09MX1BST0dfQ0NfQ19PKCQxKQotK0FDX0xJQlRPT0xfU1lT X0hBUkRfTElOS19MT0NLUygkMSkKLStBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTKCQxKQotK0FD X0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQotK0FDX0xJQlRPT0xfUFJPR19MRF9IQVJE Q09ERV9MSUJQQVRIKCQxKQotKwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FDX0xBTkdf UE9QCi0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJRwot KwotKwotKyMgQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUcKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJzIGZvciB0aGUg QyBjb21waWxlciBhcmUKLSsjIHN1aXRhYmx5IGRlZmluZWQuICBUaG9zZSB2YXJpYWJsZXMgYXJl IHN1YnNlcXVlbnRseSB1c2VkIGJ5Ci0rIyBBQ19MSUJUT09MX0NPTkZJRyB0byB3cml0ZSB0aGUg Y29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rQUNfREVGVU4oW0FDX0xJQlRP T0xfTEFOR19HQ0pfQ09ORklHXSwgW19MVF9BQ19MQU5HX0dDSl9DT05GSUcoR0NKKV0pCi0rQUNf REVGVU4oW19MVF9BQ19MQU5HX0dDSl9DT05GSUddLAotK1tBQ19MQU5HX1NBVkUKLSsKLSsjIFNv dXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWphdmEK LSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJj ZXMuCi0rb2JqZXh0PW8KLStfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsj IENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xhc3Mg Y29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9OyB9 JwotKwotKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBz byBtYWtlIHN1cmUgJENDIGlzIHNldC4KLStfTFRfQUNfU1lTX0NPTVBJTEVSCi0rCi0rIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLStfTFRfQ09NUElMRVJf Qk9JTEVSUExBVEUKLStfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rIyBBbGxvdyBDQyB0byBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStsdF9zYXZlX0NDPSIkQ0MiCi0rQ0M9 JHtHQ0otImdjaiJ9Ci0rY29tcGlsZXI9JENDCi0rX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEp PSRDQwotK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKLSsKLSsjIEdDSiBkaWQgbm90IGV4 aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCi0rX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCi0rX0xUX0FDX1RBR1ZB UihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKLSsKLStBQ19MSUJUT09M X1BST0dfQ09NUElMRVJfTk9fUlRUSSgkMSkKLStBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElD KCQxKQotK0FDX0xJQlRPT0xfUFJPR19DQ19DX08oJDEpCi0rQUNfTElCVE9PTF9TWVNfSEFSRF9M SU5LX0xPQ0tTKCQxKQotK0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMoJDEpCi0rQUNfTElCVE9P TF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJ QlBBVEgoJDEpCi0rCi0rQUNfTElCVE9PTF9DT05GSUcoJDEpCi0rCi0rQUNfTEFOR19SRVNUT1JF Ci0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJRwotKwot KwotKyMgQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJRwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIFdpbmRv d3MgcmVzb3VyY2UgY29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFy aWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQotKyMgQUNfTElCVE9PTF9DT05GSUcgdG8g d3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK0FDX0RFRlVO KFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSwgW19MVF9BQ19MQU5HX1JDX0NPTkZJRyhSQyld KQotK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05GSUddLAotK1tBQ19MQU5HX1NBVkUKLSsK LSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgUkMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1y YwotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBSQyB0ZXN0IHNvdXJj ZXMuCi0rb2JqZXh0PW8KLStfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsj IENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNL RUQgfScKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3Np bXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIKLSsKLSsj IGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBz dXJlICRDQyBpcyBzZXQuCi0rX0xUX0FDX1NZU19DT01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5n cy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBM QVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rbHRfc2F2ZV9DQz0iJENDIgotK0NDPSR7UkMtIndp bmRyZXMifQotK2NvbXBpbGVyPSRDQwotK19MVF9BQ19UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MK LStfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9n X2NvbXBpbGVyX2NfbywgJDEpPXllcwotKwotK0FDX0xJQlRPT0xfQ09ORklHKCQxKQotKwotK0FD X0xBTkdfUkVTVE9SRQotK0NDPSIkbHRfc2F2ZV9DQyIKLStdKSMgQUNfTElCVE9PTF9MQU5HX1JD X0NPTkZJRwotKwotKwotKyMgQUNfTElCVE9PTF9DT05GSUcoW1RBR05BTUVdKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSWYgVEFHTkFNRSBpcyBub3QgcGFzc2VkLCB0aGVu IGNyZWF0ZSBhbiBpbml0aWFsIGxpYnRvb2wgc2NyaXB0Ci0rIyB3aXRoIGEgZGVmYXVsdCBjb25m aWd1cmF0aW9uIGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlCi0rIyBh ZGQgY29kZSB0byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24g bmFtZWQgYnkKLSsjIFRBR05BTUUgZnJvbSB0aGUgbWF0Y2hpbmcgdGFnZ2VkIGNvbmZpZyB2YXJz LgotK0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10sCi0rWyMgVGhlIGVsc2UgY2xhdXNlIHNo b3VsZCBvbmx5IGZpcmUgd2hlbiBib290c3RyYXBwaW5nIHRoZQotKyMgbGlidG9vbCBkaXN0cmli dXRpb24sIG90aGVyd2lzZSB5b3UgZm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCi0rIyB3aXRoIHlv dXIgcGFja2FnZSwgYW5kIHlvdSB3aWxsIGdldCBjb21wbGFpbnRzIHRoYXQgdGhlcmUgYXJlCi0r IyBubyBydWxlcyB0byBnZW5lcmF0ZSBsdG1haW4uc2guCi0raWYgdGVzdCAtZiAiJGx0bWFpbiI7 IHRoZW4KLSsgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0 aW9ucyB3aGljaCBhbGxvdyBvdXIgY29tbWFuZHMgdGhyb3VnaAotKyAgIyB3aXRob3V0IHJlbW92 YWwgb2YgXCBlc2NhcGVzLgotKyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRo ZW4KLSsgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsgIGZpCi0rICAjIE5vdyBxdW90ZSBhbGwg dGhlIHRoaW5ncyB0aGF0IG1heSBjb250YWluIG1ldGFjaGFyYWN0ZXJzIHdoaWxlIGJlaW5nCi0r ICAjIGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VCU1RlZCB2YWx1ZXMuICBXZSB0 YWtlIGNvcGllcyBvZiB0aGUKLSsgICMgdmFyaWFibGVzIGFuZCBxdW90ZSB0aGUgY29waWVzIGZv ciBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdC4KLSsgIGZvciB2YXIgaW4gZWNobyBv bGRfQ0Mgb2xkX0NGTEFHUyBBUiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIgTE5fUyBMVENDIExUQ0ZM QUdTIE5NIFwKLSsgICAgU0VEIFNIRUxMIFNUUklQIFwKLSsgICAgbGlibmFtZV9zcGVjIGxpYnJh cnlfbmFtZXNfc3BlYyBzb25hbWVfc3BlYyBleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0rICAgIG9s ZF9zdHJpcGxpYiBzdHJpcGxpYiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hfY21kcyBmaW5pc2hfZXZh bCBcCi0rICAgIGRlcGxpYnNfY2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFnIHJlbG9hZF9jbWRzIG5l ZWRfbG9ja3MgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y19uYW1lX2FkZHJlc3MgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWMgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRfcG9zdHVu aW5zdGFsbF9jbWRzIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEpIFwKLSsgICAg X0xUX0FDX1RBR1ZBUihDQywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihMRCwgJDEpIFwKLSsg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgXAotKyAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUih0aHJlYWRfc2Fm ZV9mbGFnX3NwZWMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAk MSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKSBc Ci0rICAgIF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSBcCi0rICAgIF9MVF9BQ19U QUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKHByZWRlcHMs ICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIocG9zdGRlcHMsICQxKSBcCi0rICAgIF9MVF9BQ19U QUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFS KGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihwb3N0aW5zdGFsbF9jbWRzLCAkMSkgXAotKyAgICBf TFRfQUNfVEFHVkFSKHBvc3R1bmluc3RhbGxfY21kcywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZB UihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihub191bmRl ZmluZWRfZmxhZywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRz LCAkMSkgXAotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KSBcCi0rICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEp IFwKLSsgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSkgXAot KyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIFwKLSsgICAgX0xUX0FD X1RBR1ZBUihtb2R1bGVfY21kcywgJDEpIFwKLSsgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhw c3ltX2NtZHMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9j X28sICQxKSBcCi0rICAgIF9MVF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpIFwKLSsg ICAgX0xUX0FDX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKSBcCi0rICAgIF9MVF9BQ19UQUdW QVIoaW5jbHVkZV9leHBzeW1zLCAkMSk7IGRvCi0rCi0rICAgIGNhc2UgJHZhciBpbgotKyAgICBf TFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKSB8IFwKLSsgICAgX0xUX0FDX1RBR1ZB UihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSkgfCBcCi0rICAgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSkgfCBcCi0rICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpIHwgXAotKyAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSkgfCBcCi0r ICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSkgfCBcCi0rICAgIF9MVF9B Q19UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKSB8IFwKLSsgICAgX0xU X0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSkgfCBcCi0rICAgIGV4dHJhY3RfZXhw c3ltc19jbWRzIHwgcmVsb2FkX2NtZHMgfCBmaW5pc2hfY21kcyB8IFwKLSsgICAgcG9zdGluc3Rh bGxfY21kcyB8IHBvc3R1bmluc3RhbGxfY21kcyB8IFwKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2Nt ZHMgfCBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMgfCBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYykKLSsgICAgICAjIERvdWJsZS1xdW90 ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVj aG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1lIFwi XCRzZWRfcXVvdGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxgXFxcIiIK LSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwi WFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICBjYXNlICRsdF9lY2hvIGluCi0rICAqJ1xb JF0wIC0tZmFsbGJhY2stZWNobyInKQotKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8 ICRYc2VkIC1lICdzL1xcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJbJF0vWyRdMCAtLWZhbGxi YWNrLWVjaG8iLydgCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0raWZlbHNlKFskMV0sIFtdLAotKyAg W2NmZ2ZpbGU9IiR7b2ZpbGV9VCIKLSsgIHRyYXAgIiRybSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIg MSAyIDE1Ci0rICAkcm0gLWYgIiRjZmdmaWxlIgotKyAgQUNfTVNHX05PVElDRShbY3JlYXRpbmcg JG9maWxlXSldLAotKyAgW2NmZ2ZpbGU9IiRvZmlsZSJdKQotKwotKyAgY2F0IDw8X19FT0ZfXyA+ PiAiJGNmZ2ZpbGUiCi0raWZlbHNlKFskMV0sIFtdLAotK1sjISAkU0hFTEwKLSsKLSsjIGAkZWNo byAiJGNmZ2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJy YXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCi0rIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxs eSBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCkKLSsjIE5PVEU6 IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5z aC4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKLSsjIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBM aWJ0b29sOgotKyMgT3JpZ2luYWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWku bWl0LmVkdT4sIDE5OTYKLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEsIFVTQS4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0 IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdl bmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2Ft ZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHBy b2dyYW0uCi0rCi0rIyBBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0 LgotK1NFRD0kbHRfU0VECi0rCi0rIyBTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFs bHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbi4KLStYc2VkPSIkU0VEIC1lIDFz L15YLy8iCi0rCi0rIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFy Z2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKLSsjIGlmIENEUEFUSCBpcyBzZXQuCi0rKHVuc2V0IENE UEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAotKwotKyMgVGhlIG5hbWVzIG9m IHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgotK2F2 YWlsYWJsZV90YWdzPQotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHXSwKLStbIyAjIyMg QkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZV0pCi0rCi0rIyBMaWJ0b29sIHdhcyBj b25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBz ZWQgMXFgOgotKwotKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4K LStTSEVMTD0kbHRfU0hFTEwKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBs aWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCi0rCi0rIyBXaGV0 aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgotK2J1aWxkX29sZF9saWJzPSRl bmFibGVfc3RhdGljCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGlu ZyBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNh bGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljCi0rYWxsb3dfbGli dG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFy ZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKQotKwotKyMgV2hldGhlciBvciBub3QgdG8gb3B0 aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgotK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3Rf aW5zdGFsbAotKwotKyMgVGhlIGhvc3Qgc3lzdGVtLgotK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMK LStob3N0PSRob3N0Ci0raG9zdF9vcz0kaG9zdF9vcwotKwotKyMgVGhlIGJ1aWxkIHN5c3RlbS4K LStidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLStidWlsZD0kYnVpbGQKLStidWlsZF9vcz0kYnVp bGRfb3MKLSsKLSsjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNr c2xhc2hlcy4KLStlY2hvPSRsdF9lY2hvCi0rCi0rIyBUaGUgYXJjaGl2ZXIuCi0rQVI9JGx0X0FS Ci0rQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCi0rCi0rIyBBIEMgY29tcGlsZXIuCi0rTFRDQz0kbHRf TFRDQwotKwotKyMgTFRDQyBjb21waWxlciBmbGFncy4KLStMVENGTEFHUz0kbHRfTFRDRkxBR1MK LSsKLSsjIEEgbGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCi0rQ0M9JGx0X1tdX0xUX0FDX1RB R1ZBUihjb21waWxlciwgJDEpCi0rCi0rIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBDIGNvbXBp bGVyPwotK3dpdGhfZ2NjPSRfTFRfQUNfVEFHVkFSKEdDQywgJDEpCi0rCi0rIyBBbiBFUkUgbWF0 Y2hlci4KLStFR1JFUD0kbHRfRUdSRVAKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBs aWJyYXJpZXMuCi0rTEQ9JGx0X1tdX0xUX0FDX1RBR1ZBUihMRCwgJDEpCi0rCi0rIyBXaGV0aGVy IHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsjIEEgQlNE LWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KLStOTT0kbHRfTk0KLSsKLSsjIEEgc3ltYm9sIHN0cmlw cGluZyBwcm9ncmFtCi0rU1RSSVA9JGx0X1NUUklQCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUgbGli cmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgotK01BR0lDX0NNRD0kTUFH SUNfQ01ECi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCi0rRExM VE9PTD0iJERMTFRPT0wiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KLStP QkpEVU1QPSIkT0JKRFVNUCIKLSsKLSsjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCi0rQVM9 IiRBUyIKLSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1w b3JhcnkgbGlidG9vbCBmaWxlcy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgSG93IHRvIGNyZWF0 ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcK LStyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlua2Vy IGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCi0rd2w9JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSkKLSsKLSsjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkg Im8iKS4KLStvYmpleHQ9IiRhY19vYmpleHQiCi0rCi0rIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5v cm1hbGx5ICJhIikuCi0rbGliZXh0PSIkbGliZXh0IgotKwotKyMgU2hhcmVkIGxpYnJhcnkgc3Vm Zml4IChub3JtYWxseSAiLnNvIikuCi0rc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKLSsKLSsj IEV4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9IiRleGVleHQi Ci0rCi0rIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9i amVjdHMuCi0rcGljX2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpCi0rcGljX21vZGU9JHBpY19tb2RlCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxl bmd0aCBvZiBhIGNvbW1hbmQ/Ci0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgot KwotKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRp b25zPwotK2NvbXBpbGVyX2Nfbz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGls ZXJfY19vLCAkMSkKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0 aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIERvIHdlIG5lZWQgdGhlIGxp YiBwcmVmaXggZm9yIG1vZHVsZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgK LSsKLSsjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0rbmVlZF92ZXJzaW9u PSRuZWVkX3ZlcnNpb24KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KLStkbG9w ZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3Jh bXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKLSsKLSsj IFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRl ZC4KLStkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKLSsKLSsj IENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlua19zdGF0aWNf ZmxhZz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSkKLSsK LSsjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCi0rbm9fYnVp bHRpbl9mbGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGlu X2ZsYWcsICQxKQotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVu cy4KLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKQotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBz aGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxh Z19zcGVjPSRsdF9bXV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKQot KwotKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgotK3Ro cmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRfW11fTFRfQUNfVEFHVkFSKHRocmVhZF9zYWZlX2ZsYWdf c3BlYywgJDEpCi0rCi0rIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KLSt2ZXJzaW9uX3R5cGU9 JHZlcnNpb25fdHlwZQotKwotKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCi0rbGli bmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKLSsKLSsjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4g IEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCi0rIyBUaGUg bGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FLgot K2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCi0rCi0rIyBUaGUgY29k ZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4K LStzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCi0rUkFOTElCPSRsdF9SQU5MSUIK LStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywg JDEpCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xk X3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQ3Jl YXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJj aGl2ZV9mcm9tX25ld19jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kcywgJDEpCi0rCi0rIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUg dG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHM9JGx0X1tdX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNf Y21kcywgJDEpCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hh cmVkIGFyY2hpdmUuCi0rYXJjaGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSkKLSthcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpCi0rcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21k cwotK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCi0rCi0rIyBDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNhbWUgYXMgYWJv dmUgaWYgZW1wdHkpCi0rbW9kdWxlX2NtZHM9JGx0X1tdX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21k cywgJDEpCi0rbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIobW9kdWxlX2V4 cHN5bV9jbWRzLCAkMSkKLSsKLSsjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KLStvbGRf c3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgotK3N0cmlwbGliPSRsdF9zdHJpcGxpYgotKwotKyMg RGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8g Y3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9bXV9MVF9B Q19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKQotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNl IGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVkIGxp YnJhcnkuCi0rcG9zdGRlcF9vYmplY3RzPSRsdF9bXV9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmpl Y3RzLCAkMSkKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMg YmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBzPSRs dF9bXV9MVF9BQ19UQUdWQVIocHJlZGVwcywgJDEpCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxh Y2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQg bGlicmFyeS4KLStwb3N0ZGVwcz0kbHRfW11fTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSkKLSsK LSsjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRp bmcgYSBzaGFyZWQKLSsjIGxpYnJhcnkKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X1td X0xUX0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKQotKwotKyMgVGhlIGxp YnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxp bmtpbmcKLSsjIGEgc2hhcmVkIGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRs dF9bXV9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkKLSsKLSsjIE1l dGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmpl Y3RzLgotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwot KyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2lj LgotK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAotKwotKyMgRmxhZyB0aGF0IGFs bG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQu Ci0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmlu ZWRfZmxhZywgJDEpCi0rCi0rIyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xz LgotK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2Zs YWcsICQxKQotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkg aW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgotK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21k cwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBi ZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KLStmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKLSsK LSsjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5 bWJvbHMgYW5kIEMgbmFtZXMuCi0rZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHBy b3BlciBDIGRlY2xhcmF0aW9uCi0rZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5t IGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcgotK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCi0rCi0rIyBU aGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0 aF92YXI9JHJ1bnBhdGhfdmFyCi0rCi0rIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRo IHZhcmlhYmxlLgotK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIKLSsKLSsjIElzIHNobGli cGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8K LStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aAotKwotKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4 ZWN1dGFibGUuCi0raGFyZGNvZGVfYWN0aW9uPSRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlv biwgJDEpCi0rCi0rIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGlu dG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCi0r Ci0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtp bmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0Lgot K2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSkKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBm bGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5n LiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4KLSto YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9bXV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUg LXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yPSRsdF9bXV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwg JDEpCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5 LgotK2hhcmRjb2RlX2RpcmVjdD0kX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKQot KwotKyMgU2V0IHRvIHllcyBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBo YXJkY29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX21p bnVzX0w9JF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpCi0rCi0rIyBTZXQgdG8g eWVzIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBE SVIgaW50bwotKyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj0kX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkKLSsKLSsjIFNldCB0 byB5ZXMgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2Rl cyBESVIgaW50byB0aGUgbGlicmFyeQotKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBh bmQgZXhlY3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpCi0rCi0rIyBWYXJpYWJsZXMgd2hv c2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQK LSsjIHJlc3RvcmVkIGF0IHJlbGluayB0aW1lLgotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5r PSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiCi0rCi0rIyBXaGV0aGVyIGxpYnRvb2wgbXVz dCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCi0r bGlua19hbGxfZGVwbGlicz0kX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSkKLSsK LSsjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcwotK3N5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBS dW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcwotK3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYwotKwotKyMgRml4IHRo ZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KLStmaXhfc3JjZmls ZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCi0rCi0rIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVk IHN5bWJvbHMgYXJlIHJlcXVpcmVkLgotK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kX0xUX0FDX1RB R1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKQotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGxp c3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9bXV9MVF9BQ19U QUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0 cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4 dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9s cyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStl eGNsdWRlX2V4cHN5bXM9JGx0X1tdX0xUX0FDX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKQot KwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhw c3ltcz0kbHRfW11fTFRfQUNfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpCi0rCi0raWZlbHNl KFskMV0sW10sCi0rWyMgIyMjIEVORCBMSUJUT09MIENPTkZJR10sCi0rWyMgIyMjIEVORCBMSUJU T09MIFRBRyBDT05GSUc6ICR0YWduYW1lXSkKLSsKLStfX0VPRl9fCi0rCi0raWZlbHNlKFskMV0s W10sIFsKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeDMqKQotKyAgICBjYXQgPDxcRU9GID4+ ICIkY2ZnZmlsZSIKLSsKLSsjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdD QyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKLSsjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBD T0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsjIHZhbmlz aCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0raWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAh PSBYc2V0OyB0aGVuCi0rICBDT0xMRUNUX05BTUVTPQotKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMK LStmaQotK0VPRgotKyAgICA7OwotKyAgZXNhYwotKwotKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQg b2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCi0rICAjIGlmIGZp bmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGlu Ci0rICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBU aGlzIGJhc2ggcHJvYmxlbQotKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBy dW4gb24gb2xkIHZlcnNpb25zIHRvbz8KLSsgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2Zp bGUiIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCi0rCi0rICBtdiAtZiAiJGNmZ2ZpbGUi ICIkb2ZpbGUiIHx8IFwKLSsgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRv ZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKLSsgIGNobW9kICt4ICIkb2ZpbGUiCi0rXSkKLStl bHNlCi0rICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2Ug cnVsZSB0byBleGVjdXRlCi0rICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8gcmVydW4g dGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKLSsgICMgbGlidG9vbCBzY3JpcHQgdGhlbi4KLSsg IGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAotKyAgaWYg dGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KLSsgICAgdGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtl ICIkbHRtYWluIgotKyAgZmkKLStmaQotK10pIyBBQ19MSUJUT09MX0NPTkZJRwotKwotKwotKyMg QUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19MSUJUT09M X1BST0dfQ09NUElMRVJfTk9fUlRUSV0sCi0rW0FDX1JFUVVJUkUoW19MVF9BQ19TWVNfQ09NUElM RVJdKWRubAotKwotK19MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2Zs YWcsICQxKT0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJwot KwotKyAgQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBwb3J0cyAt Zm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRp X2V4Y2VwdGlvbnMsCi0rICAgIFstZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwgW10sCi0rICAg IFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9IiRf TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1y dHRpIC1mbm8tZXhjZXB0aW9ucyJdKQotK2ZpCi0rXSkjIEFDX0xJQlRPT0xfUFJPR19DT01QSUxF Ul9OT19SVFRJCi0rCi0rCi0rIyBBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEUKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBQ19MSUJUT09M X1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdLAotK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9T VF0pCi0rQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKQotK0FDX1JFUVVJUkUoW0FDX1BST0df Tk1dKQotK0FDX1JFUVVJUkUoW0FDX09CSkVYVF0pCi0rIyBDaGVjayBmb3IgY29tbWFuZCB0byBn cmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KLStB Q19NU0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxl ciBvYmplY3RdKQotK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0s Ci0rWwotKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEg ZmV3IG9sZCBzeXN0ZW1zLgotKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQg YmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCi0rCi0rIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3Jp YmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgotK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKLSsK LSsjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5 IGZyb20gQy4KLStzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpcKScKLSsKLSsj IFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xh cmF0aW9uCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9e LiAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDE7L3AnIgotKwotKyMgVHJhbnNmb3JtIGFuIGV4dHJh Y3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcwotK2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjog XChbW14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1j b2RlIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9w JyIKLSsKLSsjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgotK2Nhc2UgJGhvc3Rf b3MgaW4KLSthaXgqKQotKyAgc3ltY29kZT0nW1tCQ0RUXV0nCi0rICA7OwotK2N5Z3dpbiogfCBt aW5ndyogfCBwdzMyKikKLSsgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCi0rICA7OwotK2hwdXgq KSAjIEl0cyBsaW5rZXIgZGlzdGluZ3Vpc2hlcyBkYXRhIGZyb20gY29kZSBzeW1ib2xzCi0rICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JT VF1dJwotKyAgZmkKLSsgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4g LWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSog LiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxc IlwxXFxcIiwgKGx0X3B0cikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChb W14gXV0qXCkkLyAge1wiXDJcIiwgKGx0X3B0cikgXCZcMn0sL3AnIgotKyAgOzsKLStsaW51eCog fCBrKmJzZCotZ251KQotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAg c3ltY29kZT0nW1tBQkNER0lSU1RXXV0nCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1l ICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCi0rICAgIGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChb W14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2Rl KiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwiLCAobHRfcHRyKSBcJlwyfSwvcCci Ci0rICBmaQotKyAgOzsKLStpcml4KiB8IG5vbnN0b3B1eCopCi0rICBzeW1jb2RlPSdbW0JDREVH UlNUXV0nCi0rICA7OwotK29zZiopCi0rICBzeW1jb2RlPSdbW0JDREVHUVJTVF1dJwotKyAgOzsK LStzb2xhcmlzKikKLSsgIHN5bWNvZGU9J1tbQkRSVF1dJwotKyAgOzsKLStzY28zLjJ2NSopCi0r ICBzeW1jb2RlPSdbW0RUXV0nCi0rICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW1tE VF1dJwotKyAgOzsKLStzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQot KyAgc3ltY29kZT0nW1tBQkRUXV0nCi0rICA7OwotK3N5c3Y0KQotKyAgc3ltY29kZT0nW1tERk5T VFVdXScKLSsgIDs7Ci0rZXNhYwotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFp bgotK29wdF9jcj0KLStjYXNlICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1gZWNo byAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsK LStlc2FjCi0rCi0rIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFy ZCBzeW1ib2wgY29kZXMuCi0rY2FzZSBgJE5NIC1WIDI+JjFgIGluCi0rKkdOVSogfCAqJ3dpdGgg QkZEJyopCi0rICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScgOzsKLStlc2FjCi0rCi0rIyBUcnkg d2l0aG91dCBhIHByZWZpeCB1bmRlcmNvcmUsIHRoZW4gd2l0aCBpdC4KLStmb3IgYWNfc3ltcHJm eCBpbiAiIiAiXyI7IGRvCi0rCi0rICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBz eW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgotKyAgc3lteGZybT0iXFwx ICRhY19zeW1wcmZ4XFwyIFxcMiIKLSsKLSsgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVudGlm aWVycy4KLSsgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipb WyAJXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWyAJXV1bWyAJXV0qJGFjX3N5bXByZngkc3ltcGF0 JG9wdF9jciQvJHN5bXhmcm0vcCciCi0rCi0rICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBl IHdvcmtzIGNvcnJlY3RseS4KLSsgIHBpcGVfd29ya3M9bm8KLSsKLSsgIHJtIC1mIGNvbmZ0ZXN0 KgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNpZmRlZiBfX2NwbHVzcGx1cwot K2V4dGVybiAiQyIgewotKyNlbmRpZgotK2NoYXIgbm1fdGVzdF92YXI7Ci0rdm9pZCBubV90ZXN0 X2Z1bmMoKXt9Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK2ludCBtYWluKCl7 bm1fdGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9Ci0rRU9GCi0rCi0rICBp ZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0 aGUgc3ltYm9scy4KLSsgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAgaWYgQUNfVFJZX0VWQUwo Tk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBc PiAkbmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5n IGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1 bmlxID4gIiRubGlzdCJUOyB0aGVuCi0rCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAg IGVsc2UKLSsJcm0gLWYgIiRubGlzdCJUCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3Vy ZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCi0rICAgICAgaWYgZ3Jl cCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwlpZiBncmVwICcg bm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwkgIGNhdCA8PEVPRiA+ IGNvbmZ0ZXN0LiRhY19leHQKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsj ZW5kaWYKLSsKLStFT0YKLSsJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCi0rCSAg ZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8IGdy ZXAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JwotKwotKwkgIGNhdCA8PEVPRiA+PiBjb25m dGVzdC4kYWNfZXh0Ci0rI2lmIGRlZmluZWQgKF9fU1REQ19fKSAmJiBfX1NURENfXwotKyMgZGVm aW5lIGx0X3B0cl90IHZvaWQgKgotKyNlbHNlCi0rIyBkZWZpbmUgbHRfcHRyX3QgY2hhciAqCi0r IyBkZWZpbmUgY29uc3QKLSsjZW5kaWYKLSsKLSsvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJv bCBuYW1lcyBhbmQgc3ltYm9scy4gKi8KLStjb25zdCBzdHJ1Y3QgewotKyAgY29uc3QgY2hhciAq bmFtZTsKLSsgIGx0X3B0cl90IGFkZHJlc3M7Ci0rfQotK2x0X3ByZWxvYWRlZF9zeW1ib2xzW1td XSA9Ci0rewotK0VPRgotKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4q XCkkLyAge1wiXDJcIiwgKGx0X3B0cl90KSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgZ3JlcCAtdiBt YWluID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsJICBjYXQgPDxcRU9GID4+IGNvbmZ0ZXN0LiRhY19l eHQKLSsgIHswLCAobHRfcHRyX3QpIDB9Ci0rfTsKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9 Ci0rI2VuZGlmCi0rRU9GCi0rCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KLSsJ ICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKLSsJICBsdF9zYXZl X0xJQlM9IiRMSUJTIgotKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwkgIExJQlM9ImNv bmZ0c3RtLiRhY19vYmpleHQiCi0rCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9BQ19UQUdWQVIobHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIKLSsJICBpZiBBQ19UUllfRVZBTChh Y19saW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCi0rCSAgICBwaXBl X3dvcmtzPXllcwotKwkgIGZpCi0rCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKLSsJICBDRkxBR1M9 IiRsdF9zYXZlX0NGTEFHUyIKLSsJZWxzZQotKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3Rf ZnVuYyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsJZmkKLSsgICAgICBlbHNlCi0r CWVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xP R19GRAotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgIGZpCi0r ICBlbHNlCi0rICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZBU19N RVNTQUdFX0xPR19GRAotKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIGZpCi0rICBy bSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCi0rCi0rICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9z eW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCi0rICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5 ZXM7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfcGlwZT0KLSsgIGZpCi0rZG9uZQotK10pCi0raWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVj bD0KLStmaQotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVChmYWls ZWQpCi0rZWxzZQotKyAgQUNfTVNHX1JFU1VMVChvaykKLStmaQotK10pICMgQUNfTElCVE9PTF9T WVNfR0xPQkFMX1NZTUJPTF9QSVBFCi0rCi0rCi0rIyBBQ19MSUJUT09MX1BST0dfQ09NUElMRVJf UElDKFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSwKLStbX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Ci0rX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPQotK19MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0KLSsKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1 Y2UgUElDXSkKLSsgaWZlbHNlKFskMV0sW0NYWF0sWwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMg Zm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4K LSsgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAg IF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsK LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2Rl IGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJ WCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsg ICAgYW1pZ2FvcyopCi0rICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2Rl IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02 ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAg ICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0r ICAgICAgOzsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3Nm MyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVz ZSBPU2VzLgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiop Ci0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwg d2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRs bCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRo b3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9s ZC1zdHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAg ICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKyAgICBkYXJ3aW4qIHwg cmhhcHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0K LSsgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1v bicKLSsgICAgICA7OwotKyAgICAqZGpncHAqKQotKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3Vw cG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0KLSsgICAgICA7OwotKyAgICBpbnRlcml4W1szLTldXSopCi0r ICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9r ZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMg YXQgcnVudGltZS4KLSsgICAgICA7OwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAt ZCAvdXNyL25lYzsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9LUtjb25mb3JtX3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgaHB1eCopCi0rICAg ICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwg YnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0r ICAgICAgOzsKLSsgICAgKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeFtbNC05XV0qKQotKwkjIEFsbCBBSVggY29kZSBpcyBQ SUMuCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgIyBBSVggNSBub3cg c3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKwllbHNlCi0rCSAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0r CWZpCi0rCTs7Ci0rICAgICAgY2hvcnVzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJY3hj aDY4KikKLSsJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICMgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAt dSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5h ICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEi Ci0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgICBkYXJ3aW4qKQotKyAgICAgICAgICMgUElD IGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAgICAjIENvbW1vbiBzeW1i b2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICAgICAgIHhsYyopCi0rICAgICAgICAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xbm9jb21tb24nCi0rICAgICAgICAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAgICAgIDs7Ci0r ICAgICAgICAgZXNhYwotKyAgICAgICA7OwotKyAgICAgIGRndXgqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIGVjKysqKQotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctS1BJQycKLSsJICAgIDs7Ci0rCSAgZ2hjeCopCi0rCSAgICAjIEdyZWVuIEhp bGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctcGljJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7Owot KyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsJIyBGcmVlQlNEIHVzZXMgR05VIEMrKwot Kwk7OwotKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKLSsJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIg IT0gaWE2NDsgdGhlbgotKwkgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9JytaJwotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgYUNDKikKLSsJICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKLSsJ ICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICBocHBhKjY0KnxpYTY0KikKLSsJICAgICAgIyAr WiB0aGUgZGVmYXVsdAotKwkgICAgICA7OwotKwkgICAgKikKLSsJICAgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKLSsJICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBpbnRlcml4 KikKLSsJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxp YnMpCi0rCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KLSsJOzsKLSsgICAgICBpcml4NSog fCBpcml4NiogfCBub25zdG9wdXgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikK LSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJl ZCcKLSsJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCi0rCSAgICA7Owot KwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbGludXgqIHwgaypic2QqLWdu dSkKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgIyBLQUkgQysrIENv bXBpbGVyCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1i YWNrZW5kIC1XbCwnCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1mUElDJwotKwkgICAgOzsKLSsJICBpY3BjKiB8IGVjcGMqKQotKwkgICAgIyBJbnRlbCBD KysKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwot KwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJ ICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycK LSsJICAgIDs7Ci0rCSAgcGdDQyogfCBwZ2NwcCopCi0rCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMr KyBjb21waWxlci4KLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp PSctV2wsJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct ZnBpYycKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAg ICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwg QWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJ Qy4KLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KLSsJICAg IF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQn Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4K LSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICAgIF9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rCSAg ICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbHlueG9z KikKLSsJOzsKLSsgICAgICBtODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNlICRjY19i YXNlbmFtZSBpbgotKwkgIGN4eCopCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1XIGMsZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsK LSsJZXNhYwotKwk7OwotKyAgICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgb3NmMyogfCBvc2Y0 KiB8IG9zZjUqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCi0rCSAg ICA7OwotKwkgIFJDQyopCi0rCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQotKwkgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgOzsKLSsJICBj eHgqKQotKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBm bGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBh bmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsJICAgIDs7Ci0rCSAgKikKLSsJ ICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBwc29zKikKLSsJOzsKLSsgICAgICBzb2xhcmlz KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICAjIFN1biBDKysgNC4y LCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCopCi0rCSAg ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctUElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJ ZXNhYwotKwk7OwotKyAgICAgIHN1bm9zNCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAg Q0MqKQotKwkgICAgIyBTdW4gQysrIDQueAotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJICAgICMg THVjaWQKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBp YycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICB0YW5k ZW0qKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIE5DQyopCi0rCSAgICAjIE5vblN0b3At VVggTkNDIDMuMjAKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAg ICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJZXNhYwotKwk7Owot KyAgICAgIHZ4d29ya3MqKQotKwk7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAg ZmkKLStdLAotK1sKLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBw b3J0cyBJQTY0IHByb2Nlc3NvcgotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2Fv cyopCi0rICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxk IHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxh ZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICMgbGlr ZSBgLW02ODA0MCcuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAgICAgOzsK LSsKLSsgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2Vz LgotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCi0r ICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hl dGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAo YW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3Vn aCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1z dHlsZQotKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAg bTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwg cmhhcHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0K LSsgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1v bicKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgIyBJbnRlcml4 IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAg ICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsg ICAgICA7OwotKwotKyAgICBtc2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1 c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAg ICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCi0rICAgICAg ZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBp ZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBo cHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQt Yml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAot Kwk7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLWZQSUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRv IHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCV9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgZWxz ZQotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1i STovbGliL3N5c2NhbGxzLmV4cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgICAgZGFyd2lu KikKLSsgICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAg ICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICB4bGMqKQotKyAgICAgICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFub2NvbW1vbicKLSsgICAgICAg ICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAg ICA7OwotKyAgICAgICBlc2FjCi0rICAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiog fCBwdzMyKiB8IG9zMiopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNl IGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGlu Y2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSku Ci0rICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKwotKyAgICBo cHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3Ig SUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAt VVguCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJ IyArWiB0aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nK1onCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICMgSXMg dGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRo ZSBidW5kbGVkIENDPwotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUq IHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRl ZmF1bHQuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAgICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rICAgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICA7 OwotKwotKyAgICBsaW51eCogfCBrKmJzZCotZ251KQotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCi0rICAgICAgaWNjKiB8IGVjYyopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxl cl93bCwgJDEpPSctV2wsJwotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1LUElDJwotKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwg cGdmOTUqKQotKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQ ZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVj dCkKLSsJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCi0rCV9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgICA7 OwotKyAgICAgIGNjYyopCi0rICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJl ZCcKLSsgICAgICAgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIGNhc2UgYCRDQyAtViAyPiYxIHwg c2VkIDVxYCBpbgotKwkqU3VuXCBDKikKLSsJICAjIFN1biBDIDUuOQotKwkgIF9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICBfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICA7OwotKwkqU3VuXCBGKikKLSsJ ICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUg bGlua2VyCi0rCSAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJ QycKLSsJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJwotKwkgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCi0rCSAg OzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1XbCwnCi0rICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCi0rICAgICAgX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsg ICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFy aXMqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQ SUMnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct QnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAq IHwgZjk1KikKLSsJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0 aW9uIGxkICc7OwotKyAgICAgICopCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJzs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCop Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9u IGxkICcKLSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1Q SUMnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct QnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQu MyopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwn Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycK LSsgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91 c3IvbmVjIDt0aGVuCi0rCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LUtjb25mb3JtX3BpYycKLSsJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHVu aXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0rICAgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0r Ci0rICAgIHVuaWNvcyopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1XbCwnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9i dWlsZF9zaGFyZWQsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIF9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKLSsgICAgICBfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAg IDs7Ci0rCi0rICAgICopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nh bl9idWlsZF9zaGFyZWQsICQxKT1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSkK LStBQ19NU0dfUkVTVUxUKFskX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp XSkKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdv cmtzLgotKyMKLStpZiB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpIjsgdGhlbgotKyAgQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxl ciBQSUMgZmxhZyAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtz XSwKLSsgICAgX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcywgJDEp LAotKyAgICBbJF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKWlmZWxzZShb JDFdLFtdLFsgLURQSUNdLFtpZmVsc2UoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKV0sIFtdLAot KyAgICBbY2FzZSAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIGluCi0r ICAgICAiIiB8ICIgIiopIDs7Ci0rICAgICAqKSBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9IiAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIiA7 OwotKyAgICAgZXNhY10sCi0rICAgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Ci0rICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3No YXJlZCwgJDEpPW5vXSkKLStmaQotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgICMgRm9yIHBsYXRmb3Jt cyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgotKyAgKmRq Z3BwKikKLSsgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKyAg ICA7OwotKyAgKikKLSsgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpaWZlbHNlKFskMV0sW10s WyAtRFBJQ10sW2lmZWxzZShbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgotKyAgICA7OwotK2Vz YWMKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5 IHdvcmtzLgotKyMKLSt3bD0kX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkg ZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpXCIKLStBQ19MSUJUT09MX0xJTktFUl9PUFRJT04oW2lmICRjb21waWxlciBz dGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzXSwKLSsgIF9MVF9BQ19UQUdWQVIo bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MsICQxKSwKLSsgICRsdF90bXBfc3RhdGlj X2ZsYWcsCi0rICBbXSwKLSsgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9XSkKLStdKQotKwotKwotKyMgQUNfTElCVE9PTF9QUk9HX0xEX1NITElCUyhbVEFHTkFN RV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFNlZSBpZiB0 aGUgbGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rQUNfREVGVU4o W0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAotK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NF RF0pZG5sCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgk TEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQotK2lmZWxzZShbJDFdLFtDWFhdLFsKLSsg IF9MVF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNv bnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwg c29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICBjYXNlICRob3N0X29zIGluCi0rICBh aXhbWzQtOV1dKikKLSsgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qg d2FudCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5t LCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsgICAgaWYgJE5NIC1WIDI+ JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihl eHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 IGF3ayAnXCcneyBpZiAoKChcWyRdMiA9PSAiVCIpIHx8IChcWyRdMiA9PSAiRCIpIHx8IChcWyRd MiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXFskXTMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFxbJF0z IH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0rICAgICAg X0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2Jq cyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0gIlQiKSB8fCAoXFskXTIg PT0gIkQiKSB8fCAoXFskXTIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxbJF0zLDEsMSkgIT0gIi4i KSkgeyBwcmludCBcWyRdMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsg ICAgZmkKLSsgICAgOzsKLSsgIHB3MzIqKQotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1i b2xzX2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCi0rICA7OwotKyAgY3lnd2luKiB8IG1pbmd3KikK LSsgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2Jq cyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JD REdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87L14uKltbIF1dX19ubV9f L3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBd XS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv cnRfc3ltYm9scycKLSsgIDs7Ci0rICAqKQotKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1i b2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9s X3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1i b2xzJwotKyAgOzsKLSsgIGVzYWMKLSsgIF9MVF9BQ19UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAk MSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotK10sWwotKyAg cnVucGF0aF92YXI9Ci0rICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 Ci0rICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQx KT1ubwotKyAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KLSsgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQotKyAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2 ZV9Gcm9tX25ld19jbWRzLCAkMSk9Ci0rICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzLCAkMSk9Ci0rICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPQotKyAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PQotKyAgX0xUX0FDX1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKT0KLSsgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Ci0rICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLSsgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0LCAkMSk9bm8KLSsgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5v Ci0rICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRl ZAotKyAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgotKyAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubwotKyAgX0xUX0FDX1RBR1ZBUiht b2R1bGVfY21kcywgJDEpPQotKyAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQx KT0KLSsgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgIF9M VF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29y dCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQg YmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCi0rICAj IGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAotKyAgX0xUX0FDX1RBR1ZBUihpbmNsdWRlX2V4 cHN5bXMsICQxKT0KLSsgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdl eHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgn IGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBv ZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBg YScgYW5kIGBiYycsCi0rICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBk Jy4KLSsgIF9MVF9BQ19UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNF VF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNF VF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRm b3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVz ZWQgaWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBw b3J0YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3Mg cHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1i b2wgdGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2Zp bmFsaXphdGlvbiBzeW1ib2xzLgotK2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3lt cyBmb3IgQysrIGFib3ZlLgotKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rICAjIEp1c3QgYmVp bmcgcGFyYW5vaWQgYWJvdXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCi0rICBf TFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rICBjYXNlICRob3N0X29zIGluCi0rICBjeWd3 aW4qIHwgbWluZ3cqIHwgcHczMiopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNu J3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1c2luZyBn Y2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBNaWNyb3Nv ZnQgVmlzdWFsIEMrKy4KLSsgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCi0rICAgICAg d2l0aF9nbnVfbGQ9bm8KLSsgICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgqKQotKyAgICAjIHdl IGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotKyAg ICB3aXRoX2dudV9sZD15ZXMKLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICB3aXRoX2dudV9s ZD1ubwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBh cmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAg d2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0 aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBp ZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAg IyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBy dW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgX0xUX0FD X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5h bWljJwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2 ZSBldC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hp dmUnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMi Jy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICBlbHNlCi0rICAJX0xUX0FDX1RBR1ZBUih3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgICBzdXBwb3J0c19hbm9uX3Zl cnNpb25pbmc9bm8KLSsgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgotKyAgICAgICpc IFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lv bnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lv bmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwg Mi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9u X3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1 cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4 W1szLTldXSopCi0rICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJy b2tlbgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwlfTFRfQUNf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5p bmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBv cnRlZAotKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJp ZXMgb24gQUlYLgotKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBs aWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxp YnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28gdGhhdCBh IG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VPRgotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+ JGVjaG8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRlY2hvICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24i ID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRs aWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMy KScKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n LUwkbGliZGlyJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXll cwotKwotKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJv amVjdHMubmV0PiByZXBvcnRzCi0rICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2YgZHluYW1p YyBsaWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKLSsgICAgICAjIHRvIHZlcnNpb24g NCwgaXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKLSsgICAg ICAjIHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1h dGNoIHRoZQotKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBvdGhlciBw bGF0Zm9ybXMsIHdlIGNhbid0IHVzZQotKyAgICAgICMgdGhlbS4KLSsgICAgICBfTFRfQUNfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAg aWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT11bnN1cHBvcnRlZAotKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlz IHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVz ZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FD X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg Y3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAgICMgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAg IyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9M VF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAg IF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgICAgICBfTFRf QUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpz ICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNE R1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgLWUgJ1wnJy9eW1tB SVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9s cycKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdhdXRvLWltcG9ydCcgPiAv ZGV2L251bGw7IHRoZW4KLSsgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0t b3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxl IGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBp dCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4 RVhQT1JUUzsgdGhlbgotKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29u YW1lLmRlZjsKLSsJZWxzZQotKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmOwotKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7Ci0rCWZpfgotKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhs aW5rZXIgJGxpYicKLSsgICAgICBlbHNlCi0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhbWzMtOV1dKikKLSsgICAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICAgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1F JwotKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBi ZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJp ZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBk ZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2 ZXJ5IG1lbW9yeQotKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAg VG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKLSsgICAgICAjIDI1NiBLaUItYWxpZ25l ZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0r ICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3Jl IHNicmsoMikgc3BhY2UuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5 NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9s cyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJl dGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWlt YWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3 NzI4MGAgLW8gJGxpYicKLSsgICAgICA7OwotKwotKyAgICBnbnUqIHwgbGludXgqIHwgaypic2Qq LWdudSkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJn ZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCWNhc2UgJGNj X2Jhc2VuYW1lLCRob3N0X2NwdSBpbgotKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNv bXBpbGVyCi0rCSAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSck e3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFy Y2hpdmUnCi0rCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCi0rCSAgOzsKLSsJcGdmNzcqIHwg cGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwot KwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdo b2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIk Y29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9u ZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwot KwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwg aWNjKixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9 JyAtaV9keW5hbWljJyA7OwotKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZv cnRyYW4gY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9m b3JfbWFpbicgOzsKLSsJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIK LSsJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OwotKwllc2FjCi0rCWNhc2UgYCRDQyAt ViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotKwkgIF9MVF9B Q19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hp dmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVz dCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFy Y2hpdmUnCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBG b3J0cmFuIDguMwotKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKikKLSsJICB0bXBfc2hh cmVkZmxhZz0nLXNoYXJlZCcgOzsKLSsJZXNhYwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KwotKwlpZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KLSsJICBf TFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJGVjaG8gInsgZ2xvYmFsOiIg PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0r ICAkZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0r CSAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1z Y3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJZmkKLSsg ICAgICBlbHNlCi0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJEND IC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncyAtbyAkbGliJwotKwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCV9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAy XC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v Ci0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBv ZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKLSsqKiogY3JlYXRlIHNoYXJlZCBsaWJy YXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioqIGlzIGRp c2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRl IEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBv cHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0 aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5kIHRoZW4gcmVz dGFydC4KLSsKLStFT0YKLSsgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3Vw cG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xU X0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikK LSsgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KLSsgICAgICAgICpcIFtbMDFdXS4qIHwgKlwg Mi5bWzAtOV1dLiogfCAqXCAyLjFbWzAtNV1dLiopCi0rCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2Vz IG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVs aWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUs IGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdl IHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45 MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQ QVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBp cwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikK LSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVs ZicgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tcnBh dGgsJGxpYmRpcmAnCi0rCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwk e1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWInCi0rCSAgICBf TFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOisk e2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5 bWJvbHMgLW8gJGxpYicKLSsJICBlbHNlCi0rCSAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rCSAgZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgc3Vu b3M0KikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2Vy dCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFy LCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4m MSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgot KwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK LSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAg ICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihsZF9z aGxpYnMsICQxKSIgPSBubzsgdGhlbgotKyAgICAgIHJ1bnBhdGhfdmFyPQotKyAgICAgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgICAgIF9MVF9BQ19U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgX0xUX0FDX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgZWxzZQotKyAgICAj IFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5v dCBHTlUgbGQpCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4MyopCi0rICAgICAgX0xU X0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAg X0xUX0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJExEIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1i b2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCi0rICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVj dG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBz cGVjaWZpZWQgYnkgLUwuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAk MSk9eWVzCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2df Y29tcGlsZXJfc3RhdGljIjsgdGhlbgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9y IHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIu Ci0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAg ICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFpeFtbNC05XV0qKQotKyAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0 aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRo aW5nIHNwZWNpYWwuCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFn PSctQmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdy ZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMg LUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0 aCBHTlUgbm0KLSsJaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVu Ci0rCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRs aWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcWyRdMiA9PSAiVCIpIHx8IChc WyRdMiA9PSAiRCIpIHx8IChcWyRdMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXFskXTMsMSwxKSAh PSAiLiIpKSB7IHByaW50IFxbJF0zIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xz JwotKwllbHNlCi0rCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0g IlQiKSB8fCAoXFskXTIgPT0gIkQiKSB8fCAoXFskXTIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxb JF0zLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcWyRdMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBv cnRfc3ltYm9scycKLSsJZmkKLSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwotKwkjIFRl c3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsJ IyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdl Ci0rCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4 NC5bWzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUtOV1dKikKLSsJICBmb3IgbGRfZmxhZyBpbiAk TERGTEFHUzsgZG8KLSsgIAkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRs ZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCi0rICAJICAgIGFpeF91c2VfcnVudGltZWxpbmtp bmc9eWVzCi0rICAJICAgIGJyZWFrCi0rICAJICBmaQotKwkgIGRvbmUKLSsJICA7OwotKwllc2Fj Ci0rCi0rCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRy eScKLSsgICAgICBmaQotKwotKyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFy ZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KLSsgICAgICAjIGhhdmUgcHJvYmxlbXMg Y3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsg ICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1t aW5pbWFsLXRvYyB0bwotKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4g dGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90Ci0rICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBw cm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yLCAkMSk9JzonCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAk MSk9eWVzCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJY2FzZSAkaG9z dF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCi0rCSMgV2Ugb25seSB3YW50IHRv IGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKwkjIGJlbG93IGZvciBi cm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9 YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxl Y3QybmFtZSIgJiYgXAotKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNv bHZlX2xpYl9uYW1lID4vZGV2L251bGwKLSsJICB0aGVuCi0rICAJICAjIFdlIGhhdmUgcmV3b3Jr ZWQgY29sbGVjdDIKLSsgIAkgIDoKLSsJICBlbHNlCi0rICAJICAjIFdlIGhhdmUgb2xkIGNvbGxl Y3QyCi0rICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVk Ci0rICAJICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhl IHVuaW5zdGFsbGVkCi0rICAJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4g IFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAotKyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMg cmVsaW5raW5nCi0rICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMK LSsgIAkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRs aWJkaXInCi0rICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT0KLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCWlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgIHNoYXJlZF9m bGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwlmaQotKyAgICAgIGVsc2UKLSsJIyBub3Qg dXNpbmcgZ2NjCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAJIyBWaXN1 YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVh c2UKLSsgIAkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0 OgotKwkgIHNoYXJlZF9mbGFnPSctRycKLSsJZWxzZQotKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0r CSAgZWxzZQotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICBmaQotKwlmaQot KyAgICAgIGZpCi0rCi0rICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4 cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCi0rICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28g aXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KLSsg ICAgICBfTFRfQUNfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcwotKyAgICAg IGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5p bmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRs KSwKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBh IGJyb2tlbiBsaWJyYXJ5LgotKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAk MSk9Jy1iZXJvaycKLSsgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9t IHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgIF9MVF9B Q19TWVNfTElCUEFUSF9BSVgKLSsgICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0r CV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDIicgLW8gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFn IicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9 ICJ4IjsgdGhlbiBlY2hvICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBm aWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgot KyAgICAgICBlbHNlCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRp cjovdXNyL2xpYjovbGliJwotKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcs ICQxKT0iLXogbm9kZWZzIgotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9i anMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3ds fSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9z eW1ib2xzIgotKwllbHNlCi0rCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20g dGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KLSsJIF9MVF9BQ19TWVNf TElCUEFUSF9BSVgKLSsJIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2Fybmlu ZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAg IyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tl biBsaWJyYXJ5LgotKwkgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7 d2x9LWJlcm5vdG9rJwotKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0nICR7d2x9LWJlcm9rJwotKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGlu dG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJwotKwkgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKLSsJICAjIFRoaXMgaXMgc2ltaWxhciB0byBo b3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgotKwkgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyIn IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50 cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5h ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rCWZpCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBhbWlnYW9zKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck cm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBOQU1FICRs aWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUg TElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIj ZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihj ZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgIyBzZWUgY29tbWVu dCBhYm91dCBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgotKyAgICAg IF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBic2Rp W1s0NV1dKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPS1yZHluYW1pYwotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMy KikKLSsgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0 IHdlIGFyZSB1c2luZwotKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVy ZSBpcwotKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCi0rICAgICAgX0xUX0FDX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgIyBUZWxs IGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsgICAgICBsaWJleHQ9 bGliCi0rICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmls ZXMuCi0rICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICAgICAgIyBGSVhNRTogU2V0dGluZyBs aW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZWNobyAi JGRlcGxpYnMiIHwgJFNFRCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFt ZXM9JwotKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGli IGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2 ZV9Gcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCi0rICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0 aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KLSsgICAgICBfTFRfQUNfVEFHVkFSKG9s ZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJz JwotKyAgICAgIF9MVF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0aCAt dyAiJHNyY2ZpbGUiYCcKLSsgICAgICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhh cHNvZHkqKQotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICAgIHJoYXBzb2R5KiB8IGRh cndpbjEuW1swMTJdXSkKLSsgICAgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJwotKyAgICAgICAgIDs7Ci0r ICAgICAgICopICMgRGFyd2luIDEuMyBvbgotKyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hf REVQTE9ZTUVOVF9UQVJHRVR9IDsgdGhlbgotKyAgICAgICAgICAgX0xUX0FDX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmlu ZWQgJHt3bH1zdXBwcmVzcycKLSsgICAgICAgICBlbHNlCi0rICAgICAgICAgICBjYXNlICR7TUFD T1NYX0RFUExPWU1FTlRfVEFSR0VUfSBpbgotKyAgICAgICAgICAgICAxMC5bWzAxMl1dKQotKyAg ICAgICAgICAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3 bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAg ICAgICAgICAgOzsKLSsgICAgICAgICAgICAgMTAuKikKLSsgICAgICAgICAgICAgICBfTFRfQUNf VEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5 bmFtaWNfbG9va3VwJwotKyAgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICBlc2FjCi0rICAg ICAgICAgZmkKLSsgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPW5vCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0 aWMsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMsICQxKT0nJwotKyAgICAgIF9MVF9BQ19UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEp PXllcwotKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyA7IHRoZW4KLSsgICAgCW91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSdlY2hvJwotKyAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwk bGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgv XCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIK LSsgICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBp bGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91 dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBc JGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21w aWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtf bHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIK LSsgICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAn cyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0t c3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5k bGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9z eW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgZWxzZQotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCi0rICAgICAgICB4bGMqKQotKyAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdl Y2hvJwotKyAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtcW1r c2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFt ZWAgJHhsY3ZlcnN0cmluZycKLSsgICAgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAk MSk9JyRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRk ZXBsaWJzJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgICAgICAjIERvbid0IGZpeCB0aGlzIGJ5IHVz aW5nIHRoZSBsZCAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0IGRvZXNuJ3QgZXhpc3Qg aW4gb2xkZXIgZGFyd2luIGxkcwotKyAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5c KC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9 LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUg JHt3bH0kcnBhdGgvJHNvbmFtZSAkeGxjdmVyc3RyaW5nfm5tZWRpdCAtcyAkb3V0cHV0X29iamRp ci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKLSsgICAgICAgICAgX0xUX0FDX1RB R1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAg ICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9v YmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFn ICAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0 IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAg ICAgICAgICA7OwotKyAgICAgICAqKQotKyAgICAgICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KLSsgICAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgZGd1eCopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSct TCRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KLSsgICAgICA7OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgX0xUX0FDX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIuWzAx Ml0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3Rvcgot KyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBi dXQgYW4gZXhwbGljaXQgYysrcnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywg YW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAgICMg ZXh0cmEgc3BhY2UpLgotKyAgICBmcmVlYnNkMi4yKikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0 dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVh dHVyZS4KLSsgICAgZnJlZWJzZDIqKQotKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0r ICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVk IGxpYnJhcmllcy4KLSsgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgIF9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXg5KikKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIg fHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExE IC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxp YiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZmkKLSsgICAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3ds fSRsaWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9OgotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0r Ci0rICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFU SCwKLSsgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4K LSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBf TFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAg ICAgIDs7Ci0rCi0rICAgIGhwdXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9 JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKyAgICAgIGVsc2UKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1i ICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSBubzsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciwgJDEpPToKLSsKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT15ZXMKLSsJX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3 bH0tRScKLSsKLSsJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2gg UEFUSCwKLSsJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0r CV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgaHB1eDExKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQq KQotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9 K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0r CSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3 bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAgICAg ZWxzZQotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29u YW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9s aWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsK LSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0 aGVuCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fStiICR7d2x9JGxpYmRpcicKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yLCAkMSk9OgotKwotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KnxpYTY0KikKLSsJ ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxp YmRpcicKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCSAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJICA7OwotKwkqKQot KwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX0FDX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsKLSsJICAjIGhh cmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkgICMgYnV0 IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwkgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAg aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0t c2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0k e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm IGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwotKyAgICAgIGZpCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJw YXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IsICQxKT06Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAk MSk9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKLSsgICAgICBmaQotKyAgICAgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAg IG5ld3NvczYpCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAg ICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9 JGxpYmRpcicKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Is ICQxKT06Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KLSsgICAgICA7OwotKwotKyAgICBvcGVuYnNkKikKLSsgICAgICBpZiB0ZXN0IC1mIC91c3Iv bGliZXhlYy9sZC5zbzsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEp PXllcwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwlp ZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0 ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJ ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlLCRleHBvcnRfc3ltYm9scycKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBfTFRfQUNfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKwllbHNlCi0rCSAgY2Fz ZSAkaG9zdF9vcyBpbgotKwkgICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwg b3BlbmJzZDIuW1swLTddXS4qKQotKwkgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCi0rCSAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1SJGxpYmRpcicKLSsJICAgICA7OwotKwkgICAqKQotKwkgICAgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgICA7OwotKwkg IGVzYWMKLSsgICAgICAgIGZpCi0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBvczIqKQotKyAgICAgIF9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgX0xU X0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJGVjaG8gIkxJQlJBUlkgJGxpYm5hbWUg SU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJ UFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8g REFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUgTk9OU0hB UkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gRVhQT1JUUyA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIF9M VF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAg ICAgOzsKLSsKLSsgICAgb3NmMyopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K LSsJX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0 X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0 ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0r ICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAt ZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8g LXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGly fS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsgICAgICBmaQotKyAgICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXIn Ci0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ogot KyAgICAgIDs7Ci0rCi0rICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRk aXRpb24gb2YgLW1zeW0gZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0r CV9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAi JHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7 d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCi0rCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFSKGFs bG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQg JGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAi XCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJJExE IC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5leHAgJGxpbmtlcl9m bGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5leHAnCi0rCi0rCSMg Qm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwot KyAgICAgIGZpCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9OgotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIF9MVF9BQ19UQUdW QVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16IHRleHQnCi0rICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsJd2xhcmM9JyR7d2x9JwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRf c3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2Nh bDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGli LmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFnc34kcm0gJGxpYi5leHAnCi0rICAgICAgZWxzZQotKwl3bGFyYz0nJwotKwlfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoi ID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8i ID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKyAgCSRMRCAt RyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRybSAkbGliLmV4cCcKLSsgICAgICBmaQot KyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRs aWJkaXInCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KLSsgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNv bGFyaXMyLltbMC01XV0uKikgOzsKLSsgICAgICAqKQotKwkjIFRoZSBjb21waWxlciBkcml2ZXIg d2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAotKwkjIGJ1dCB1bmRlcnN0 YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCi0r CSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgotKyAJIyBTdXBwb3J0ZWQg c2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsJICBfTFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0 cmFjdCcKLSsJZWxzZQotKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJz LCAkMSk9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4 JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVy IHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0 aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCV9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsg ICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQp Ci0rICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwg JDEpPXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KLSsJOzsKLSsJc2llbWVucykKLSsJICAj IyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKLSsJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jv c3NNb2R1bGUuCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfQUNfVEFHVkFS KHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKwkgIF9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCW1vdG9y b2xhKQotKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMs IGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgcnVu cGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgX0xUX0FDX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsgICAg c3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGli cGF0aF92YXIsICQxKT1ubwotKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9y dW5wYXRoX3Zhcj15ZXMKLSsJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAg ICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5 c3Y1VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1sw MjRdXSopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3ds fS16LHRleHQnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEp PW5vCi0rICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K LSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3lt Ym9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSog fCBzY281djYqKQotKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBt aWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxjLCBh bmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAg ICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFy eSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2lu ZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRj aCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAjIGFz IC16IGRlZnMuCi0rICAgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPSck e3dsfS16LHRleHQnCi0rICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPScke3dsfS16LG5vZGVmcycKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92 YXIsICQxKT1ubwotKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcK LSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicK LSsgICAgICBfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICBf TFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0 JwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfQUNfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDok ZXhwb3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99 JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAg ICBlbHNlCi0rCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1o LFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9 LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICB1dHM0KikKLSsgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQg LUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0r ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxp YmRpcicKLSsgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSkKLStBQ19NU0dfUkVTVUxU KFskX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCi0rdGVzdCAiJF9MVF9BQ19UQUdWQVIo bGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyMKLSsjIERv IHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpIiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1l IC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRf bGMsICQxKT15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpIGluCi0rICAgIConficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRl YWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcq KQotKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdp dGggLWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21l IGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBk b24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo ZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbl0pCi0rICAgICAgJHJtIGNvbmZ0 ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRl c3QuJGFjX2V4dAotKwotKyAgICAgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29uZnRl c3QuZXJyOyB0aGVuCi0rICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25m dGVzdAotKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBs aWJzPQotKyAgICAgICAgd2w9JF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEp Ci0rCXBpY19mbGFnPSRfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkKLSsg ICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAg ICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFt ZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kX0xUX0FD X1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCi0rICAgICAgICBfTFRfQUNfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rICAgICAgICBpZiBBQ19UUllfRVZBTChfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9k ZXYvbnVsbCAyXD5cJjEpCi0rICAgICAgICB0aGVuCi0rCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAgICBlbHNlCi0rCSAgX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwotKyAgICAgICAgZmkKLSsgICAgICAgIF9MVF9B Q19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmlu ZWRfZmxhZwotKyAgICAgIGVsc2UKLSsgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQotKyAg ICAgIGZpCi0rICAgICAgJHJtIGNvbmZ0ZXN0KgotKyAgICAgIEFDX01TR19SRVNVTFQoWyRfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSldKQotKyAgICAgIDs7Ci0rICAgIGVz YWMKLSsgIGZpCi0rICA7OwotK2VzYWMKLStdKSMgQUNfTElCVE9PTF9QUk9HX0xEX1NITElCUwot KwotKwotKyMgX0xUX0FDX0ZJTEVfTFRETExfQwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg QmUgY2FyZWZ1bCB0aGF0IHRoZSBzdGFydCBtYXJrZXIgYWx3YXlzIGZvbGxvd3MgYSBuZXdsaW5l LgotK0FDX0RFRlVOKFtfTFRfQUNfRklMRV9MVERMTF9DXSwgWwotKyMgLyogbHRkbGwuYyBzdGFy dHMgaGVyZSAqLwotKyMgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCi0rIyAjaW5jbHVkZSA8 d2luZG93cy5oPgotKyMgI3VuZGVmIFdJTjMyX0xFQU5fQU5EX01FQU4KLSsjICNpbmNsdWRlIDxz dGRpby5oPgotKyMKLSsjICNpZm5kZWYgX19DWUdXSU5fXwotKyMgIyAgaWZkZWYgX19DWUdXSU4z Ml9fCi0rIyAjICAgIGRlZmluZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJfXwotKyMgIyAgZW5kaWYK LSsjICNlbmRpZgotKyMKLSsjICNpZmRlZiBfX2NwbHVzcGx1cwotKyMgZXh0ZXJuICJDIiB7Ci0r IyAjZW5kaWYKLSsjIEJPT0wgQVBJRU5UUlkgRGxsTWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09S RCByZWFzb24sIExQVk9JRCByZXNlcnZlZCk7Ci0rIyAjaWZkZWYgX19jcGx1c3BsdXMKLSsjIH0K LSsjICNlbmRpZgotKyMKLSsjICNpZmRlZiBfX0NZR1dJTl9fCi0rIyAjaW5jbHVkZSA8Y3lnd2lu L2N5Z3dpbl9kbGwuaD4KLSsjIERFQ0xBUkVfQ1lHV0lOX0RMTCggRGxsTWFpbiApOwotKyMgI2Vu ZGlmCi0rIyBISU5TVEFOQ0UgX19oRGxsSW5zdGFuY2VfYmFzZTsKLSsjCi0rIyBCT09MIEFQSUVO VFJZCi0rIyBEbGxNYWluIChISU5TVEFOQ0UgaEluc3QsIERXT1JEIHJlYXNvbiwgTFBWT0lEIHJl c2VydmVkKQotKyMgewotKyMgICBfX2hEbGxJbnN0YW5jZV9iYXNlID0gaEluc3Q7Ci0rIyAgIHJl dHVybiBUUlVFOwotKyMgfQotKyMgLyogbHRkbGwuYyBlbmRzIGhlcmUgKi8KLStdKSMgX0xUX0FD X0ZJTEVfTFRETExfQwotKwotKwotKyMgX0xUX0FDX1RBR1ZBUihWQVJOQU1FLCBbVEFHTkFNRV0p Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0xUX0FD X1RBR1ZBUl0sIFtpZmVsc2UoWyQyXSwgW10sIFskMV0sIFskMV8kMl0pXSkKLSsKLSsKLSsjIG9s ZCBuYW1lcwotK0FDX0RFRlVOKFtBTV9QUk9HX0xJQlRPT0xdLCAgIFtBQ19QUk9HX0xJQlRPT0xd KQotK0FDX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgIFtBQ19FTkFCTEVfU0hBUkVEKCRAKV0p Ci0rQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCAgW0FDX0VOQUJMRV9TVEFUSUMoJEApXSkK LStBQ19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbQUNfRElTQUJMRV9TSEFSRUQoJEApXSkK LStBQ19ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbQUNfRElTQUJMRV9TVEFUSUMoJEApXSkK LStBQ19ERUZVTihbQU1fUFJPR19MRF0sICAgICAgICBbQUNfUFJPR19MRF0pCi0rQUNfREVGVU4o W0FNX1BST0dfTk1dLCAgICAgICAgW0FDX1BST0dfTk1dKQotKwotKyMgVGhpcyBpcyBqdXN0IHRv IHNpbGVuY2UgYWNsb2NhbCBhYm91dCB0aGUgbWFjcm8gbm90IGJlaW5nIHVzZWQKLStpZmVsc2Uo W0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSkKLSsKLStBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pd LAotK1tBQ19DSEVDS19UT09MKEdDSiwgZ2NqLCBubykKLSsgIHRlc3QgIngke0dDSkZMQUdTK3Nl dH0iID0geHNldCB8fCBHQ0pGTEFHUz0iLWcgLU8yIgotKyAgQUNfU1VCU1QoR0NKRkxBR1MpCi0r XSkKLSsKLStBQ19ERUZVTihbTFRfQUNfUFJPR19SQ10sCi0rW0FDX0NIRUNLX1RPT0woUkMsIHdp bmRyZXMsIG5vKQotK10pCi0rCi0rCi0rIyBDaGVhcCBiYWNrcG9ydCBvZiBBU19FWEVDVVRBQkxF X1AgYW5kIHJlcXVpcmVkIG1hY3JvcwotKyMgZnJvbSBBdXRvY29uZiAyLjU5OyB3ZSBzaG91bGQg bm90IHVzZSAkYXNfZXhlY3V0YWJsZV9wIGRpcmVjdGx5LgotKwotKyMgX0FTX1RFU1RfUFJFUEFS RQotKyMgLS0tLS0tLS0tLS0tLS0tLQotK200X2lmbmRlZihbX0FTX1RFU1RfUFJFUEFSRV0sCi0r W200X2RlZnVuKFtfQVNfVEVTVF9QUkVQQVJFXSwKLStbaWYgdGVzdCAteCAvID4vZGV2L251bGwg Mj4mMTsgdGhlbgotKyAgYXNfZXhlY3V0YWJsZV9wPSd0ZXN0IC14JwotK2Vsc2UKLSsgIGFzX2V4 ZWN1dGFibGVfcD0ndGVzdCAtZicKLStmaQotK10pXSkjIF9BU19URVNUX1BSRVBBUkUKLSsKLSsj IEFTX0VYRUNVVEFCTEVfUAotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIGEg ZmlsZSBpcyBleGVjdXRhYmxlLgotK200X2lmbmRlZihbQVNfRVhFQ1VUQUJMRV9QXSwKLStbbTRf ZGVmdW4oW0FTX0VYRUNVVEFCTEVfUF0sCi0rW0FTX1JFUVVJUkUoW19BU19URVNUX1BSRVBBUkVd KWRubAotKyRhc19leGVjdXRhYmxlX3AgJDFbXWRubAotK10pXSkjIEFTX0VYRUNVVEFCTEVfUAot KwotKyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBp bnRvICAgIwotKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMgYXZh aWxhYmxlIGluICAgIwotKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91 bGQgcmVtb3ZlIHRoaXMgICAgIwotKyMgIG1hY3JvIGFuZCB1c2UgaXQgaW5zdGVhZC4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIwotKyMgTFRfQUNfUFJPR19TRUQKLSsjIC0tLS0tLS0t LS0tLS0tCi0rIyBDaGVjayBmb3IgYSBmdWxseS1mdW5jdGlvbmFsIHNlZCBwcm9ncmFtLCB0aGF0 IHRydW5jYXRlcwotKyMgYXMgZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2libGUuICBQcmVmZXIgR05V IHNlZCBpZiBmb3VuZC4KLStBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLAotK1tBQ19NU0dfQ0hF Q0tJTkcoW2ZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rQUNfQ0FD SEVfVkFMKGx0X2N2X3BhdGhfU0VELAotK1sjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGgg YW5kIHRlc3QgZm9yIHNlZCBhbmQgZ3NlZC4KLSsjIFRoZW4gdXNlIHRoYXQgbGlzdCBvZiBzZWQn cyBhcyBvbmVzIHRvIHRlc3QgZm9yIHRydW5jYXRpb24uCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBsdF9hY19w cm9nIGluIHNlZCBnc2VkOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgICAgICBpZiBBU19FWEVDVVRBQkxFX1AoWyIkYXNfZGly LyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0Il0pOyB0aGVuCi0rICAgICAgICBsdF9hY19zZWRfbGlz dD0iJGx0X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCi0rICAg ICAgZmkKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rbHRf YWNfbWF4PTAKLStsdF9hY19jb3VudD0wCi0rIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQg aXMgdHlwaWNhbGx5IGZvdW5kIG9uIFNvbGFyaXMKLSsjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhh dCB0cnVuY2F0ZXMgb3V0cHV0LgotK2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91 c3IveHBnNC9iaW4vc2VkOyBkbwotKyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUK LSsgIGNhdCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgotKyAgbHRfYWNfY291bnQ9MAotKyAgZWNo byAkRUNIT19OICIwMTIzNDU2Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCi0rICAjIENoZWNrIGZv ciBHTlUgc2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCi0rICBpZiAiJGx0X2FjX3Nl ZCIgLS12ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0 aGVuCi0rICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKLSsgICAgYnJlYWsKLSsgIGZpCi0r ICB3aGlsZSB0cnVlOyBkbwotKyAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0 ZXN0LnRtcAotKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3QuaW4KLSsgICAgY3AgY29uZnRl c3QuaW4gY29uZnRlc3QubmwKLSsgICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCi0rICAgICRsdF9hY19z ZWQgLWUgJ3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCi0rICAg IGNtcCAtcyBjb25mdGVzdC5vdXQgY29uZnRlc3QubmwgfHwgYnJlYWsKLSsgICAgIyAxMDAwMCBj aGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCi0rICAgIHRlc3QgJGx0X2FjX2Nv dW50IC1ndCAxMCAmJiBicmVhawotKyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQg KyAxYAotKyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgotKyAg ICAgIGx0X2FjX21heD0kbHRfYWNfY291bnQKLSsgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNf c2VkCi0rICAgIGZpCi0rICBkb25lCi0rZG9uZQotK10pCi0rU0VEPSRsdF9jdl9wYXRoX1NFRAot K0FDX1NVQlNUKFtTRURdKQotK0FDX01TR19SRVNVTFQoWyRTRURdKQotK10pCi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fQVVUT01B S0VfVkVSU0lPTihWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg QXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBi ZWVuCi0rIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtl IFguWS4KLSsjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lk ZSB0aGlzIGZpbGUuKQotK0FDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwKLStbYW1fX2Fw aV92ZXJzaW9uPScxLjEwJwotK2RubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lP TiBhbmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KLStkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0g dmVyc2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgotK200X2lmKFskMV0sIFsx LjEwLjFdLCBbXSwKLSsgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5J VF9BVVRPTUFLRShbJDFdKS5dKV0pZG5sCi0rXSkKLSsKLSsjIF9BTV9BVVRPQ09ORl9WRVJTSU9O KFZFUlNJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgYWNsb2NhbCB0 cmFjZXMgdGhpcyBtYWNybyB0byBmaW5kIHRoZSBBdXRvY29uZiB2ZXJzaW9uLgotKyMgVGhpcyBp cyBhIHByaXZhdGUgbWFjcm8gdG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKLSsjIHRo ZSBsb2dpYyBpbiBhY2xvY2FsLCB3aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRp b24uCi0rbTRfZGVmaW5lKFtfQU1fQVVUT0NPTkZfVkVSU0lPTl0sIFtdKQotKwotKyMgQU1fU0VU X0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9O IHNvIHRoZXkgY2FuIGJlIHRyYWNlZC4KLSsjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQg YnkgQUNfSU5JVF9BVVRPTUFLRS4KLStBQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0Vf VkVSU0lPTl0sCi0rW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTAuMV0pZG5sCi0rbTRfaWZuZGVm KFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05d LCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLStfQU1fQVVUT0NPTkZfVkVSU0lPTihBQ19B VVRPQ09ORl9WRVJTSU9OKV0pCi0rCi0rIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJp Z2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEZvciBwcm9qZWN0cyB1c2luZyBBQ19D T05GSUdfQVVYX0RJUihbZm9vXSksIEF1dG9jb25mIHNldHMKLSsjICRhY19hdXhfZGlyIHRvIGAk c3JjZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCi0rIyBgJHNyY2Rp cicsIGAkc3JjZGlyLy4uJywgb3IgYCRzcmNkaXIvLi4vLi4nLgotKyMKLSsjIE9mIGNvdXJzZSwg QXV0b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKLSsj IHRvb2wgZnJvbSB0aGUgYXV4aWxpYXJ5IGRpcmVjdG9yeS4gIFRoZSBwcm9ibGVtIGlzIHRoYXQg JHNyY2RpciAoYW5kCi0rIyB0aGVyZWZvcmUgJGFjX2F1eF9kaXIgYXMgd2VsbCkgY2FuIGJlIGVp dGhlciBhYnNvbHV0ZSBvciByZWxhdGl2ZSwKLSsjIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJl IGlzIHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBzaW5jZQotKyMgaXQgbWFrZXMgJGFj X2F1eF9kaXIgcXVpdGUgdW51c2FibGUgaW4gc3ViZGlyZWN0b3JpZXM6IGluIHRoZSB0b3AKLSsj IHNvdXJjZSBkaXJlY3RvcnksIGFueSBmb3JtIHdpbGwgd29yayBmaW5lLCBidXQgaW4gc3ViZGly ZWN0b3JpZXMgYQotKyMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4K LSsjCi0rIyAkYWNfYXV4X2Rpci9taXNzaW5nCi0rIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9t IGEgc3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCi0rIyAkdG9wX3NyY2Rp ci8kYWNfYXV4X2Rpci9taXNzaW5nCi0rIyAgICBmYWlscyBpZiAkYWNfYXV4X2RpciBpcyBhYnNv bHV0ZSwKLSsjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBW UEFUSCBidWlsZCB3aXRoCi0rIyAgICAgICAgICBhIHJlbGF0aXZlICRhY19hdXhfZGlyCi0rIwot KyMgVGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBh bmQgJGFjX2F1eF9kaXIKLSsjIGFyZSBib3RoIHByZWZpeGVkIGJ5ICRzcmNkaXIuICBJbiBhbiBp bi1zb3VyY2UgYnVpbGQgdGhpcyBpcyB1c3VhbGx5Ci0rIyBoYXJtbGVzcyBiZWNhdXNlICRzcmNk aXIgaXMgYC4nLCBidXQgdGhpbmdzIHdpbGwgYnJva2Ugd2hlbiB5b3UKLSsjIHN0YXJ0IGEgVlBB VEggYnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIuCi0rIwotKyMgU28gd2UgY291bGQg dXNlIHNvbWV0aGluZyBzaW1pbGFyIHRvICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3Npbmcs Ci0rIyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAg VGhhdCB3b3VsZCBiZToKLSsjICAgYW1fYXV4X2Rpcj0nXCQodG9wX3NyY2RpcikvJ2BleHByICIk YWNfYXV4X2RpciIgOiAiJHNyY2Rpci8vKlwoLipcKSJgCi0rIyBhbmQgdGhlbiB3ZSB3b3VsZCBk ZWZpbmUgJE1JU1NJTkcgYXMKLSsjICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21p c3NpbmciCi0rIyBUaGlzIHdpbGwgd29yayBhcyBsb25nIGFzIE1JU1NJTkcgaXMgbm90IGNhbGxl ZCBmcm9tIGNvbmZpZ3VyZSwgYmVjYXVzZQotKyMgdW5mb3J0dW5hdGVseSAkKHRvcF9zcmNkaXIp IGhhcyBubyBtZWFuaW5nIGluIGNvbmZpZ3VyZS4KLSsjIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVy IHZhcmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KLSsjIGNvbmZpZ3Vy ZSwgYW5kIGNvdWxkIHRoZXJlZm9yZSBub3QgdXNlIHRoaXMgImZpeGVkIiAkYWNfYXV4X2Rpci4K LSsjCi0rIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQg JGFjX2F1eF9kaXIgdG8gYW4KLSsjIGFic29sdXRlIFBBVEguICBUaGUgZHJhd2JhY2sgaXMgdGhh dCB1c2luZyBhYnNvbHV0ZSBwYXRocyBwcmV2ZW50IGEKLSsjIGNvbmZpZ3VyZWQgdHJlZSB0byBi ZSBtb3ZlZCB3aXRob3V0IHJlY29uZmlndXJhdGlvbi4KLSsKLStBQ19ERUZVTihbQU1fQVVYX0RJ Ul9FWFBBTkRdLAotK1tkbmwgUmVseSBvbiBhdXRvY29uZiB0byBzZXQgdXAgQ0RQQVRIIHByb3Bl cmx5LgotK0FDX1BSRVJFUShbMi41MF0pZG5sCi0rIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4g YWJzb2x1dGUgcGF0aAotK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKLStdKQot KwotKyMgQU1fQ09ORElUSU9OQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NywgMjAwMCwg MjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgOAotKwotKyMg QU1fQ09ORElUSU9OQUwoTkFNRSwgU0hFTEwtQ09ORElUSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCi0rQUNfREVG VU4oW0FNX0NPTkRJVElPTkFMXSwKLStbQUNfUFJFUkVRKDIuNTIpZG5sCi0rIGlmZWxzZShbJDFd LCBbVFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCi0rCVsk MV0sIFtGQUxTRV0sIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSlkbmwK LStBQ19TVUJTVChbJDFfVFJVRV0pZG5sCi0rQUNfU1VCU1QoWyQxX0ZBTFNFXSlkbmwKLStfQU1f U1VCU1RfTk9UTUFLRShbJDFfVFJVRV0pZG5sCi0rX0FNX1NVQlNUX05PVE1BS0UoWyQxX0ZBTFNF XSlkbmwKLStpZiAkMjsgdGhlbgotKyAgJDFfVFJVRT0KLSsgICQxX0ZBTFNFPScjJwotK2Vsc2UK LSsgICQxX1RSVUU9JyMnCi0rICAkMV9GQUxTRT0KLStmaQotK0FDX0NPTkZJR19DT01NQU5EU19Q UkUoCi0rW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9Ijsg dGhlbgotKyAgQUNfTVNHX0VSUk9SKFtbY29uZGl0aW9uYWwgIiQxIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS5dXSkKLStmaV0pXSkKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgOQotKwot KyMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFD X1BST0dfQ0MnIGJlCi0rIyB3cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtl LCB3aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKLSsjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2Uq LCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncwotKyMgQyBzdXBwb3J0IG1hY2hp bmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotKyMg Q0MgZXRjLiBpbiB0aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0NDIHVzZS4u LgotKwotKwotKyMgX0FNX0RFUEVOREVOQ0lFUyhOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNr aW5nLgotKyMgTkFNRSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KLSsjIFdlIHRy eSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFy aWFibGUuCi0rIwotKyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGluZyBBQ19Q Uk9HX0NDIHNpbmNlIHRoZSBsYXR0ZXIgd2FzCi0rIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RF UEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgotKyMgZGVwZW5kZW5jeSwg YW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3Jv LAotKyMganVzdCByZWx5IG9uIEFDX1BST0dfQ0MuCi0rQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJ RVNdLAotK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9P VVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10pZG5sCi0rQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNM VURFXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotKwotK2lmZWxzZShbJDFd LCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0sCi0rICAgICAgIFskMV0s IENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSsgICAgICAgWyQxXSwg T0JKQywgW2RlcGNjPSIkT0JKQyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKLSsgICAg ICAgWyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAotKyAgICAg ICBbJDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYydd LAotKyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0p Ci0rCi0rQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKLSsgICAg ICAgICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAotK1tpZiB0 ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAj IFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBj YW4gZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJv dXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQg dGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVt bXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQK LSsgICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRv IHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAj IHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVz dC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5k IGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRv IGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAg IyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5j aWVzIGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBw dXQgdGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUg VHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1r ZGlyIHN1YgotKwotKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQot KyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBp bGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVw Y29tcGAKLSsgIGZpCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KLSsg ICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUg Y29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24g Y29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRl cGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgotKyAgICAjCi0rICAgICMgV2Ug bmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGls ZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBv YnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGgg dGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgZm9yIGkg aW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgi JyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgn IGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0rICAgICAgIyBTb2xhcmlzIDgncyB7 L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSsgICAgZG9uZQot KyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2Ft X19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgbm9zaWRl ZWZmZWN0KQotKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBz aWRlLWVmZmVjdCwgc28gdGhleSdsbAotKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGlj aXRseSByZXF1ZXN0ZWQKLSsgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNr aW5nIiA9IHh5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAgICBlbHNlCi0rCWJyZWFrCi0rICAg ICAgZmkKLSsgICAgICA7OwotKyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0rICAgICMg V2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rk b3V0IgotKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21w aWxlciBkb2VzIG5vdCBwcm9wZXJseQotKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVl ZCB0byBkZXRlY3QgdGhpcy4KLSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAgIHNv dXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKLSsg ICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBv IFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7 T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKLSsgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRl c3QuZXJyICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRl c3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09C SkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01B S0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGlj YyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdh cm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBn cmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24g d2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBp Y2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQg bGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQK LSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBp Y2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAg ICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAg IGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVu IDo7IGVsc2UKLSsgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRk ZXBtb2RlCi0rICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGZpCi0rICBkb25lCi0rCi0r ICBjZCAuLgotKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotK2Vsc2UKLSsgIGFtX2N2XyQxX2RlcGVu ZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStmaQotK10pCi0rQUNfU1VCU1QoWyQxREVQTU9E RV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCi0rQU1f Q09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRl bmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlIiA9IGdjYzNdKQotK10pCi0rCi0rCi0rIyBBTV9TRVRfREVQRElSCi0r IyAtLS0tLS0tLS0tLS0tCi0rIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5j eSBmaWxlcy4KLSsjIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lF UwotK0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKLStbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJ TkdfRE9UXSlkbmwKLStBQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBz Il0pZG5sCi0rXSkKLSsKLSsKLSsjIEFNX0RFUF9UUkFDSwotKyMgLS0tLS0tLS0tLS0tCi0rQUNf REVGVU4oW0FNX0RFUF9UUkFDS10sCi0rW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2lu ZywKLStbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1l IGJ1aWxkCi0rICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBz bG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBj b21wIgotKyAgQU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkKLStBTV9DT05ESVRJT05BTChbQU1ERVBd LCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKLStBQ19TVUJT VChbQU1ERVBCQUNLU0xBU0hdKWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFT SF0pZG5sCi0rXSkKLSsKLSsjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJh Y2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMp IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKLSsjIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJp YWwgMwotKwotKyMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NP TU1BTkRTXSwKLStbZm9yIG1mIGluICRDT05GSUdfRklMRVM7IGRvCi0rICAjIFN0cmlwIE1GIHNv IHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgotKyAgbWY9YGVjaG8gIiRtZiIg fCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSsgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9t YWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCi0rICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25s eSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0Ci0rICAjIHNvbWUgcGVvcGxlIHJl bmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSsgICMg R3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1w cm9jZXNzCi0rICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBv ZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgotKyAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBu b3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKLSsgICMgbGltaXQgb2YgMjA0OCwg YnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgotKyAg aWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3Jl cCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICBkaXJwYXJ0PWBBU19ESVJOQU1FKCIkbWYi KWAKLSsgIGVsc2UKLSsgICAgY29udGludWUKLSsgIGZpCi0rICAjIEV4dHJhY3QgdGhlIGRlZmlu aXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotKyAgIyBmcm9tIHRo ZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgotKyAgREVQRElSPWBzZWQgLW4gJ3Mv XkRFUERJUiA9IC8vcCcgPCAiJG1mImAKLSsgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVl Ci0rICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAK LSsgIHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQotKyAgYW1fX3F1b3RlPWBzZWQg LW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSsgICMgV2hlbiB1c2luZyBhbnNpMmtu ciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICBVPWBzZWQg LW4gJ3MvXlUgPSAvL3AnIDwgIiRtZiJgCi0rICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0 IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0rICAjICQoREVQRElSKSBpbiB0 aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICMg c2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFs dWUgaW4gdGhlCi0rICAjIGV4cGFuc2lvbi4KLSsgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAg ICBzL14kYW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIick L1wxL3AnIDwiJG1mIiB8IFwKLSsgICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElS IicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0rICAgICMgTWFrZSBzdXJlIHRoZSBkaXJl Y3RvcnkgZXhpc3RzLgotKyAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUK LSsgICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAotKyAgICBBU19NS0RJUl9QKFskZGly cGFydC8kZmRpcl0pCi0rICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0rICAg IGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgotKyAgZG9uZQotK2RvbmUKLStdKSMg X0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0rCi0rCi0rIyBBTV9PVVRQVVRfREVQRU5E RU5DWV9DT01NQU5EUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRoaXMg bWFjcm8gc2hvdWxkIG9ubHkgYmUgaW52b2tlZCBvbmNlIC0tIHVzZSB2aWEgQUNfUkVRVUlSRS4K LSsjCi0rIyBUaGlzIGNvZGUgaXMgb25seSByZXF1aXJlZCB3aGVuIGF1dG9tYXRpYyBkZXBlbmRl bmN5IHRyYWNraW5nCi0rIyBpcyBlbmFibGVkLiAgRklYTUUuICBUaGlzIGNyZWF0ZXMgZWFjaCBg LlAnIGZpbGUgdGhhdCB3ZSB3aWxsCi0rIyBuZWVkIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGUg ZGVwZW5kZW5jeSBoYW5kbGluZyBjb2RlLgotK0FDX0RFRlVOKFtBTV9PVVRQVVRfREVQRU5ERU5D WV9DT01NQU5EU10sCi0rW0FDX0NPTkZJR19DT01NQU5EUyhbZGVwZmlsZXNdLAotKyAgICAgW3Rl c3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5E U10sCi0rICAgICBbQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhf ZGlyIl0pCi0rXSkKLSsKLSsjIERvIGFsbCB0aGUgd29yayBmb3IgQXV0b21ha2UuICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMp IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCi0r IyAyMDA1LCAyMDA2LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u Ci0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDEzCi0rCi0rIyBUaGlzIG1hY3JvIGFj dHVhbGx5IGRvZXMgdG9vIG11Y2guICBTb21lIGNoZWNrcyBhcmUgb25seSBuZWVkZWQgaWYKLSsj IHlvdXIgcGFja2FnZSBkb2VzIGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRoaXMgaXNuJ3QgcmVhbGx5 IGEgYmlnIGRlYWwuCi0rCi0rIyBBTV9JTklUX0FVVE9NQUtFKFBBQ0tBR0UsIFZFUlNJT04sIFtO Ty1ERUZJTkVdKQotKyMgQU1fSU5JVF9BVVRPTUFLRShbT1BUSU9OU10pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVGhlIGNhbGwgd2l0aCBQ QUNLQUdFIGFuZCBWRVJTSU9OIGFyZ3VtZW50cyBpcyB0aGUgb2xkIHN0eWxlCi0rIyBjYWxsIChw cmUgYXV0b2NvbmYtMi41MCksIHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBvdXQuICBQQUNLQUdFCi0r IyBhbmQgVkVSU0lPTiBzaG91bGQgbm93IGJlIHBhc3NlZCB0byBBQ19JTklUIGFuZCByZW1vdmVk IGZyb20KLSsjIHRoZSBjYWxsIHRvIEFNX0lOSVRfQVVUT01BS0UuCi0rIyBXZSBzdXBwb3J0IGJv dGggY2FsbCBzdHlsZXMgZm9yIHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIKLSsjIHRoZSBuZXh0IEF1 dG9tYWtlIHJlbGVhc2UsIEF1dG9jb25mIGNhbiBtYWtlIHRoZSBBQ19JTklUCi0rIyBhcmd1bWVu dHMgbWFuZGF0b3J5LCBhbmQgdGhlbiB3ZSBjYW4gZGVwZW5kIG9uIGEgbmV3IEF1dG9jb25mCi0r IyByZWxlYXNlIGFuZCBkcm9wIHRoZSBvbGQgY2FsbCBzdXBwb3J0LgotK0FDX0RFRlVOKFtBTV9J TklUX0FVVE9NQUtFXSwKLStbQUNfUFJFUkVRKFsyLjYwXSlkbmwKLStkbmwgQXV0b2NvbmYgd2Fu dHMgdG8gZGlzYWxsb3cgQU1fIG5hbWVzLiAgV2UgZXhwbGljaXRseSBhbGxvdwotK2RubCB0aGUg b25lcyB3ZSBjYXJlIGFib3V0LgotK200X3BhdHRlcm5fYWxsb3coW15BTV9bQS1aXStGTEFHUyRd KWRubAotK0FDX1JFUVVJUkUoW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dKWRubAot K0FDX1JFUVVJUkUoW0FDX1BST0dfSU5TVEFMTF0pZG5sCi0raWYgdGVzdCAiYGNkICRzcmNkaXIg JiYgcHdkYCIgIT0gImBwd2RgIjsgdGhlbgotKyAgIyBVc2UgLUkkKHNyY2Rpcikgb25seSB3aGVu ICQoc3JjZGlyKSAhPSAuLCBzbyB0aGF0IG1ha2UncyBvdXRwdXQKLSsgICMgaXMgbm90IHBvbGx1 dGVkIHdpdGggcmVwZWF0ZWQgIi1JLiIKLSsgIEFDX1NVQlNUKFthbV9faXNyY10sIFsnIC1JJChz cmNkaXIpJ10pX0FNX1NVQlNUX05PVE1BS0UoW2FtX19pc3JjXSlkbmwKLSsgICMgdGVzdCB0byBz ZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2Nv bmZpZy5zdGF0dXM7IHRoZW4KLSsgICAgQUNfTVNHX0VSUk9SKFtzb3VyY2UgZGlyZWN0b3J5IGFs cmVhZHkgY29uZmlndXJlZDsgcnVuICJtYWtlIGRpc3RjbGVhbiIgdGhlcmUgZmlyc3RdKQotKyAg ZmkKLStmaQotKwotKyMgdGVzdCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0aAotK2lmIHRlc3QgLXog IiRDWUdQQVRIX1ciOyB0aGVuCi0rICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwg Mj4vZGV2L251bGw7IHRoZW4KLSsgICAgQ1lHUEFUSF9XPSdjeWdwYXRoIC13JwotKyAgZWxzZQot KyAgICBDWUdQQVRIX1c9ZWNobwotKyAgZmkKLStmaQotK0FDX1NVQlNUKFtDWUdQQVRIX1ddKQot KwotKyMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KLStkbmwgRGlzdGluZ3Vp c2ggYmV0d2VlbiBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4KLSttNF9pZnZhbChbJDJd LAotK1ttNF9pZnZhbChbJDNdLCBbX0FNX1NFVF9PUFRJT04oW25vLWRlZmluZV0pXSlkbmwKLSsg QUNfU1VCU1QoW1BBQ0tBR0VdLCBbJDFdKWRubAotKyBBQ19TVUJTVChbVkVSU0lPTl0sIFskMl0p XSwKLStbX0FNX1NFVF9PUFRJT05TKFskMV0pZG5sCi0rZG5sIERpYWdub3NlIG9sZC1zdHlsZSBB Q19JTklUIHdpdGggbmV3LXN0eWxlIEFNX0FVVE9NQUtFX0lOSVQuCi0rbTRfaWYobTRfaWZkZWYo W0FDX1BBQ0tBR0VfTkFNRV0sIDEpbTRfaWZkZWYoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIDEpLCAx MSwsCi0rICBbbTRfZmF0YWwoW0FDX0lOSVQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHBhY2thZ2Ug YW5kIHZlcnNpb24gYXJndW1lbnRzXSldKWRubAotKyBBQ19TVUJTVChbUEFDS0FHRV0sIFsnQUNf UEFDS0FHRV9UQVJOQU1FJ10pZG5sCi0rIEFDX1NVQlNUKFtWRVJTSU9OXSwgWydBQ19QQUNLQUdF X1ZFUlNJT04nXSldKWRubAotKwotK19BTV9JRl9PUFRJT04oW25vLWRlZmluZV0sLAotK1tBQ19E RUZJTkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIiwgW05hbWUgb2YgcGFja2FnZV0pCi0r IEFDX0RFRklORV9VTlFVT1RFRChWRVJTSU9OLCAiJFZFUlNJT04iLCBbVmVyc2lvbiBudW1iZXIg b2YgcGFja2FnZV0pXSlkbmwKLSsKLSsjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCi0rQUNf UkVRVUlSRShbQU1fU0FOSVRZX0NIRUNLXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19BUkdfUFJPR1JB TV0pZG5sCi0rQU1fTUlTU0lOR19QUk9HKEFDTE9DQUwsIGFjbG9jYWwtJHthbV9fYXBpX3ZlcnNp b259KQotK0FNX01JU1NJTkdfUFJPRyhBVVRPQ09ORiwgYXV0b2NvbmYpCi0rQU1fTUlTU0lOR19Q Uk9HKEFVVE9NQUtFLCBhdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0pCi0rQU1fTUlTU0lOR19Q Uk9HKEFVVE9IRUFERVIsIGF1dG9oZWFkZXIpCi0rQU1fTUlTU0lOR19QUk9HKE1BS0VJTkZPLCBt YWtlaW5mbykKLStBTV9QUk9HX0lOU1RBTExfU0gKLStBTV9QUk9HX0lOU1RBTExfU1RSSVAKLStB Q19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAotKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAi Y2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCi0rIyBzb21lIHBsYXRm b3Jtcy4KLStBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJP R19NQUtFX1NFVF0pZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStf QU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSsgICAg ICAgICAgICAgIFtfQU1fSUZfT1BUSU9OKFt0YXItcGF4XSwgW19BTV9QUk9HX1RBUihbcGF4XSld LAotKwkgICAgICAJCSAgICAgW19BTV9QUk9HX1RBUihbdjddKV0pXSkKLStfQU1fSUZfT1BUSU9O KFtuby1kZXBlbmRlbmNpZXNdLCwKLStbQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ0NdLAot KyAgICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCi0rICAgICAgICAgICAg ICAgICAgW2RlZmluZShbQUNfUFJPR19DQ10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBk ZWZuKFtBQ19QUk9HX0NDXSlbX0FNX0RFUEVOREVOQ0lFUyhDQyldKV0pZG5sCi0rQUNfUFJPVklE RV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKLSsgICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVO Q0lFUyhDWFgpXSwKLSsgICAgICAgICAgICAgICAgICBbZGVmaW5lKFtBQ19QUk9HX0NYWF0sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRF TkNJRVMoQ1hYKV0pXSlkbmwKLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwKLSsg ICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0sCi0rICAgICAgICAgICAg ICAgICAgW2RlZmluZShbQUNfUFJPR19PQkpDXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IGRlZm4oW0FDX1BST0dfT0JKQ10pW19BTV9ERVBFTkRFTkNJRVMoT0JKQyldKV0pZG5sCi0rXSkK LStdKQotKwotKwotKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2Ug bXVzdCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KLSsjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRo ZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgotKyMgdGhhdCBpcyBnZW5lcmF0 ZWQuICBUaGUgc3RhbXAgZmlsZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVz LgotKwotKyMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBk ZWZpbmVkKSBpbiB0aGUKLSsjIGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBo ZWFkZXJzLCBzbyB3ZSBjYW4gZ2VuZXJhdGUKLSsjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KLStB Q19ERUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCi0rWyMgQ29tcHV0ZSAkMSdzIGlu ZGV4IGluICRjb25maWdfaGVhZGVycy4KLStfYW1fYXJnPSQxCi0rX2FtX3N0YW1wX2NvdW50PTEK LStmb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KLSsgIGNhc2UgJF9hbV9o ZWFkZXIgaW4KLSsgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKLSsgICAgICBicmVhayA7Owot KyAgICAqICkKLSsgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCAr IDFgIDs7Ci0rICBlc2FjCi0rZG9uZQotK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5g QVNfRElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKLSsK LSsjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBBTV9QUk9HX0lOU1RB TExfU0gKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGVmaW5lICRpbnN0YWxsX3NoLgotK0FD X0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU0hdLAotK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VY UEFORF0pZG5sCi0raW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIlwkKFNIRUxMKSAkYW1fYXV4X2Rp ci9pbnN0YWxsLXNoIn0KLStBQ19TVUJTVChpbnN0YWxsX3NoKV0pCi0rCi0rIyBDb3B5cmlnaHQg KEMpIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDIKLSsKLSsjIENoZWNrIHdoZXRoZXIgdGhl IHVuZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCi0rIyB3aXRoIGEgbGVh ZGluZyBkb3QuICBGb3IgaW5zdGFuY2UgTVMtRE9TIGRvZXNuJ3QuCi0rQUNfREVGVU4oW0FNX1NF VF9MRUFESU5HX0RPVF0sCi0rW3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCi0rbWtkaXIgLnRzdCAy Pi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgotKyAgYW1fX2xlYWRpbmdfZG90PS4K LStlbHNlCi0rICBhbV9fbGVhZGluZ19kb3Q9XwotK2ZpCi0rcm1kaXIgLnRzdCAyPi9kZXYvbnVs bAotK0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0pCi0rCi0rIyBDaGVjayB0byBzZWUgaG93 ICdtYWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsK LSsjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwg MwotKwotKyMgQU1fTUFLRV9JTkNMVURFKCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVj ayB0byBzZWUgaG93IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgotK0FDX0RFRlVOKFtBTV9NQUtFX0lO Q0xVREVdLAotK1thbV9tYWtlPSR7TUFLRS1tYWtlfQotK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcK LSthbV9fZG9pdDoKLSsJQGVjaG8gZG9uZQotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElm IHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhl IGNvZGUuCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRh bV9tYWtlXSkKLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25l Ci0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNv bmZpbmMiID4gY29uZm1mCi0rIyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQg YExlYXZpbmcgZGlyZWN0b3J5JwotKyMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBl bmRzIHVwIGluIE1BS0VGTEFHUy4KLSsjIEluIHBhcnRpY3VsYXIgd2UgZG9uJ3QgbG9vayBhdCBg Xm1ha2U6JyBiZWNhdXNlIEdOVSBtYWtlIG1pZ2h0Ci0rIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUg b3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKLSsjIGNhc2UgaXQgcHJpbnRz IGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KLStpZiB0ZXN0ICJgJGFtX21ha2UgLXMg LWYgY29uZm1mIDI+IC9kZXYvbnVsbCB8IGdyZXAgLXYgJ2luZyBkaXJlY3RvcnknYCIgPSAiZG9u ZSI7IHRoZW4KLSsgICBhbV9faW5jbHVkZT1pbmNsdWRlCi0rICAgYW1fX3F1b3RlPQotKyAgIF9h bV9yZXN1bHQ9R05VCi0rZmkKLSsjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStp ZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCi0rICAgZWNobyAnLmluY2x1ZGUgImNv bmZpbmMiJyA+IGNvbmZtZgotKyAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4g L2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KLSsgICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQot KyAgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICAgX2FtX3Jlc3VsdD1CU0QKLSsgICBmaQotK2Zp Ci0rQUNfU1VCU1QoW2FtX19pbmNsdWRlXSkKLStBQ19TVUJTVChbYW1fX3F1b3RlXSkKLStBQ19N U0dfUkVTVUxUKFskX2FtX3Jlc3VsdF0pCi0rcm0gLWYgY29uZmluYyBjb25mbWYKLStdKQotKwot KyMgRmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dyYW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVz ZS4gIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NywgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNQotKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgNQotKwotKyMgQU1f TUlTU0lOR19QUk9HKE5BTUUsIFBST0dSQU0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLStBQ19ERUZVTihbQU1fTUlTU0lOR19QUk9HXSwKLStbQUNfUkVRVUlSRShbQU1fTUlT U0lOR19IQVNfUlVOXSkKLSskMT0keyQxLSIke2FtX21pc3NpbmdfcnVufSQyIn0KLStBQ19TVUJT VCgkMSldKQotKwotKwotKyMgQU1fTUlTU0lOR19IQVNfUlVOCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0KLSsjIERlZmluZSBNSVNTSU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZhciBhbmQgdGVzdCBpZiBp dCBzdXBwb3J0cyAtLXJ1bi4KLSsjIElmIGl0IGRvZXMsIHNldCBhbV9taXNzaW5nX3J1biB0byB1 c2UgaXQsIG90aGVyd2lzZSwgdG8gbm90aGluZy4KLStBQ19ERUZVTihbQU1fTUlTU0lOR19IQVNf UlVOXSwKLStbQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotK0FDX1JFUVVJUkVf QVVYX0ZJTEUoW21pc3NpbmddKWRubAotK3Rlc3QgeCIke01JU1NJTkcrc2V0fSIgPSB4c2V0IHx8 IE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgotKyMgVXNlIGV2YWwgdG8g ZXhwYW5kICRTSEVMTAotK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCi0rICBh bV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotK2Vsc2UKLSsgIGFtX21pc3NpbmdfcnVu PQotKyAgQUNfTVNHX1dBUk4oW2BtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5n XSkKLStmaQotK10pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgotKwotKyMgQU1fUFJPR19NS0RJUl9QCi0rIyAtLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGZv ciBgbWtkaXIgLXAnLgotK0FDX0RFRlVOKFtBTV9QUk9HX01LRElSX1BdLAotK1tBQ19QUkVSRVEo WzIuNjBdKWRubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJfUF0pZG5sCi0rZG5sIEF1dG9t YWtlIDEuOCB0byAxLjkuNiB1c2VkIHRvIGRlZmluZSBta2Rpcl9wLiAgV2Ugbm93IHVzZSBNS0RJ Ul9QLAotK2RubCB3aGlsZSBrZWVwaW5nIGEgZGVmaW5pdGlvbiBvZiBta2Rpcl9wIGZvciBiYWNr d2FyZCBjb21wYXRpYmlsaXR5LgotK2RubCBATUtESVJfUEAgaXMgbWFnaWM6IEFDX09VVFBVVCBh ZGp1c3RzIGl0cyB2YWx1ZSBmb3IgZWFjaCBNYWtlZmlsZS4KLStkbmwgSG93ZXZlciB3ZSBjYW5u b3QgZGVmaW5lIG1rZGlyX3AgYXMgJChNS0RJUl9QKSBmb3IgdGhlIHNha2Ugb2YKLStkbmwgTWFr ZWZpbGUuaW5zIHRoYXQgZG8gbm90IGRlZmluZSBNS0RJUl9QLCBzbyB3ZSBkbyBvdXIgb3duCi0r ZG5sIGFkanVzdG1lbnQgdXNpbmcgdG9wX2J1aWxkZGlyICh3aGljaCBpcyBkZWZpbmVkIG1vcmUg b2Z0ZW4gdGhhbgotK2RubCBNS0RJUl9QKS4KLStBQ19TVUJTVChbbWtkaXJfcF0sIFsiJE1LRElS X1AiXSlkbmwKLStjYXNlICRta2Rpcl9wIGluCi0rICBbW1xcLyRdXSogfCA/OltbXFwvXV0qKSA7 OwotKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7OwotK2VzYWMK LStdKQotKwotKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAg ICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMjAwMSwg MjAwMiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgMwotKwotKyMgX0FNX01BTkdMRV9PUFRJ T04oTkFNRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19BTV9NQU5H TEVfT1BUSU9OXSwKLStbW19BTV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05 X11dLCBbX10pXSkKLSsKLSsjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSsjIFNldCBvcHRpb24gTkFNRS4gIFByZXNlbnRseSB0aGF0IG9u bHkgbWVhbnMgZGVmaW5pbmcgYSBmbGFnIGZvciB0aGlzIG9wdGlvbi4KLStBQ19ERUZVTihbX0FN X1NFVF9PUFRJT05dLAotK1ttNF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkK LSsKLSsjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgT1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1 dG9tYWtlIG9wdGlvbnMuCi0rQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCi0rW0FDX0ZPUkVB Q0goW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0r Ci0rIyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNF VCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLStBQ19ERUZVTihbX0FN X0lGX09QVElPTl0sCi0rW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBb JDNdKV0pCi0rCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1l bnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2 LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA0Ci0rCi0r IyBBTV9TQU5JVFlfQ0hFQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9TQU5J VFlfQ0hFQ0tdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQg aXMgc2FuZV0pCi0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBj b25mdGVzdC5maWxlCi0rIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2Ji ZXIgdGhlIGN1cnJlbnQgc2hlbGwncwotKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3Qg aW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotKyMgc3ltbGluazsgc29tZSBzeXN0ZW1z IHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKLSsjIChlZyBG cmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZwot KyMgZGlyZWN0b3J5KS4KLStpZiAoCi0rICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3Vy ZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsg dGhlbgotKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCi0rICAgICAgc2V0IFggYGxzIC10ICRzcmNk aXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5m aWxlCi0rICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3Qu ZmlsZSIgXAotKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rp ci9jb25maWd1cmUiOyB0aGVuCi0rCi0rICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4g d2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYsIGZvciBp bnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsgICAgICAj IGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5 Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVy ZWQgInNhbmUiLgotKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAg TWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1l bnRdKQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCi0rICAgKQot K3RoZW4KLSsgICAjIE9rLgotKyAgIDoKLStlbHNlCi0rICAgQUNfTVNHX0VSUk9SKFtuZXdseSBj cmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3Vy IHN5c3RlbSBjbG9ja10pCi0rZmkKLStBQ19NU0dfUkVTVUxUKHllcyldKQotKwotKyMgQ29weXJp Z2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3Rh bGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKLSsjIHNwZWNpZnkgdGhlIHByb2dyYW0g dXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQotKyMgYW5ub3lpbmcg aW4gY3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAK LSsjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgotKyMgRm9ydHVu YXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQot KyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5p dGlhbGl6ZQotKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJs ZSAoc2V0IGJ5IHRoZSB1c2VyKS4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwK LStbQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKLSsjIEluc3RhbGxlZCBiaW5h cmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSsj IHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUg dGhlIHJpZ2h0Ci0rIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVu dHMsIHRoZXJlZm9yZSBBdXRvbWFrZQotKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9u bWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCi0rZG5sIERvbid0IHRlc3Qg Zm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4K LStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgotKyAgQUNfQ0hFQ0tfVE9P TChbU1RSSVBdLCBbc3RyaXBdLCA6KQotK2ZpCi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChp bnN0YWxsX3NoKSAtYyAtcyIKLStBQ19TVUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQot KwotKyMgQ29weXJpZ2h0IChDKSAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklB QkxFKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQcmV2ZW50IEF1dG9tYWtl IGZyb20gb3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCi0r IyBUaGlzIG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KLStBQ19ERUZVTihbX0FNX1NVQlNU X05PVE1BS0VdKQotKwotKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykg MjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBm aWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0r IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgMgotKwotKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFs bCBpbiBmb3JtYXQgRk9STUFULgotKyMgRk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVz dGFyJywgb3IgYHBheCcuCi0rIwotKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3Rhcikg dGhhdCBpcyBhIGNvbW1hbmQKLSsjIHdyaXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwg Y29udGFpbmluZyB0aGUgZGlyZWN0b3J5Ci0rIyAkdGFyZGlyLgotKyMgICAgIHRhcmRpcj1kaXJl Y3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKLSsjCi0rIyBTdWJzdGl0dXRlIGEgdmFy aWFibGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFjdCBzdWNoCi0rIyBhIHRhcmJhbGwgcmVhZCBm cm9tIHN0ZGluLgotKyMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKLStBQ19ERUZVTihb X0FNX1BST0dfVEFSXSwKLStbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21w YXRpYmlsaXR5LgotK0FNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKLSttNF9pZihbJDFd LCBbdjddLAotKyAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1f X3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCi0rICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwg W3BheF0sLAotKyAgICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0p Ci0rQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQotKyMg TG9vcCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGls IG9uZSB3b3Jrcy4KLStfYW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxh aW50YXJdKSBwYXggY3BpbyBub25lJwotK19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRf YW1fdG9vbHN9Ci0rIyBEbyBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJl Y2F1c2UgVHJ1NjQgc2ggYW5kCi0rIyBTb2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGlu IHRoZSByaHMgb2YgYC0nLgotK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCi0rZG8KLSsgIGNh c2UgJF9hbV90b29sIGluCi0rICBnbnV0YXIpCi0rICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0 YXIgZ3RhcjsKLSsgICAgZG8KLSsgICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25d KSAmJiBicmVhawotKyAgICBkb25lCi0rICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00 X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJwotKyAg ICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0s IFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYg LSIKLSsgICAgOzsKLSsgIHBsYWludGFyKQotKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBp dCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQotKyAgICAjIHVz dGFyIHRhcmJhbGwgZWl0aGVyLgotKyAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYx ICYmIGNvbnRpbnVlCi0rICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJwotKyAgICBh bV9fdGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFyPSd0YXIgeGYgLScK LSsgICAgOzsKLSsgIHBheCkKLSsgICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRp ciInCi0rICAgIGFtX190YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJkaXIiJwotKyAgICBhbV9f dW50YXI9J3BheCAtcicKLSsgICAgOzsKLSsgIGNwaW8pCi0rICAgIGFtX190YXI9J2ZpbmQgIiQk dGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1MJwotKyAgICBhbV9fdGFyXz0nZmluZCAi JHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSsgICAgYW1fX3VudGFyPSdjcGlv IC1pIC1IICQxIC1kJwotKyAgICA7OwotKyAgbm9uZSkKLSsgICAgYW1fX3Rhcj1mYWxzZQotKyAg ICBhbV9fdGFyXz1mYWxzZQotKyAgICBhbV9fdW50YXI9ZmFsc2UKLSsgICAgOzsKLSsgIGVzYWMK LSsKLSsgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50 ZWQgdG8gaGF2ZSBhbV9fdGFyCi0rICAjIGFuZCBhbV9fdW50YXIgc2V0LgotKyAgdGVzdCAtbiAi JHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCi0rCi0rICAjIHRhci91bnRhciBhIGR1bW15 IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MKLSsgIHJtIC1yZiBjb25m dGVzdC5kaXIKLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAgZWNobyBHcmVwTWUgPiBjb25mdGVz dC5kaXIvZmlsZQotKyAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRh bV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLSsgIGlmIHRl c3QgLXMgY29uZnRlc3QudGFyOyB0aGVuCi0rICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNv bmZ0ZXN0LnRhcl0pCi0rICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251 bGwgMj4mMSAmJiBicmVhawotKyAgZmkKLStkb25lCi0rcm0gLXJmIGNvbmZ0ZXN0LmRpcgotKwot K0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9h bV90b29sXSkKLStBQ19NU0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCi0rQUNfU1VC U1QoW2FtX190YXJdKQotK0FDX1NVQlNUKFthbV9fdW50YXJdKQotK10pICMgX0FNX1BST0dfVEFS Ci0rCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4X2Jvb3N0Lm00XSkKLSttNF9pbmNsdWRlKFtjb25m aWcvYXhfbXlzcWwubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkK LSttNF9pbmNsdWRlKFtjb25maWcvYXhfcG9zdGdyZXNxbC5tNF0pCi0rbTRfaW5jbHVkZShbY29u ZmlnL2NwcHVuaXQubTRdKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0FVVEhPUlMgc29j aS0zLjAuMF90cmVwMzAwL0FVVEhPUlMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L0FVVEhPUlMJMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs OSBAQAotKwotK0RhdmlkIENvdXJ0bmV5LCBEZXZlbG9wZXIsIGRhY291cnRuZXkgYXQgdXNlcnMu c291cmNlZm9yZ2UubmV0Ci0rTWF0ZXVzeiBMb3Nrb3QsIERldmVsb3BlciwgbWxvc2tvdCBhdCB1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStNYWNpZWogU29iY3phaywgQWRtaW4gUHJvamVjdCBNYW5h Z2VyLCBtc29iY3phayBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStQYXdlbCBBbGVrc2FuZGVy IEZlZG9yeW5za2ksIERldmVsb3BlciwgcGZlZG9yIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAot K1JhZmFsIEJvYnJvd3NraSwgRGV2ZWxvcGVyLCByYm9icm8gYXQgdXNlcnMuc291cmNlZm9yZ2Uu bmV0Ci0rSmVhbi1NYXJjLCBEZXZlbG9wZXIsIHNpZGp0YWwgYXQgdXNlcnMuc291cmNlZm9yZ2Uu bmV0Ci0rU3RlcGhlbiBIdXR0b24sIERldmVsb3Blciwgc3RlcGhlbmh1dHRvbiBhdCB1c2Vycy5z b3VyY2Vmb3JnZS5uZXQKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtl ZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9idWlsZC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5hbQkyMDA5LTA0 LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw3IEBACi0rIyMgYnVpbGQg c3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IHVuaXgg bXN2YzgwCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4g c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svYnVpbGQvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMToz MTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTM1IEBACi0rIyBNYWtlZmlsZS5pbiBn ZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmln dXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs Ci0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStw a2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAot K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNU QUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9V TklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9IFJFQURNRSAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNk aXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5p dC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNM T0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFE RVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9 Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1y ZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2 ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmkt cmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJz aXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5z dGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVj dXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJz aXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2 ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0 YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01N T04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9 IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFV VE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFL RUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1Rf REFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1f TElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9P U1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JF R0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lH TkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC QAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9E RSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZM QUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQ UFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklU X0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hY QAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZM QUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZT QAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBF Q0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBA RUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3 N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExA Ci0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBM REZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9 IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01B S0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1Ig PSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05G SUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNR TF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdS RVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05A Ci0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQg PSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJ UCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9O ID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGly ID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAot K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0ND QAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSth bV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRp bmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAot K2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBi dWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRf Y3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5k b3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFy b290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBA ZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAot K2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dz X29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNA Ci0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVu ZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0g QGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFs bF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4 ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3Rh dGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBA bWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBk ZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5k aXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRp ckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJn ZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxk X3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBA dG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3Jj ZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gdW5p eCBtc3ZjODAKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIp L01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAot KwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAot KwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2ggXAotKwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgIGJ1aWxkL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAk KEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0r TWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7 IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19T VEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9t NF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwot K2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0 b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAot KyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1h a2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5z dGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0 IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2gg d2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBg bWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhl IGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29t PSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQk ZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFp bD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0 YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAot KwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsg XAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsg XAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rh cmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAi JCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAi JCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBk aXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7 OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBc Ci0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAg ZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAg KGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBc Ci0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0r dGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1Ap ICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRw eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwot KwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhl cmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4v ZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRl OyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1p bmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAu OyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkg ICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7 IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVl IiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwK LSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1 bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykg JChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhl cmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bf c3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0 Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRh Z3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJp cD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc Ci0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAk JGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJz dHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWls ZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJ Ul9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChk aXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2Fj OyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRm aWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwK LSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRm aWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNk aXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAt cFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBm aTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsg XAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8 fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsg XAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChN S0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAg ICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlz dGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1 YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0 b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRp ci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVj dXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1 cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vy c2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0r CSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1f RU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6 Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXog IiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0r Ci0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGlu dGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVz IHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXog IiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVT KQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBj bGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVj dXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStk dmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2 ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBp bnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1o dG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWlu Zm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwt cGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4t cmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3Rj bGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5 Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwot Ky5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBp bnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0r CWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlk aXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBc Ci0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEg XAotKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1l eGVjIFwKLSsJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5z dGFsbC1pbmZvIFwKLSsJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGlu c3RhbGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAg aW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJz LWFtIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFs bC1hbQotKwotK0BTRVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05V IG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVt IGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCi0tLS0gc29j aS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3Zj ODAvZGxsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDExIEBACi0rIyMgYnVpbGQvbXN2YzgwL2RsbCBzdWItZGlyZWN0b3J5Ci0raW5j bHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotKwotK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KLSsKLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJv aiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9zdGdyZXNx bF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZpcmViaXJk X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKLSsJcG9z dGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9q IFwKLSsJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwu c2xuIFwKLSsJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUu dmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv ZGxsL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9N YWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6 MzE6NDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDM4MyBAQAotKyMgTWFrZWZpbGUuaW4g Z2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZp Z3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5Nywg MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYs IDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtl ZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMg UEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0r cGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIp L0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2Ft X19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QK LStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hf UFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFs bF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9 ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5T VEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVf VU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVp bGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFr ZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KLStzdWJkaXIgPSBidWlsZC9tc3ZjODAvZGxsCi0rQUNMT0NBTF9NNCA9ICQodG9w X3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9j cHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NB TCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0g QEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRP TUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9P U1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNU RU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBA Qk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NU X1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1Rf U0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQ TU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQ UEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAot K0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBV TklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBA Q1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NY WEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBE RUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9 IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1Qg PSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0g QEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RB TExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBA SU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lO U1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9 IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9P TCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAot K01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxB R1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlT UUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AK LStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStP QkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9P Q0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBP UkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVS U0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FH RV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NU UklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJO QU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFU T1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19D T05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdS RVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9T VEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJ T05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStT RUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NP Q0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStT VFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJT SU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3Jj ZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGly QAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0 X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AK LSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xl YWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFy QAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9 IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVp bGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92 ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2Rh dGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIg PSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGly QAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAot K2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxp YXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3Rf dmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGly ID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5z dGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xp YmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fs c3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3Ag PSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0g QHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBA cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNi aW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0 ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0 YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1 aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIg PSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bf c3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNU ID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVz cWwudmNwcm9qIFwKLSsJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9q IGNsZWFuLmJhdCBcCi0rCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNw cm9qIG9kYmMudmNwcm9qIFwKLSsJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29y ZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKLSsJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFj bGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKLSsJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190 ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKLSsKLSthbGw6 IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0 IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2Rs bC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkg LS1nbnUgIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0r TWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7 IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19T VEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9t NF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwot K2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSt0YWdzOiBUQUdTCi0rVEFH UzoKLSsKLStjdGFnczogQ1RBR1MKLStDVEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxF UykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK LSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc Ci0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAk KHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZp bGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAt ZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRp cikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVj ay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3Rh bGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3Rh bGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdl bmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5k IGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVz IGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRl c3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVB TkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNs ZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQot Kwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5l cmljCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwot K2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStp bnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5z dGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5m by1hbQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQot KwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0r bWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUK LSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFt Ci0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1h bToKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBc Ci0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGly IGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFs bC1hbSBcCi0rCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFs bC1kdmktYW0gXAotKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBp bnN0YWxsLWh0bWwtYW0gXAotKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwt bWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBz LWFtIGluc3RhbGwtc3RyaXAgXAotKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3Rh bGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRm IHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAot KyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFs bCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxl YXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9t c3ZjODAvbGliL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAw OS0wNC0xNiAxOTozNzowNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTEgQEAKLSsjIyBi dWlsZC9tc3ZjODAvbGliIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwot K0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rl c3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNf dGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0 X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUz LnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwu dmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAotKwllbXB0eV90ZXN0LnZj cHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9w cwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUu aW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21z dmM4MC9saWIvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsMzgzIEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0r Ci0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hf VkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQo aW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3No KSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVB REVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9u YW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFM TCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9V TklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBA aG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1 aWxkL21zdmM4MC9saWIKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0r YW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdy ZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGly KS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2Rl cHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0 YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRk aXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK1NPVVJDRVMgPQotK0RJ U1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIg PSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0r Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAot K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0g QEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStD RkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0r Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQ UEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0r Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJ UkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStFQ0hPID0gQEVDSE9ACi0rRUNIT19DID0gQEVD SE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBA RUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGNzcgPSBARjc3QAotK0ZGTEFHUyA9IEBGRkxB R1NACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05A Ci0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBA SU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5T VEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0g QElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9 IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTE5fUyA9 IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9A Ci0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0r TVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNA Ci0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlT UUxfVkVSU0lPTkAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JB Q0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09D SV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStP UkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFD S0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdF X05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5H QAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9O ID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAK LStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NG TEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNR TF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9T VEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElC QAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0Ug PSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBT T0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9N WVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9B RF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNf YnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSth YnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBA YWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFj X2N0X0NYWEAKLSthY19jdF9GNzcgPSBAYWNfY3RfRjc3QAotK2FtX19pbmNsdWRlID0gQGFtX19p bmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3Rl ID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191 bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFz ID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBA YnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBi dWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3Rk aXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9v ayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNf b2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9z dCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0 X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JA Ci0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZv ZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0g QGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGly QAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRl ZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1 ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBw cmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l QAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2Vk X29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNk aXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRf YWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWls ZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQ UEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNw cm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jl c3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJp cmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlw b3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3By b2ogXAotKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xp Yi5zbG4gXAotKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNs ZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVT OgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAg aW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAg ICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7 OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYm ICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlJzsgXAotKwljZCAk KHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01h a2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4g XAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVj aG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6 ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK21vc3Rs eWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJt IC1yZiAubGlicyBfbGlicwotK3RhZ3M6IFRBR1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwot K0NUQUdTOgotKwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBc Ci0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAg ICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK LSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwg ZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwK LSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwg ZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazog Y2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5z dGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBp bnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06 IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1z dHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5l cmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFu LWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVh bi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rp c3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQot KwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2lu Zm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2 aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46 Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wczogaW5zdGFs bC1wcy1hbQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWlu dGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06 IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjog bW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6 IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxs LWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVh bi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwg aHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRh IGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwt ZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWlu c3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlp bnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0r CWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVh biBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1n ZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5z dGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5 LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVy d2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4K LSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01h a2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2 YzgwL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDggQEAKLSsjIyBidWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rCi0r U1VCRElSUyA9IGRsbCBsaWIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3Zj ODAvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5p bgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWls ZC9tc3ZjODAvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsNTM2IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0r Ci0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hf VkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQo aW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3No KSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVB REVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9u YW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFM TCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9V TklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBA aG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1 aWxkL21zdmM4MAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9f YWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3Fs Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykg JChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxk aXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikv c29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9T T1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVh bi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0g JChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0g QEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZM QUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBA Ci0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJA Ci0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hP X0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVH UkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdT QAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAot K0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElO U1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RB TExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJ TlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBA TElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBA TE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAot K01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01Z U1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAot K01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tB R0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK LStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0r UEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAK LStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0g QFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5j bHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9 IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50 YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9 IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1 aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVp bGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGly QAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sg PSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29r QAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3Qg PSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9j cHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAot K2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2Rp ciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBs YXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAK LStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRp ckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRl ZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJl Zml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAK LStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9v a0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGly QAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2Fs aWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRk aXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBG TEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUID0gUkVBRE1FLnR4dCBzb2NpLnZzcHJv cHMKLStTVUJESVJTID0gZGxsIGxpYgotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhF UzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVw IGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAg ICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAx OzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAm JiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlJzsgXAotKwljZCAkKHRv cF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2Vm aWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUu aW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAg KmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0r JCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChB Q0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4t bGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5s aWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0 bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3 aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFs dWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0r IyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNv bmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBi ZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBh c3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVD VVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNv bTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0r CSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJ Zmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJ QGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkg IGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWls Y29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5v OyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFu LSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUykn IDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIk JHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7 IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3Vi ZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0r CWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAot Kwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAk KEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQg LWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxF UykgJChMSVNQKQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAt LWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGlu Y2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVs c2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwK LSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3Qg ISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9v cHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBl bHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0r CSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykg XAotKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6 IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJ RVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVz dCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChD VEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFn cyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIp ICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQo R1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElE IEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMp Ci0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0r CSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8 IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xe JCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0 X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBc Ci0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAot KwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmls ZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBk PS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0 aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdg OyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChz cmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGly KSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxl ICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYg JChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIp LyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9 JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRp cikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRp cikgJiYgcHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGly KSAmJiBwd2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwK LSsJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVf ZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0 ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1h bTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUKLStp bnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0raW5z dGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1 cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6 IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAot KwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGlu c3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlz dGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJt IC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK LSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwg cm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0r Ci0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQot KwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0r Ci0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJz aXZlCi0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwt ZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5z dGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFu OgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUK LSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNs ZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6 IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3Bz LWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAK LSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdF VFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNs ZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRh Z3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0 YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwt ZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1h bSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMg aW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVj ay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAot Kwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vy c2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtl ZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv YnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9yeQotK2luY2x1 ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50 Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1w YXJhbWV0ZXJzLnRjbAotKwotK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFj bGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCi0rCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZp bmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCi0rCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4 ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1 aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkyMDA5LTA1LTA2 IDAxOjMxOjQ3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzODMgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK LSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGly QAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGli ZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAK LSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYm IGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxs X3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGlu c3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zv cm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJF X0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0r UFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0g QGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIp L01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gYnVpbGQvdW5peAotK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9 ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQo QUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19I RUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxF UyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwg PSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBB VVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01B S0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1P REUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBG TEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStD UFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5J VF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENY WEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhG TEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVG U0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBA RUNIT0AKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0g QEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBG NzdACi0rRkZMQUdTID0gQEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxM QAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBA TERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wg PSBATElCVE9PTEAKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStN QUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FM X0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0r TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JK RVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09O RklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VE ID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RS SVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lP TiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK LSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9D Q0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0r YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAK LSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBA YnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0g QGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAK LStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStn c19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0g QG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBw ZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHBy b2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmlu ZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVk aXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFy Z2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWls ZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0g QHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3Ny Y2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlz cWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUu dGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAotK0VYVFJBX0RJU1QgPSBi dWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCi0r CXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCi0r CWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsg ZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVw KikgXAotKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2ggXAotKwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJ ICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRP TUFLRSkgLS1nbnUgIGJ1aWxkL3VuaXgvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2Rpcikg JiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC91bml4L01ha2VmaWxlCi0rLlBSRUNJ T1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNh YzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0r dGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlz dGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQo dG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSck KERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBl Y2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIg XAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJg OyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8g IiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtz LC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3Ig ZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0 IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVz dCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQg LWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUg JiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGly KS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAg IGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNl IFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTog TWFrZWZpbGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3Vu aW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5z dGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg XAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNU QUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAg ZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwK LSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFu LWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVj aG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlA ZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8g cmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYg JChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFu OiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tZ2VuZXJpYwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0 bWw6IGh0bWwtYW0KLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxs LWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1l eGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjog aW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFs bGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJ LXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwot K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK LSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToK LSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAot KwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFu LWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQot KwotK0BTRVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2Ug dG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0 IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9vc3QubTQgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9heF9ib29zdC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9i b29zdC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQJMjAwOS0wNC0xNiAxOTozNzoyMy4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsNTM0IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9CT09TVChbTUlO SU1VTS1WRVJTSU9OXSwgW0FDVElPTi1JRi1GT1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkK LStkbmwKLStkbmwgVGVzdCBmb3IgdGhlIEJvb3N0IEMrKyBsaWJyYXJpZXMgb2YgYSBwYXJ0aWN1 bGFyIHZlcnNpb24gKG9yIG5ld2VyKQotK2RubAotK2RubCBJZiBubyBwYXRoIHRvIHRoZSBpbnN0 YWxsZWQgYm9vc3QgbGlicmFyeSBpcyBnaXZlbiB0aGUgbWFjcm8KLStkbmwgc2VhcmNocyB1bmRl ciAvdXNyLCAvdXNyL2xvY2FsLCBhbmQgL29wdCwgYW5kIGV2YWx1YXRlcyB0aGUKLStkbmwgJEJP T1NUX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gY2Fs bHM6Ci0rZG5sCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKSAvIEFDX1NVQlNUKEJPT1NU X0xJQlMpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCi0rZG5sICAgQUNf U1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9U SFJFQURfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCi0rZG5sICAg QUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1Rf V1NFUklBTElaQVRJT05fTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQot K2RubCAgIEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9P U1RfUkVHRVhfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX0JPT1NUCi0rZG5s ICAgSEFWRV9CT09TVF9GSUxFU1lTVEVNCi0rZG5sICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElP TlMKLStkbmwgICBIQVZFX0JPT1NUX1RIUkVBRAotK2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1T Ci0rZG5sICAgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCi0rZG5sICAgSEFWRV9CT09TVF9TSUdO QUxTCi0rZG5sICAgSEFWRV9CT09TVF9EQVRFX1RJTUUKLStkbmwgICBIQVZFX0JPT1NUX1JFR0VY Ci0rZG5sICAgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCi0rZG5sCi0rZG5sIEBjYXRl Z29yeSBJbnN0YWxsZWRQYWNrYWdlcwotK2RubCBAYXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0 aG9tYXNAcmFuZHNwcmluZ2VyLmRlPgotK2RubCBAdmVyc2lvbiAyMDA2LTAxLTAyCi0rZG5sIEBs aWNlbnNlIEFsbFBlcm1pc3NpdmUKLSsKLStBQ19ERUZVTihbQVhfQk9PU1RdLAotK1sKLSsgICAg QUNfQVJHX1dJVEgoW2Jvb3N0XSwKLSsgICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0t d2l0aC1ib29zdD1ESVJdLAotKyAgICAgICAgICAgICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlz IE5PKSAsIHNwZWNpZnkgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRp b25hbCldKSwKLSsgICAgICAgICAgICAgICAgWwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIk d2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rCQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsg ICAgICAgICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAg ICAgICAgICAgICAgICAgd2FudF9ib29zdD0ieWVzIgotKyAgICAgICAgICAgICAgICAgICAgYWNf Ym9vc3RfcGF0aD0iIgotKyAgICAgICAgICAgICAgICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jv b3N0PSJ5ZXMiCi0rICAgICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAg ICAgICAgZmkKLSsgICAgICAgICAgICAJXSwKLSsgICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9 InllcyJdKQotKwotKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049 IjEtMzMtMSIKLStCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgotKwotKwlpZiB0ZXN0ICJ4 JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZl bHNlKFskMV0sICwxLjIwLjAsJDEpCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1g ZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAot KwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9y ZXEgOiAnXChbWzAtOV1dKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhw ciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKwkJ Ym9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25f cmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsJCWlmIHRlc3QgIngk Ym9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCi0rCQkJYm9vc3Rf bGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKLSsgICAgCWZpCi0rCQlXQU5UX0JPT1NUX1ZF UlNJT049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRi b29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9y ZXFfc3ViX21pbm9yYAotKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxKQotKwkJc3VjY2VlZGVkPW5vCi0rCi0rCQlkbmwgZmlyc3Qgd2UgY2hl Y2sgdGhlIHN5c3RlbSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCi0rCQlkbmwgdGhpcyBs b2NhdGlvbiBpcyBjaG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCi0rCQlk bmwgd2l0aCB0aGUgLS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgotKwkJZG5sIG9yIGlmIHlvdSBpbnN0 YWxsIGJvb3N0IHdpdGggUlBNCi0rCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgotKwkJCUJPT1NU X0xJQkRJUlRZUEU9ImxpYjY0IgotKwkJZWxzZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIK LSsJCWZpCi0rCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsJCQlpZiB0 ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IjsgdGhlbgotKwkJCQlpZiB0ZXN0IC1k ICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0 X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiOyB0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9M SUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAg ICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJ ZmkKLSsJCQllbHNlCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJ CWZpCi0rCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQllbHNl Ci0rCQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0 b29scy9ib29zdCA7IGRvCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNs dWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7 IHRoZW4KLSsJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJE SVJUWVBFIgotKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRl IgotKwkJCQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRo X3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAi JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0 IjsgdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJ QkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgotKwkJCQotKwkJCQkJZG5sIEhhY2sgZm9yIHdy b25nbHkgaW5zdGFsbGVkIEJvb3N0IGxpYnJhcmllcyAoQU1ENjQgbGlicmFyaWVzIGluc3RhbGxl ZCBpbiBib29zdC9saWIgZGlyZWN0b3J5KQotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3Bh dGhfdG1wL2xpYiIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAh IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGliNjQiOyB0aGVuCi0rCQkJCQkJQk9PU1RfTElCUz0i LUwkYWNfYm9vc3RfcGF0aF90bXAvbGliIgotKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJT IgotKwkJCQkJZmkKLSsJCQkJCWJyZWFrOwotKwkJCQlmaQotKwkJCWRvbmUKLSsJCWZpCi0rCi0r CQlDUFBGTEFHU19TQVZFRD0iJENQUEZMQUdTIgotKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9P U1RfQ0ZMQUdTIgotKwkJZXhwb3J0IENQUEZMQUdTCi0rCi0rCQlMREZMQUdTX1NBVkVEPSIkTERG TEFHUyIKLSsJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJZXhwb3J0IExERkxB R1MKLSsKLSsgICAgIAlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCVsKLStAJTpAaW5jbHVkZSA8 Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rXSwKLSsgICAgICAgWwotKyNpZiBCT09TVF9WRVJTSU9OID49 ICRXQU5UX0JPT1NUX1ZFUlNJT04KLSsvLyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMg IGVycm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAotKyNlbmRpZgotKwotKwkJXSwKLSsgICAg CVsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcykKLSsJCSBzdWNjZWVkZWQ9eWVzCi0rCQkg Zm91bmRfc3lzdGVtPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAg ICAgIF0sCi0rICAgICAgIFsKLSsgICAgICAgXSkKLSsKLSsJCWRubCBpZiB3ZSBmb3VuZCBubyBi b29zdCB3aXRoIHN5c3RlbSBsYXlvdXQgd2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKLSsJ CWRubCBidWlsdCBhbmQgaW5zdGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRp b24gb3IgZm9yIGEgc3RhZ2VkKG5vdCBpbnN0YWxsZWQpIHZlcnNpb24KLSsJCWlmIHRlc3QgIngk c3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAi JGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRh Y19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZv ciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxg OyBkbwotKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0 aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJ CQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRl c3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3Rt cAotKwkJCQkJCWZpCi0rCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8 IHNlZCAncy9cLi9fLydgCi0rCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2lu Y2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJ CQllbHNlCi0rCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsg ZG8KLSsJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9v c3RfcGF0aCI7IHRoZW4KLSsJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5j bHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hv ICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3Qt Ly8nIHwgc2VkICdzL18vLi8nYAotKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAg XD4gJF92ZXJzaW9uYAotKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0r CQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jv b3N0X3BhdGgKLSsJCQkJCQkJZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0r Ci0rCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8n YAotKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9O X1VOREVSU0NPUkUiCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElS VFlQRSIKLSsKLSsJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJ CQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRo ZW4KLSsJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdg Ci0rCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3Rf Ly8nIHwgc2VkICdzL18vLi9nJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIg JHN0YWdlX3ZlcnNpb24gOiAnXChbWzAtOV1dKlwuW1swLTldXSpcKSdgCi0rCQkJCQkJVl9DSEVD Sz1gZXhwciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlm IHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3 aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCi0rCQkJCQkJ CUJPT1NUX0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9P U1RfUk9PVC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJ ICAgIAkJZmkKLSsJCQlmaQotKwotKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFH UyIKLSsJCQlleHBvcnQgQ1BQRkxBR1MKLSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElC UyIKLSsJCQlleHBvcnQgTERGTEFHUwotKwotKyAgICAgCQlBQ19UUllfQ09NUElMRSgKLSsgICAg ICAgCQlbCi0rQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAgICAgIFsK LSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGlu ZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsj ZW5kaWYKLSsKLSsJCV0sCi0rICAgIAlbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRf dmVyc2lvbikpCi0rCQkgc3VjY2VlZGVkPXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDos IFskMl0pCi0rICAgICAgIF0sCi0rICAgICAgIFsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKG5v ICgkX3ZlcnNpb24pKQotKyAgICAgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICAgICAg IF0pCi0rCQlmaQotKwotKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCi0r CQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KLSsJCQkJQUNfTVNHX0VSUk9SKFtb V2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9s aWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBi b29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NU X1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0 aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVk LCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lv bi5ocHA+Ll1dKQotKwkJCWVsc2UKLSsJCQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJh cmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3Qg JGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nKQotKwkJCWZpCi0rCQllbHNlCi0rCQkJQUNfU1VC U1QoQk9PU1RfQ0ZMQUdTKQotKwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rCQkJQUNfREVGSU5F KEhBVkVfQk9PU1QsLFtkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkK LSsKLSsJCQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGli cmFyeSBpcyBhdmFpbGFibGVdLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0sCi0r CQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01Q SUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3Rl bS9wYXRoLmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNp bmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVtOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGF0aCBteV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4dCIgKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAJ CQkJICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxlc3lz dGVtPW5vKQotKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlm IHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCQkJCUFDX0RF RklORShIQVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lT VEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQotKwkJ CQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0k Q0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0Mg bGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RM SUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX0ZJTEVTWVNURU1fTElC PSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKSBsaW5rX2ZpbGVzeXN0 ZW09InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5r X2ZpbGVzeXN0ZW09Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmls ZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NI RUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxh YmxlXSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMsCi0rCQkJCQkJICAg W0FDX0xBTkdfU0FWRQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfQ1BMVVNQ TFVTCi0rCQkJICAgICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFN KFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+XV0sCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9wdGlv bnNfZGVzY3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9vc3RfcHJv Z3JhbV9vcHRpb25zPW5vKQotKwkJCSAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQotKwkJ CV0pCi0rCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRo ZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVmaW5lIGlm IHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJ Qk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0Mg JEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQt cyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cg JEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1z ICRCTi1tZ3ctcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0k Qk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwg bWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElC KSBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW2xpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyJdKQotKyAgCQkJCWRvbmUK LSsJCQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVu Ci0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQot KwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6 OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF90aHJl YWQsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBD WFhGTEFHU19TQVZFPSRDWFhGTEFHUwotKwotKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4 c29sYXJpcyIgOyB0aGVuCi0rICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgot KwkJCSBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hY RkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1w dGhyZWFkICRDWFhGTEFHUyIKLSsJCQkgZmkKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPl1dLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6dGhyZWFkX2dyb3VwIHRo cmRzOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAot KyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90 aHJlYWQ9bm8pCi0rCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVT VE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMi OyB0aGVuCi0rICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMi IDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgot KwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkg IEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJ CQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwot KwkJCQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RI UkVBRCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0p Ci0rCQkJCUJOPWJvb3N0X3RocmVhZAotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRC Ti0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRC Ti1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAk Qk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRC T09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwg bWFpbiwgW0JPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfVEhSRUFE X0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3Qg IngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQlBQ19D QUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxh YmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKLSsJCQkJCQlbQUNfTEFOR19T QVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xB TkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVh bS5ocHA+Ci0rCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9y YW5nZS5ocHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOwotKwkJCQkJCQkJ CSBuYW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOwotKwkJCQkJCQkJCSBpbzo6ZmlsdGVy aW5nX2lzdHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Ci0rCQkJ CQkJCQkJIHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0p LAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9i b29zdF9pb3N0cmVhbXM9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYg dGVzdCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RF RklORShIQVZFX0JPT1NUX0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFt cyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwotKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJ CSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIg YnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0i bm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7 IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBC b29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9j dl9ib29zdF9zZXJpYWxpemF0aW9uLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFO R19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6 QGluY2x1ZGUgPGZzdHJlYW0+Ci0rCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9hcmNo aXZlL3RleHRfb2FyY2hpdmUuaHBwPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZl LmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtbc3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFy Y2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCi0rICAgICAgICAgICAgICAgICAg IGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzLCBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9u PW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3Zf Ym9vc3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVf Qk9PU1RfU0VSSUFMSVpBVElPTiwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24g bGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCi0rCQkJ CWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRD Qy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBs aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJ CQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJT VChCT09TVF9TRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJ CQlkb25lCi0rCQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4g JEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRD Qy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNL X0xJQigkYXhfbGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtC T09TVF9XU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfV1NFUklB TElaQVRJT05fTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJ aWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElD RShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwot KwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMg YXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCi0rCQkJCQkJW0FDX0xB TkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShB Q19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KLSsJCQkJCQkJ CQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNp Z25hbDx2b2lkICgpPiBzaWc7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAg ICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2ln bmFscz1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4 X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JP T1NUX1NJR05BTFMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZh aWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rfc2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIo JGF4X2xpYiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJP T1NUX1NJR05BTFNfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJ CQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05P VElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQot KwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFy eSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAotKwkJCQkJ CVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9J RkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVn b3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3Jp YW47IGRhdGUgZCgyMDAyLEphbiwxMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0p LAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBheF9jdl9i b29zdF9kYXRlX3RpbWU9bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYg dGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RF RklORShIQVZFX0JPT1NUX0RBVEVfVElNRSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGlt ZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X2RhdGVfdGltZQotKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJ CSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikgbGlua190aHJlYWQ9InllcyIg YnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0i bm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAi eG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIg dGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9i b29zdF9yZWdleCwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVT Ci0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxi b29zdC9yZWdleC5ocHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKSwKLSsgICAgICAg ICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykK LSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCws W2RlZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJ Qk49Ym9vc3RfcmVnZXgKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10 ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10 IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1z ICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJf TURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtC T09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5r X3RocmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W2xpbmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3Ro cmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNL KHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtB Q19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVM U0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0Lmhw cD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0 Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3Vp dGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1 cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcms9eWVzLCBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPW5vKQotKwkJCSBBQ19M QU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0 X2ZyYW1ld29yayIgPSAieHllcyI7IHRoZW4KLSsgICAgCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1l d29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJQk49Ym9vc3RfdW5pdF90ZXN0X2ZyYW1l d29yawotKyAgICAJCXNhdmVkX2xkZmxhZ3M9IiR7TERGTEFHU30iCi0rCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIk Qk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsgICAg ICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIiCi0rICAgIAkJCUFDX0NB Q0hFX0NIRUNLKHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFy eSwKLSsJICAgICAgCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJ CQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsgICAgICAgICAgICAg ICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rl c3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1 c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0 IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW2xpbmtfdGhyZWFkPSJ5ZXMiXSxbbGlua190aHJlYWQ9Im5vIl0pCi0rCi0rCQkJIEFD X0xBTkdfUkVTVE9SRQotKyAgICAgICAgICAgICAgIF0pCi0rICAgICAgICAgICAgICAgIExERkxB R1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0g Inh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQj0iLWwkYXhfbGliIgotKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUIpCi0rCQkJCQlicmVhawotKwkJCQlmaQotKyAgICAgICAg ICAgICAgZG9uZQotKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVu Ci0rCQkJCSAgIEFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEp Ci0rCQkJCWZpCi0rCQkJZmkKLSsJCWZpCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NB VkVEIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCWZpCi0rXSkKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlzcWwubTQgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9heF9teXNxbC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9t eXNxbC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQJMjAwOS0wNC0xOCAxODoxNDoxNi4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsMTcyIEBACi0rZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMg MjAwNy8wNi8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCi0rZG5sCi0rZG5sIEBzeW5vcHNpcyBB WF9MSUJfTVlTUUwoW01JTklNVU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJv dmlkZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE15U1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5s IG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgCi0rZG5sIEFYX0xJQl9NWVNR TCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhl cmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMg bm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0rZG5sCi0rZG5sIFRoZSAtLXdpdGgtbXlzcWwgb3B0aW9u IHRha2VzIG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6Ci0rZG5sIG5vICAgLSBkbyBub3Qg Y2hlY2sgZm9yIE15U1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5sIHllcyAgLSBkbyBjaGVjayBmb3Ig TXlTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChteXNxbF9j b25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0 byBteXNxbF9jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBt eXNxbF9jb25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBt YWNybyBjYWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChNWVNRTF9DRkxBR1MpCi0rZG5sICAg QUNfU1VCU1QoTVlTUUxfTERGTEFHUykKLStkbmwgICBBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQot K2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX01ZU1FMCi0rZG5sCi0rZG5s IEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwotK2RubCBAY2F0ZWdvcnkgQ3h4Ci0rZG5sIEBh dXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4KLStkbmwgQHZlcnNpb24g JERhdGU6IDIwMDcvMDYvMjMgMDE6NTE6MjIgJAotK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZl Ci0rZG5sCi0rZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBt bG9za290IEV4cCAkCi0rZG5sCi0rQUNfREVGVU4oW0FYX0xJQl9NWVNRTF0sCi0rWwotKyAgICBB Q19BUkdfV0lUSChbbXlzcWxdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1teXNx bD1APDpAQVJHQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBA PDpAZGVmYXVsdD15ZXNAOj5ALCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25m aWddCi0rICAgICAgICApLAotKyAgICAgICAgWwotKwlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215 c3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0r ICAgICAgICAgICAgd2FudF9teXNxbD0ibm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFs IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9teXNxbD0ieWVzIgotKyAgICAgICAg ZWxzZQotKyAgICAgICAgICAgIHdhbnRfbXlzcWw9InllcyIKLSsgICAgICAgICAgICBNWVNRTF9D T05GSUc9IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2Fu dF9teXNxbD0ieWVzIgotKwlNWVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2Fs IC9vcHQiXQotKyAgICApCi0rCi0rICAgIE1ZU1FMX0NGTEFHUz0iIgotKyAgICBNWVNRTF9MREZM QUdTPSIiCi0rICAgIE1ZU1FMX1ZFUlNJT049IiIKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVj ayBNeVNRTCBsaWJyYXJpZXMgKGxpYm15c3FsY2xpZW50KQotKyAgICBkbmwKLSsgICAgCi0rICAg IGlmIHRlc3QgIiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0 IC16ICIkTVlTUUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAgQUNfUEFUSF9Q Uk9HKFtNWVNRTF9DT05GSUddLCBbbXlzcWxfY29uZmlnXSwgW10pCi0rICAgICAgICBmaQotKwot KyAgICAgICAgZG5sIE1ZU1FMX0NPTkZJRyBpcyBwcm92aWRlZCBidXQgaXQgZG9lcyBub3QgcG9p bnQgdG8gZXhlY3V0YWJsZSBmaWxlCi0rICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05G SUciOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskTVlTUUxfQ09ORklHIGRvZXMg bm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQotKyAgICAgICAgICAg IE1ZU1FMX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4K LSsgICAgICAgICAgICAjCi0rICAgICAgICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFk ZXJzCi0rICAgICAgICAgICAgIwotKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE15 U1FMIGluY2x1ZGUgZGlyZWN0b3J5XSkKLSsgICAgICAgICAgICBNWVNRTF9pbmNkaXI9Ci0rICAg ICAgICAgICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1ZU1FMX2luY19jaGVjawotKyAgICAgICAg ICAgIGRvCi0rICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGlyIiBcCi0r ICAgICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215c3FsLmgi Ci0rICAgICAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIE1ZU1FMX2luY2Rp cj0kbXlzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAg ICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAi JE1ZU1FMX2luY2RpciIKLSsgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIEFDX01T R19FUlJPUihbRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5j X2NoZWNrJ10pCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkTVlTUUxf aW5jZGlyIiBpbgotKyAgICAgICAgICAgICAgICAvKiApIDs7Ci0rICAgICAgICAgICAgICAgICog KSAgQUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNk aXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsK LSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskTVlTUUxfaW5jZGlyXSkKLSsKLSsgICAgICAg ICAgICBpZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAg ICAgICAgICAgICBNWVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICBNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0r Ci0rICAgICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKLSsK LSsgICAgICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKLSsK LSsgICAgICAgICAgICBBQ19ERUZJTkUoW0hBVkVfTVlTUUxdLCBbMV0sIFtEZWZpbmUgdG8gMSBp ZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAgICAg ICAgICAgZm91bmRfbXlzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3Vu ZF9teXNxbD0ibm8iCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5s IENoZWNrIGlmIHJlcXVpcmVkIHZlcnNpb24gb2YgTXlTUUwgaXMgYXZhaWxhYmxlCi0rICAgIGRu bAotKyAgICAKLSsKLSsgICAgbXlzcWxfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwg WyQxXSkKLSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlz cWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIE15 U1FMIHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxXSkKLSsKLSsgICAgICAgIGRubCBE ZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgTXlTUUwKLSsgICAgICAgIGRubCBh bmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIG15c3FsX3Zl cnNpb25fcmVxX21ham9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCkn YAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25f cmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9y ZXFfbWljcm89YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwu XChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWlj cm8iID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAi Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHBy ICRteXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3Jl cV9taWNyb2AKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5z dGFsbGVkIE15U1FMCi0rICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJl c2VudGF0aW9uCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJT SU9OIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHBy ICRNWVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlz cWxfdmVyc2lvbl9taWNybz1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTld XSpcLlwoW1swLTldXSpcKSdgCi0rICAgICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWlj cm8iID0gIngiOyB0aGVuCi0rICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsg ICAgICAgIGZpCi0rCi0rICAgICAgICBteXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxf dmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwrICRteXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWljcm9gCi0rCi0rICAgICAg ICBteXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRt eXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lv bl9jaGVjayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQot KyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAg IGZpCi0rICAgIGZpCi0rCi0rICAgIEFDX1NVQlNUKFtNWVNRTF9WRVJTSU9OXSkKLSsgICAgQUNf U1VCU1QoW01ZU1FMX0NGTEFHU10pCi0rICAgIEFDX1NVQlNUKFtNWVNRTF9MREZMQUdTXSkKLStd KQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00 CTIwMDktMDQtMTYgMTk6Mzc6MjMuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI4NiBAQAot K2RubCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxv c2tvdCBFeHAgJAotK2RubAotK2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklN VU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZh aWxhYmlsaXR5IG9mIE9yYWNsZSBPQ0kgQVBJCi0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBv ciBuZXdlci4KLStkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMg YW5kIGxpYnJhcmllcyAKLStkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKLStkbmwg Ci0rZG5sIE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6 Ci0rZG5sIDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6Ci0rZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRo IHRvIE9SQUNMRV9IT01FIGRpcmVjdG9yeQotK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90 aCBvcHRpb25zIGFyZSByZXF1aXJlZCk6Ci0rZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBh dGggdG8gZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKLStkbmwgLS13aXRoLW9yYWNsZS1saWIg LSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCi0rZG5sCi0rZG5sIE5PVEU6 IFRoZXNlIG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVl cy4KLStkbmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3 aWxsIGJlIGRpc3BsYXllZCwKLStkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRo b3V0LW9yYWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCi0rZG5sIHRoZSBtYWNybyB3b24ndCBj aGVjayBlbnl0aGluZy4KLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwg ICBBQ19TVUJTVChPUkFDTEVfT0NJX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJ X0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9OKQotK2RubAotK2Ru bCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX09SQUNMRQotK2RubAotK2RubCBAY2F0ZWdv cnkgSW5zdGFsbGVkUGFja2FnZXMKLStkbmwgQGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1h dGV1c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAy MDA4LzA0LzI4IDE5OjU4OjU0ICQKLStkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAot K2RubCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxv c2tvdCBFeHAgJAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xFX09DSV0sCi0rWwotKyAg ICBBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCi0rICAgIEFDX0FSR19XSVRIKFtvcmFj bGVdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGU9QDw6QERJUkA6PkBd LAotKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9y YWNsZSBob21lIGRpcmVjdG9yeV0KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rICAgICAgICBp ZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4g IiRPUkFDTEVfSE9NRSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIk T1JBQ0xFX0hPTUUiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVf aG9tZV9kaXI9IiIKLSsgICAgICAgICAgICBmaSAKLSsgICAgICAgIGZpCi0rICAgICAgICBdLAot KyAgICAgICAgWwotKyAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAg ICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgotKyAgICAgICAgZWxzZQot KyAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgotKyAgICAgICAgZmkgCi0rICAgICAgICBd Ci0rICAgICkKLSsKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1pbmNsdWRlXSwKLSsgICAgICAg IEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6QERJUkA6PkBdLAotKyAg ICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGhdCi0r ICAgICAgICApLAotKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCJd LAotKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIiXQotKyAgICApCi0rICAgIEFD X0FSR19XSVRIKFtvcmFjbGUtbGliXSwKLSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgt b3JhY2xlLWxpYj1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQ SSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoXQotKyAgICAgICAgKSwKLSsgICAgICAgIFtvcmFj bGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCJdLAotKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9k aXI9IiJdCi0rICAgICkKLSsKLSsgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKLSsgICAgT1JBQ0xF X09DSV9MREZMQUdTPSIiCi0rICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgotKwotKyAgICBkbmwK LSsgICAgZG5sIENvbGxlY3QgaW5jbHVkZS9saWIgcGF0aHMKLSsgICAgZG5sIAotKyAgICB3YW50 X29yYWNsZV9idXRfbm9fcGF0aD0ibm8iCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9t ZV9kaXIiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAi bm8iIC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGRu bCBPUkFDTEVfSE9NRSBwYXRoIHByb3ZpZGVkCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAg ZG5sIFByaW1hcnkgcGF0aCB0byBPQ0kgaGVhZGVycywgYXZhaWxhYmxlIGluIE9yYWNsZT49MTAK LSsgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMv cHVibGljIgotKyAgICAgICAgICAgIAotKyAgICAgICAgICAgIGRubCBTZWNvbmRhcnkgcGF0aCB0 byBPQ0kgaGVhZGVycyB1c2VkIGJ5IG9sZGVyIHZlcnNpb25zCi0rICAgICAgICAgICAgb3JhY2xl X2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgotKwotKyAgICAgICAg ICAgIGRubCBMaWJyYXJ5IHBhdGgKLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNs ZV9ob21lX2Rpci9saWIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0g InllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgot KyAgICAgICAgZmkKLSsKLSsgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9k aXIiIC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRl c3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2lu Y2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rp cj0iJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNs ZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRv cmFjbGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0g InllcyI7IHRoZW4KLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xp Yl9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMi OyB0aGVuCi0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAg ICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0 aCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSBzdXBwb3J0IGlz IHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1Bs ZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwK LSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuXSkK LSsgICAgZmkKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBPQ0kgZmlsZXMKLSsgICAgZG5s Ci0rICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1hIC1uICIkb3JhY2xlX2xp Yl9kaXIiOyB0aGVuCi0rCi0rICAgICAgICBzYXZlZF9DUFBGTEFHUz0iJENQUEZMQUdTIgotKyAg ICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAg ICAgICBkbmwgQWRkaXRpb25hbCBwYXRoIGZvciBvbGRlciBPcmFjbGUgaW5zdGFsbGF0aW9ucyAK LSsgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAg ICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsgICAg ICAgIGZpCi0rCi0rICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJlIGJ1aWxkaW5nIG9uIHdp bjMyLgotKyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgICAgICAgICptaW5ndzMyKiAp IFdJTjMyPXllcyA7OwotKyAgICAgICAgICAgICpjeWd3aW4qICkgIFdJTjMyPXllcyA7OwotKyAg ICAgICAgICAgICopIFdJTjMyPW5vIDs7Ci0rICAgICAgICBlc2FjCi0rCi0rICAgICAgICBpZiB0 ZXN0ICIkV0lOMzIiID0gIm5vIgotKyAgICAgICAgdGhlbgotKyAgICAgICAgICAgIG9jaV9saWJz PSItbGNsbnRzaCAtbG5uejExIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIG9jaV9saWJz PSItbG9jaSIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBzYXZlZF9MREZMQUdTPSIkTERGTEFH UyIKLSsgICAgICAgIHNhdmVkX0xJQlM9IiRMSUJTIgotKyAgICAgICAgb2NpX2xkZmxhZ3M9Ii1M JG9yYWNsZV9saWJfZGlyIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgJG9jaV9sZGZsYWdz IgotKyAgICAgICAgTElCUz0iJExJQlMgJG9jaV9saWJzIgotKwotKyAgICAgICAgZG5sCi0rICAg ICAgICBkbmwgQ2hlY2sgT0NJIGhlYWRlcnMKLSsgICAgICAgIGRubAotKyAgICAgICAgQUNfTVNH X0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXJd KQotKwotKyAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKLSsgICAgICAgIEFDX0NPTVBJTEVfSUZF TFNFKFsKLSsgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+ XV0sCi0rICAgICAgICAgICAgICAgIFtbCi0rI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZFUlNJT04p Ci0rI2lmIE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9OID09IDIK LSsvLyBPcmFjbGUgMTAuMiBkZXRlY3RlZAotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQoT0NJX1Y3 X1NZTlRBWCkKLSsvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCi0rLy8gVE9ETyAtIG1sb3Nr b3Q6IGZpbmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsgCi0rI2Vs c2UKLSsjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRpZgotKyAg ICAgICAgICAgICAgICBdXQotKyAgICAgICAgICAgICldLAotKyAgICAgICAgICAgIFsKLSsgICAg ICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAg ICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAg ICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNs ZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBvY2lfaGVh ZGVyX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAg ICAgICAgICBdLAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5k PSJubyIKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQotKyAgICAgICAg ICAgIF0KLSsgICAgICAgICkKLSsgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQotKyAgICAgICAg Ci0rICAgICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCi0rICAgICAg ICBkbmwKLSsgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVu Ci0rCi0rICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJp ZXMgaW4gJG9yYWNsZV9saWJfZGlyXSkKLSsKLSsgICAgICAgICAgICBBQ19MQU5HX1BVU0goQysr KQotKyAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFsKLSsgICAgICAgICAgICAgICAgQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAotKyAgICAgICAgICAgICAgICAgICAg W1sKLStPQ0lFbnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQs IDAsIDAsIDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9I VFlQRV9FTlYpOwotKyAgICAgICAgICAgICAgICAgICAgXV0KLSsgICAgICAgICAgICAgICAgKV0s Ci0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdT PSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5k PSJ5ZXMiCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgICAg ICAgICAgIF0sCi0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9m b3VuZD0ibm8iCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0r ICAgICAgICAgICAgICAgIF0KLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgQUNfTEFOR19Q T1AoW0MrK10pCi0rICAgICAgICBmaQotKwotKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBG TEFHUyIKLSsgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgotKyAgICAgICAgTElCUz0i JHNhdmVkX0xJQlMiCi0rICAgIGZpCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgcmVxdWly ZWQgdmVyc2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICBvcmFjbGVf dmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYgdGVzdCAi JG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1h IFwKLSsgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAg b3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZF UlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2Rl ZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgb3JhY2xlX3Zl cnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lf TUlOT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNl ZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtp ZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rCi0rICAg ICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3Zl cnNpb25fbWlub3IiOyB0aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIk b3JhY2xlX3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAgICAgICAg ICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCi0rICAg ICAgICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAg ICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25f cmVxIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21p bm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdg Ci0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xl X3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKLSsK LSsgICAgICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCi0r ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9t YWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3Zl cnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVy c2lvbl9yZXFfbnVtYmVyYAotKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9j aGVjayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkK LSsgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8g MSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAg ZWxzZQotKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICAgICAg ICAgIEFDX01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCBy ZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQotKyAgICAgICAgICAgIGZp Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dO IgotKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICAgICBBQ19NU0df V0FSTihbT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAu MiBpcyBhdmFpbGFibGVdKQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgQUNfU1VCU1Qo W09SQUNMRV9PQ0lfVkVSU0lPTl0pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10p Ci0rICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQotK10pCi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAwOS0wNC0xOCAxODoy MjozNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTcxIEBACi0rZG5sICRJZDogYXhfcG9z dGdyZXNxbC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKLStkbmwK LStkbmwgQHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQotK2Ru bAotK2RubCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0 Z3JlU1FMICdsaWJwcScgbGlicmFyeQotK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3 ZXIuCi0rZG5sIAotK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBh cmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVk IHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0r ZG5sCi0rZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVl IHBvc3NpYmxlIHZhbHVlczoKLStkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNR TCBjbGllbnQgbGlicmFyeQotK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGli cmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxk IGJlIGluIHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcg dXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3Qg YmUgZm91bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwK LStkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChQT1NU R1JFU1FMX0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQotK2Ru bAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX1BPU1RHUkVTUUwKLStkbmwKLStk bmwgQGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCi0rZG5sIEBjYXRlZ29yeSBDeHgKLStkbmwg QGF1dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgotK2RubCBAdmVyc2lv biAkRGF0ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3Np dmUKLStkbmwKLStkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6 NTE6MjIgbWxvc2tvdCBFeHAgJAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0s Ci0rWwotKyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCi0rICAgICAgICBBQ19IRUxQX1NU UklORyhbLS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAotKyAgICAgICAgICAgIFt1c2Ug UG9zdGdyZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lm eSBwYXRoIHRvIHBnX2NvbmZpZ10KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rCVBPU1RHUkVT UUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0 ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJu byIKLSsgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAg ICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3 YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgot KyAgICAgICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMi Ci0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0K LSsgICAgKQotKwotKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX0xE RkxBR1M9IiIKLSsgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCi0rCi0rICAgIGRubAotKyAg ICBkbmwgQ2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQotKyAgICBkbmwKLSsgICAg Ci0rICAgIGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRoZW4KLSsKLSsgICAg ICAgIGlmIHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsgICAgICAgICAgICBB Q19QQVRIX1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKLSsgICAgICAgIGZpCi0r Ci0rICAgICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAg QUNfTVNHX0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBl eGVjdHVhYmxlIGZpbGVdKQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAg ICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVz dCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAg ICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsg ICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0 b3J5XSkKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3Ig cG9zdGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAg IGRvCi0rICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwK LSsgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jl c19leHQuaCIKLSsgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9T VEdSRVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAg YnJlYWsKLSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAg ICAgICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4K LSsgICAgICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNx bCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAgICAgICAg ZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAg ICAgICAgICAgIC8qICkgOzsKLSsgICAgICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1Ro ZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3Qg YmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAg ICAgICBBQ19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQotKwotKyAgICAgICAgICAg IGlmIHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAg ICAgICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsg ICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBH X0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJ T049YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwot KyAgICAgICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRv IDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAg Ci0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsK LSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVT UUwgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICAKLSsKLSsgICAgcG9zdGdyZXNxbF92ZXJz aW9uX3JlcT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIkZm91 bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0 aGVuCi0rCi0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBp cyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBkbmwgRGVjb21wb3Nl IHJlcXVpcmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQg Y2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAt OV1dKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBv c3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRl c3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3Zl cnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cV9taWNyb2AKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5z dGFsbGVkIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIg cmVwcmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAk UE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3Fs X3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChb WzAtOV1dKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9T VEdSRVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsg ICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgot KyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0r Ci0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3Zl cnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsK LSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJz aW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAg IGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAg ICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBB Q19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJT VChbUE9TVEdSRVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdT XSkKLSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvY29uZmlnLmd1ZXNzCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5n dWVzcwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMDktMDUtMDYgMDE6MzE6NTAuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDE1MjYgQEAKLSsjISAvYmluL3NoCi0rIyBBdHRlbXB0IHRvIGd1 ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5 OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEs IDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKLSsjICAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rdGltZXN0YW1wPScyMDA4LTAxLTA4JwotKwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkgaXQKLSsjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQotKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0g RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsjCi0rIyBBcyBh IHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYg eW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNv bnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwg eW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMg dGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rCi0rIyBPcmln aW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0rIyBQbGVh c2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNv bnRleHQKLSsjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4K LSsjCi0rIyBUaGlzIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0g bmFtZSBzaW1pbGFyIHRvCi0rIyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50 cyB0aGUgc3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBhbmQKLSsjIGV4aXRzIHdpdGggMC4gIE90aGVy d2lzZSwgaXQgZXhpdHMgd2l0aCAxLgotKyMKLSsjIFRoZSBwbGFuIGlzIHRoYXQgdGhpcyBjYW4g YmUgY2FsbGVkIGJ5IGNvbmZpZ3VyZSBzY3JpcHRzIGlmIHlvdQotKyMgZG9uJ3Qgc3BlY2lmeSBh biBleHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KLSsKLSttZT1gZWNobyAiJDAiIHwgc2VkIC1l ICdzLC4qLywsJ2AKLSsKLSt1c2FnZT0iXAotK1VzYWdlOiAkMCBbT1BUSU9OXQotKwotK091dHB1 dCB0aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4K LSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBo ZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3Qg bW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJz aW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNv bmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5ndWVz cyAoJHRpbWVzdGFtcCkKLSsKLStPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCi0r Q29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3 YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8K LSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVz dCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGlt ZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZl cnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1o ZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAt LSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7 Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAg LSogKQotKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgotKyAg ICAgICBleGl0IDEgOzsKLSsgICAgKiApCi0rICAgICAgIGJyZWFrIDs7Ci0rICBlc2FjCi0rZG9u ZQotKwotK2lmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1 bWVudHMkaGVscCIgPiYyCi0rICBleGl0IDEKLStmaQotKwotK3RyYXAgJ2V4aXQgMScgMSAyIDE1 Ci0rCi0rIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90 ZSB0aGF0IHRoZSB1c2Ugb2YgYQotKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rp b24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKLSsjIHRlbXBvcmFyeSBmaWxlcyB0byBi ZSBjcmVhdGVkIGFuZCwgYXMgeW91IGNhbiBzZWUgYmVsb3csIGl0IGlzIGEKLSsjIGhlYWRhY2hl IHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCi0rCi0rIyBIaXN0b3JpY2FsbHks IGBDQ19GT1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGlsbAotKyMg dXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLSsKLSsjIFBv cnRhYmxlIHRtcCBkaXJlY3RvcnkgY3JlYXRpb24gaW5zcGlyZWQgYnkgdGhlIEF1dG9jb25mIHRl YW0uCi0rCi0rc2V0X2NjX2Zvcl9idWlsZD0nCi0rdHJhcCAiZXhpdGNvZGU9XCQ/OyAocm0gLWYg XCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGwpICYmIGV4aXQg XCRleGl0Y29kZSIgMCA7Ci0rdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1k aXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKLSs6ICR7VE1QRElSPS90 bXB9IDsKLSsgeyB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIkVE1QRElSL2NnWFhYWFhY IikgMj4vZGV2L251bGxgICYmIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiIDsgfSB8 fAotKyB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAo dW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAotKyB7IHRtcD0kVE1QRElSL2NnLSQkICYm ICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5z ZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKLSsgeyBlY2hvICIkbWU6IGNhbm5vdCBj cmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluICRUTVBESVIiID4mMiA7IGV4aXQgMSA7IH0g OwotK2R1bW15PSR0bXAvZHVtbXkgOwotK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVt bXkucmVsICRkdW1teSIgOwotK2Nhc2UgJENDX0ZPUl9CVUlMRCwkSE9TVF9DQywkQ0MgaW4KLSsg LCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7Ci0rCWZvciBjIGluIGNjIGdjYyBjODkg Yzk5IDsgZG8KLSsJICBpZiAoJGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2L251bGwg Mj4mMSA7IHRoZW4KLSsJICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotKwkgIGZpIDsK LSsJZG9uZSA7Ci0rCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0rCSAgQ0Nf Rk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKLSsJZmkKLSsJOzsKLSsgLCwqKSAgIENDX0ZP Ul9CVUlMRD0kQ0MgOzsKLSsgLCosKikgIENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7OwotK2VzYWMg OyBzZXRfY2NfZm9yX2J1aWxkPSA7JwotKwotKyMgVGhpcyBpcyBuZWVkZWQgdG8gZmluZCB1bmFt ZSBvbiBhIFB5cmFtaWQgT1N4IHdoZW4gcnVuIGluIHRoZSBCU0QgdW5pdmVyc2UuCi0rIyAoZ2hh emlAbm9jLnJ1dGdlcnMuZWR1IDE5OTQtMDgtMjQpCi0raWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5h bWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJUEFUSD0kUEFUSDovLmF0dGJpbiA7IGV4cG9y dCBQQVRICi0rZmkKLSsKLStVTkFNRV9NQUNISU5FPWAodW5hbWUgLW0pIDI+L2Rldi9udWxsYCB8 fCBVTkFNRV9NQUNISU5FPXVua25vd24KLStVTkFNRV9SRUxFQVNFPWAodW5hbWUgLXIpIDI+L2Rl di9udWxsYCB8fCBVTkFNRV9SRUxFQVNFPXVua25vd24KLStVTkFNRV9TWVNURU09YCh1bmFtZSAt cykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgotK1VOQU1FX1ZFUlNJT049 YCh1bmFtZSAtdikgMj4vZGV2L251bGxgIHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgotKwotKyMg Tm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4 Y2x1c2l2ZS4KLSsKLStjYXNlICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VO QU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGluCi0rICAgICo6TmV0QlNEOio6KikKLSsJ IyBOZXRCU0QgKG5ic2QpIHRhcmdldHMgc2hvdWxkICh3aGVyZSBhcHBsaWNhYmxlKSBtYXRjaCBv bmUgb3IKLSsJIyBtb3JlIG9mIHRoZSB0dXBwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJz ZGFvdXQqLAotKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdl dHMgdGhhdCByZWNlbnRseQotKwkjIHN3aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCogd291bGQg c2VsZWN0IHRoZSBvbGQKLSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJv dGggZm9yd2FyZAotKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20g Zm9yIHNlbGVjdGluZyB0aGUKLSsJIyBvYmplY3QgZmlsZSBmb3JtYXQuCi0rCSMKLSsJIyBOb3Rl OiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCi0rCSMg cG9ydGlvbiBvZiB0aGUgbmFtZS4gIFdlIGFsd2F5cyBzZXQgaXQgdG8gInVua25vd24iLgotKwlz eXNjdGw9InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2giCi0rCVVOQU1FX01BQ0hJTkVfQVJDSD1g KC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAotKwkgICAgL3Vzci9zYmluLyRzeXNjdGwg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duKWAKLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FS Q0h9IiBpbgotKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwotKwkgICAgYXJt KikgbWFjaGluZT1hcm0tdW5rbm93biA7OwotKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25v d24gOzsKLSsJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKLSsJICAgIHNoNWVsKSBt YWNoaW5lPXNoNWxlLXVua25vd24gOzsKLSsJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5F X0FSQ0h9LXVua25vd24gOzsKLSsJZXNhYwotKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1 ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKLSsJIyB0byBFTEYgcmVjZW50 bHksIG9yIHdpbGwgaW4gdGhlIGZ1dHVyZS4KLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9 IiBpbgotKwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0rCQlldmFs ICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1F IC0gMj4vZGV2L251bGwgXAotKwkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKLSsJCXRoZW4K LSsJCSAgICAjIE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBv ciBhLm91dCAobmV0YnNkYW91dCkuCi0rCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIu ICBGSVg/Ci0rCQkgICAgb3M9bmV0YnNkCi0rCQllbHNlCi0rCQkgICAgb3M9bmV0YnNkZWxmCi0r CQlmaQotKwkJOzsKLSsJICAgICopCi0rCSAgICAgICAgb3M9bmV0YnNkCi0rCQk7OwotKwllc2Fj Ci0rCSMgVGhlIE9TIHJlbGVhc2UKLSsJIyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZl IGEgZGlmZmVyZW50IHVzZXJsYW5kLCBhbmQKLSsJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJp cGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAotKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9y bWF0aW9uLCBzbyBpdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhCi0rCSMgc3VpdGFibGUgdGFnLCBp biB0aGUgc3R5bGUgb2YgbGludXgtZ251LgotKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgot KwkgICAgRGViaWFuKikKLSsJCXJlbGVhc2U9Jy1nbnUnCi0rCQk7OwotKwkgICAgKikKLSsJCXJl bGVhc2U9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCi0rCQk7 OwotKwllc2FjCi0rCSMgU2luY2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJ TkdfU1lTVEVNOgotKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0 ZXIgZm9ybToKLSsJIyBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1 c2VkLgotKwllY2hvICIke21hY2hpbmV9LSR7b3N9JHtyZWxlYXNlfSIKLSsJZXhpdCA7OwotKyAg ICAqOk9wZW5CU0Q6KjoqKQotKwlVTkFNRV9NQUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3Bl bkJTRC4vLydgCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7 VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOmVra29CU0Q6KjoqKQotKwllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgICo6U29saWRCU0Q6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1z b2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBtYWNwcGM6TWlyQlNEOio6 KikKLSsJZWNobyBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgICo6TWlyQlNEOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIGFscGhhOk9TRjE6KjoqKQot KwljYXNlICRVTkFNRV9SRUxFQVNFIGluCi0rCSo0LjApCi0rCQlVTkFNRV9SRUxFQVNFPWAvdXNy L3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAotKwkJOzsKLSsJKjUuKikKLSsJICAg ICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0n YAotKwkJOzsKLSsJZXNhYwotKwkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3Jp bmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBvbgotKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHBy b2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAotKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMg cnVubmluZyB0b2RheS4gIFRoaXMgY29kZSBwaXBlcyB0aGUgQ1BVCi0rCSMgdHlwZXMgdGhyb3Vn aCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgotKwlBTFBI QV9DUFVfVFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFs cGhhIFwoLipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCi0rCWNhc2UgIiRBTFBI QV9DUFVfVFlQRSIgaW4KLSsJICAgICJFVjQgKDIxMDY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJh bHBoYSIgOzsKLSsJICAgICJFVjQuNSAoMjEwNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhh IiA7OwotKwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBo YSIgOzsKLSsJICAgICJFVjUgKDIxMTY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIg OzsKLSsJICAgICJFVjUuNiAoMjExNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYi IDs7Ci0rCSAgICAiRVY1LjYgKDIxMTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNh NTYiIDs7Ci0rCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhh cGNhNTciIDs7Ci0rCSAgICAiRVY2ICgyMTI2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFl djYiIDs7Ci0rCSAgICAiRVY2LjcgKDIxMjY0QSkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFl djY3IiA7OwotKwkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQotKwkJVU5BTUVfTUFDSElORT0iYWxw aGFldjY4IiA7OwotKwkgICAgIkVWNi44QUwgKDIxMjY0QikiKQotKwkJVU5BTUVfTUFDSElORT0i YWxwaGFldjY4IiA7OwotKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQotKwkJVU5BTUVfTUFDSElO RT0iYWxwaGFldjY4IiA7OwotKwkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKLSsJCVVOQU1F X01BQ0hJTkU9ImFscGhhZXY2OSIgOzsKLSsJICAgICJFVjcgKDIxMzY0KSIpCi0rCQlVTkFNRV9N QUNISU5FPSJhbHBoYWV2NyIgOzsKLSsJICAgICJFVjcuOSAoMjEzNjRBKSIpCi0rCQlVTkFNRV9N QUNISU5FPSJhbHBoYWV2NzkiIDs7Ci0rCWVzYWMKLSsJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBh dGNoZWQgdmVyc2lvbi4KLSsJIyBBIFZuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24u Ci0rCSMgQSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCi0r CSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVs LgotKwkjIDEuMiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KLSsJZWNobyAke1VOQU1FX01BQ0hJ TkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycg fCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2 d3h5eidgCi0rCWV4aXQgOzsKLSsgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKLSsJIyBIb3cg ZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vi c3lzdGVtPwotKwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUg b3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKLSsJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/ Ci0rCWVjaG8gYWxwaGEtcGMtaW50ZXJpeAotKwlleGl0IDs7Ci0rICAgIDIxMDY0OldpbmRvd3Nf TlQ6NTA6MykKLSsJZWNobyBhbHBoYS1kZWMtd2lubnQzLjUKLSsJZXhpdCA7OwotKyAgICBBbWln YSo6VU5JWF9TeXN0ZW1fVjo0LjA6KikKLSsJZWNobyBtNjhrLXVua25vd24tc3lzdjQKLSsJZXhp dCA7OwotKyAgICAqOltBYV1taWdhW09vXVtTc106KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1hbWlnYW9zCi0rCWV4aXQgOzsKLSsgICAgKjpbTW1db3JwaFtPb11bU3NdOio6 KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcwotKwlleGl0IDs7Ci0r ICAgICo6T1MvMzkwOio6KikKLSsJZWNobyBpMzcwLWlibS1vcGVuZWRpdGlvbgotKwlleGl0IDs7 Ci0rICAgICo6ei9WTToqOiopCi0rCWVjaG8gczM5MC1pYm0tenZtb2UKLSsJZXhpdCA7OwotKyAg ICAqOk9TNDAwOio6KikKLSsgICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLSsJZXhpdCA7 OwotKyAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0rCWVj aG8gYXJtLWFjb3JuLXJpc2NpeCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhcm06 cmlzY29zOio6Knxhcm06UklTQ09TOio6KikKLSsJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKLSsJ ZXhpdCA7OwotKyAgICBTUjI/MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6Kjoq KQotKwllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCi0rCWV4aXQgOzsKLSsgICAgUHlyYW1p ZCo6T1N4KjoqOiogfCBNSVMqOk9TeCo6KjoqIHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCi0rCSMg YWtlZUB3cGRpczAzLndwYWZiLmFmLm1pbCAoRWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMg YW5kIE5JTEUuCi0rCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0 dCA7IHRoZW4KLSsJCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN5c3YzCi0rCWVsc2UKLSsJCWVjaG8g cHlyYW1pZC1weXJhbWlkLWJzZAotKwlmaQotKwlleGl0IDs7Ci0rICAgIE5JTEUqOio6KjpkY29z eCkKLSsJZWNobyBweXJhbWlkLXB5cmFtaWQtc3ZyNAotKwlleGl0IDs7Ci0rICAgIERSUz82MDAw OnVuaXg6NC4wOjYqKQotKwllY2hvIHNwYXJjLWljbC1ueDYKLSsJZXhpdCA7OwotKyAgICBEUlM/ NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCi0rCWNhc2UgYC91 c3IvYmluL3VuYW1lIC1wYCBpbgotKwkgICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhp dCA7OwotKwllc2FjIDs7Ci0rICAgIHN1bjRIOlN1bk9TOjUuKjoqKQotKwllY2hvIHNwYXJjLWhh bC1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwll eGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCi0r CWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3Mv W14uXSovLydgCi0rCWV4aXQgOzsKLSsgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3Vu T1M6NS4qOiopCi0rCWVjaG8gaTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18 c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9TOjYqOiopCi0r CSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gY2Fu b25pY2FsaXplCi0rCSMgU3VuT1M2LiAgSGFyZCB0byBndWVzcyBleGFjdGx5IHdoYXQgU3VuT1M2 IHdpbGwgYmUgbGlrZSwgYnV0Ci0rCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFy aXMgdGhhbiBTdW5PUzQuCi0rCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMzYGVjaG8gJHtVTkFNRV9S RUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuNCo6U3VuT1M6 KjoqKQotKwljYXNlICJgL3Vzci9iaW4vYXJjaCAta2AiIGluCi0rCSAgICBTZXJpZXMqfFM0KikK LSsJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAotKwkJOzsKLSsJZXNhYwotKwkjIEphcGFuZXNl IExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcu Ci0rCWVjaG8gc3BhcmMtc3VuLXN1bm9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3Mv LS9fLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuMyo6U3VuT1M6KjoqKQotKwllY2hvIG02OGstc3Vu LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHN1bio6Kjo0LjJCU0Q6KikK LSsJVU5BTUVfUkVMRUFTRT1gKHNlZCAxcSAvZXRjL21vdGQgfCBhd2sgJ3twcmludCBzdWJzdHIo JDUsMSwzKX0nKSAyPi9kZXYvbnVsbGAKLSsJdGVzdCAieCR7VU5BTUVfUkVMRUFTRX0iID0gIngi ICYmIFVOQU1FX1JFTEVBU0U9MwotKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KLSsJICAgIHN1bjMp Ci0rCQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwkJOzsKLSsJICAgIHN1 bjQpCi0rCQllY2hvIHNwYXJjLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJCTs7Ci0rCWVz YWMKLSsJZXhpdCA7OwotKyAgICBhdXNocDpTdW5PUzoqOiopCi0rCWVjaG8gc3BhcmMtYXVzcGV4 LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICMgVGhlIHNpdHVhdGlvbiBm b3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCi0rICAgICMg Y2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotKyAg ICAjICJhdGFyaXN0IiBvciAiYXRhcmlzdGUiIGF0IGxlYXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vz c29yCi0rICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5U IiBvdmVyICJGcmVlTWlOVCIKLSsgICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQi IChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKLSsgICAgIyB0aGUgc3lzdGVtIG5hbWUgIlRPUyIg ZGVub3RlcyBhIHN5c3RlbSB3aGljaCBpcyBhY3R1YWxseSBub3QKLSsgICAgIyBNaU5ULiAgQnV0 IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCi0rICAg ICMgYmUgbm8gcHJvYmxlbS4KLSsgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2Vd OiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstYXRh cmktbWludCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhdGFyaSo6Kk1pTlQ6Kjoq IHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rCWVjaG8gbTY4ay1h dGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICAqZmFsY29u KjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLSsg ICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgIG1pbGFuKjoqTWlOVDoqOiogfCBtaWxhbio6Km1pbnQ6KjoqIHwgKm1pbGFuKjoqVE9TOio6 KikKLSsgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAg ICAgZXhpdCA7OwotKyAgICBoYWRlcyo6Kk1pTlQ6KjoqIHwgaGFkZXMqOiptaW50Oio6KiB8ICpo YWRlcyo6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVM RUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8 ICo6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxF QVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICBtNjhrOm1hY2h0ZW46KjoqKQotKwllY2hvIG02 OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBwb3dlcnBj Om1hY2h0ZW46KjoqKQotKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICBSSVNDKjpNYWNoOio6KikKLSsJZWNobyBtaXBzLWRlYy1tYWNo X2JzZDQuMwotKwlleGl0IDs7Ci0rICAgIFJJU0MqOlVMVFJJWDoqOiopCi0rCWVjaG8gbWlwcy1k ZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFZBWCo6VUxUUklYKjoq OiopCi0rCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsg ICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCi0rCWVjaG8gY2xpcHBlci1pbnRlcmdy YXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbWlwczoqOio6VU1JUFMg fCBtaXBzOio6KjpSSVNDb3MpCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14J Ly8nIDw8IEVPRiA+JGR1bW15LmMKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSsjaW5jbHVkZSA8c3Rk aW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KLSsJaW50IG1haW4gKGludCBhcmdj LCBjaGFyICphcmd2W10pIHsKLSsjZWxzZQotKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFy Z2M7IGNoYXIgKmFyZ3ZbXTsgewotKyNlbmRpZgotKwkjaWYgZGVmaW5lZCAoaG9zdF9taXBzKSAm JiBkZWZpbmVkIChNSVBTRUIpCi0rCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCi0rCSAgcHJp bnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwotKwkj ZW5kaWYKLSsJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKLSsJICBwcmludGYgKCJtaXBzLW1p cHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgotKwkjaWYg ZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKLSsJICBwcmlu dGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLSsJI2Vu ZGlmCi0rCSNlbmRpZgotKwkgIGV4aXQgKC0xKTsKLSsJfQotK0VPRgotKwkkQ0NfRk9SX0JVSUxE IC1vICRkdW1teSAkZHVtbXkuYyAmJgotKwkgIGR1bW15YXJnPWBlY2hvICIke1VOQU1FX1JFTEVB U0V9IiB8IHNlZCAtbiAncy9cKFswLTldKlwpLiovXDEvcCdgICYmCi0rCSAgU1lTVEVNX05BTUU9 YCRkdW1teSAkZHVtbXlhcmdgICYmCi0rCSAgICB7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7 IH0KLSsJZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKLSsJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBv d2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTW90b3JvbGE6Kjo0LjM6UEw4LSopCi0rCWVjaG8gcG93 ZXJwYy1oYXJyaXMtcG93ZXJtYXgKLSsJZXhpdCA7OwotKyAgICBOaWdodF9IYXdrOio6KjpQb3dl ck1BWF9PUyB8IFN5bmVyZ3k6UG93ZXJNQVhfT1M6KjoqKQotKwllY2hvIHBvd2VycGMtaGFycmlz LXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKLSsJ ZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKLSsJZXhpdCA7OwotKyAgICBtODhrOkNYL1VY OjcqOiopCi0rCWVjaG8gbTg4ay1oYXJyaXMtY3h1eDcKLSsJZXhpdCA7OwotKyAgICBtODhrOio6 NCo6UjQqKQotKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBtODhr Oio6Myo6UjMqKQotKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKLSsJZXhpdCA7OwotKyAgICBB VmlpT046ZGd1eDoqOiopCi0rICAgICAgICAjIERHL1VYIHJldHVybnMgQVZpaU9OIGZvciBhbGwg YXJjaGl0ZWN0dXJlcwotKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAt cGAKLSsJaWYgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NF U1NPUiA9IG1jODgxMTAgXQotKwl0aGVuCi0rCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRF UkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKLSsJICAgICAgIFsgJHtUQVJHRVRfQklOQVJZ X0lOVEVSRkFDRX14ID0geCBdCi0rCSAgICB0aGVuCi0rCQllY2hvIG04OGstZGctZGd1eCR7VU5B TUVfUkVMRUFTRX0KLSsJICAgIGVsc2UKLSsJCWVjaG8gbTg4ay1kZy1kZ3V4YmNzJHtVTkFNRV9S RUxFQVNFfQotKwkgICAgZmkKLSsJZWxzZQotKwkgICAgZWNobyBpNTg2LWRnLWRndXgke1VOQU1F X1JFTEVBU0V9Ci0rCWZpCi0rIAlleGl0IDs7Ci0rICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBE b2xwaGluT1MgKFNWUjMpCi0rCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCi0rCWV4aXQgOzsKLSsg ICAgTTg4KjoqOlIzKjoqKQotKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCi0rCWVj aG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotKwlleGl0IDs7Ci0rICAgIFhEODgqOio6KjoqKSAjIFRl a3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQotKwllY2hvIG04OGstdGVr dHJvbml4LXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAj IFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKLSsJZWNobyBtNjhrLXRl a3Ryb25peC1ic2QKLSsJZXhpdCA7OwotKyAgICAqOklSSVgqOio6KikKLSsJZWNobyBtaXBzLXNn aS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAotKwlleGl0IDs7 Ci0rICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4x IGlzIFJUL1BDIEFJWC4KLSsJZWNobyByb21wLWlibS1haXggICAgICMgdW5hbWUgLW0gZ2l2ZXMg YW4gOCBoZXgtY29kZSBDUFUgaWQKLSsJZXhpdCA7OyAgICAgICAgICAgICAgICMgTm90ZSB0aGF0 OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJwotKyAgICBpKjg2OkFJWDoqOiopCi0r CWVjaG8gaTM4Ni1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsgICAgaWE2NDpBSVg6KjoqKQotKwlpZiBb IC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLSsJCUlCTV9SRVY9YC91c3IvYmluL29zbGV2 ZWxgCi0rCWVsc2UKLSsJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9 Ci0rCWZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQotKwlleGl0 IDs7Ci0rICAgICo6QUlYOjI6MykKLSsJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlv LmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlz ZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2Zn Lmg+Ci0rCi0rCQltYWluKCkKLSsJCQl7Ci0rCQkJaWYgKCFfX3Bvd2VyX3BjKCkpCi0rCQkJCWV4 aXQoMSk7Ci0rCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKLSsJCQlleGl0KDApOwot KwkJCX0KLStFT0YKLSsJCWlmICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZ U1RFTV9OQU1FPWAkZHVtbXlgCi0rCQl0aGVuCi0rCQkJZWNobyAiJFNZU1RFTV9OQU1FIgotKwkJ ZWxzZQotKwkJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQotKwkJZmkKLSsJZWxpZiBncmVwIGJv czMyNCAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJCWVjaG8g cnM2MDAwLWlibS1haXgzLjIuNAotKwllbHNlCi0rCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yCi0r CWZpCi0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjpbNDU2XSkKLSsJSUJNX0NQVV9JRD1gL3Vzci9z YmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sg cHJpbnQgJDEgfSdgCi0rCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBn cmVwICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkJSUJNX0FSQ0g9cnM2MDAwCi0r CWVsc2UKLSsJCUlCTV9BUkNIPXBvd2VycGMKLSsJZmkKLSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xl dmVsIF0gOyB0aGVuCi0rCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAotKwllbHNlCi0rCQlJ Qk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKwllY2hvICR7 SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjoqKQot KwllY2hvIHJzNjAwMC1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6NC40QlNEOip8cm9t cC1pYm06QlNEOiopCi0rCWVjaG8gcm9tcC1pYm0tYnNkNC40Ci0rCWV4aXQgOzsKLSsgICAgaWJt cnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBh bmQKLSsJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFt ZSBhZGRlZCB0bwotKwlleGl0IDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9y dDogcm9tcC1pYm0gQlNEIDQuMwotKyAgICAqOkJPU1g6KjoqKQotKwllY2hvIHJzNjAwMC1idWxs LWJvc3gKLSsJZXhpdCA7OwotKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQotKwllY2hvIG02OGst YnVsbC1zeXN2MwotKwlleGl0IDs7Ci0rICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKLSsJ ZWNobyBtNjhrLWhwLWJzZAotKwlleGl0IDs7Ci0rICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAw L1szNF0/Pzo0LjNic2Q6Mi4qOiopCi0rCWVjaG8gbTY4ay1ocC1ic2Q0LjQKLSsJZXhpdCA7Owot KyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVf UkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAotKwljYXNlICIke1VOQU1FX01BQ0hJ TkV9IiBpbgotKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0r CSAgICA5MDAwL1szNF0/PyApICAgICAgICAgSFBfQVJDSD1tNjhrIDs7Ci0rCSAgICA5MDAwL1s2 NzhdWzAtOV1bMC05XSkKLSsJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCi0rCQkg ICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2 L251bGxgCi0rICAgICAgICAgICAgICAgICAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0 Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKLSsgICAgICAgICAgICAgICAgICAgIGNh c2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotKyAgICAgICAgICAgICAgICAgICAgICA1MjMpIEhQ X0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKLSsgICAgICAgICAgICAgICAgICAg ICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8xCi0rICAgICAgICAg ICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAot KyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBpbgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgMzIpIEhQX0FSQ0g9ImhwcGEyLjBuIiA7OwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotKwkJCSAgJycp IEhQX0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAxMC4yMAotKyAgICAgICAgICAgICAgICAg ICAgICAgIGVzYWMgOzsKLSsgICAgICAgICAgICAgICAgICAgIGVzYWMKLSsJCWZpCi0rCQlpZiBb ICIke0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4KLSsJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxk Ci0rCQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCi0r ICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotKyAgICAgICAgICAgICAgI2luY2x1 ZGUgPHN0ZGxpYi5oPgotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotKyAg ICAgICAgICAgICAgaW50IG1haW4gKCkKLSsgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAg ICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLSsgICAgICAgICAgICAgICAgICBsb25nIGJp dHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7Ci0rICAgICAgICAgICAgICAjZW5kaWYKLSsg ICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwot KwotKyAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQotKyAgICAgICAgICAgICAgCXsKLSsg ICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVh azsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIp OyBicmVhazsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotKyAgICAgICAg ICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotKyAgICAgICAgICAgICAgCSAgICBz d2l0Y2ggKGJpdHMpCi0rICAgICAgICAgICAgICAJCXsKLSsgICAgICAgICAgICAgIAkJY2FzZSA2 NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQljYXNlIDMyOiBw dXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMg KCJocHBhMi4wIik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQl9IGJyZWFrOwotKyAgICAgICAg ICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KLSsgICAgICAgICAg ICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAjZW5kaWYK LSsgICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsgICAg ICAgICAgICAgIAl9Ci0rICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0rICAgICAgICAgICAg ICB9Ci0rRU9GCi0rCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15 LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKLSsJCSAgICB0ZXN0IC16ICIkSFBf QVJDSCIgJiYgSFBfQVJDSD1ocHBhCi0rCQlmaSA7OwotKwllc2FjCi0rCWlmIFsgJHtIUF9BUkNI fSA9ICJocHBhMi4wdyIgXQotKwl0aGVuCi0rCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0r Ci0rCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29t cGlsZXIgZ2VuZXJhdGluZwotKwkgICAgIyAzMi1iaXQgY29kZS4gIGhwcGE2NC1ocC1ocHV4KiBo YXMgdGhlIHNhbWUga2VybmVsIGFuZCBhIGNvbXBpbGVyCi0rCSAgICAjIGdlbmVyYXRpbmcgNjQt Yml0IGNvZGUuICBHTlUgYW5kIEhQIHVzZSBkaWZmZXJlbnQgbm9tZW5jbGF0dXJlOgotKwkgICAg IwotKwkgICAgIyAkIENDX0ZPUl9CVUlMRD1jYyAuL2NvbmZpZy5ndWVzcwotKwkgICAgIyA9PiBo cHBhMi4wdy1ocC1ocHV4MTEuMjMKLSsJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHci IC4vY29uZmlnLmd1ZXNzCi0rCSAgICAjID0+IGhwcGE2NC1ocC1ocHV4MTEuMjMKLSsKLSsJICAg IGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251 bGwpIHwKLSsJCWdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkJSFBfQVJD SD0iaHBwYTIuMHciCi0rCSAgICBlbHNlCi0rCQlIUF9BUkNIPSJocHBhNjQiCi0rCSAgICBmaQot KwlmaQotKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9Ci0rCWV4aXQgOzsKLSsg ICAgaWE2NDpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1teLl0qLlswQl0qLy8nYAotKwllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9Ci0r CWV4aXQgOzsKLSsgICAgMzA1MCo6SEktVVg6KjoqKQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxk Ci0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSNpbmNsdWRlIDx1bmlzdGQuaD4K LSsJaW50Ci0rCW1haW4gKCkKLSsJewotKwkgIGxvbmcgY3B1ID0gc3lzY29uZiAoX1NDX0NQVV9W RVJTSU9OKTsKLSsJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2 OEsgZXJyb25lb3VzbHkgcmV0dXJucwotKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAg Q1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0Ci0rCSAgICAgcmVzdWx0cywgaG93ZXZlci4g ICovCi0rCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQotKwkgICAgewotKwkgICAgICBzd2l0 Y2ggKGNwdSkKLSsJCXsKLSsJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAt aGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJICBjYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRz ICgiaHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Ci0rCQkgIGNhc2UgQ1BVX1BBX1JJ U0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLSsJCSAgZGVm YXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJfQotKwkgICAg fQotKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKLSsJICAgIHB1dHMgKCJtNjhr LWhpdGFjaGktaGl1eHdlMiIpOwotKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNoaS1oaXV4 d2UyIik7Ci0rCSAgZXhpdCAoMCk7Ci0rCX0KLStFT0YKLSsJJENDX0ZPUl9CVUlMRCAtbyAkZHVt bXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKLSsJCXsgZWNobyAiJFNZU1RF TV9OQU1FIjsgZXhpdDsgfQotKwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCi0rCWV4aXQg OzsKLSsgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkwMDAvOD9bNzldOjQuM2JzZDoqOiogKQot KwllY2hvIGhwcGExLjEtaHAtYnNkCi0rCWV4aXQgOzsKLSsgICAgOTAwMC84Pz86NC4zYnNkOio6 KikKLSsJZWNobyBocHBhMS4wLWhwLWJzZAotKwlleGl0IDs7Ci0rICAgICo5Pz8qOk1QRS9pWDoq OiogfCAqMzAwMCo6TVBFL2lYOio6KikKLSsJZWNobyBocHBhMS4wLWhwLW1wZWl4Ci0rCWV4aXQg OzsKLSsgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5XTpPU0YxOio6KiApCi0rCWVjaG8gaHBw YTEuMS1ocC1vc2YKLSsJZXhpdCA7OwotKyAgICBocDg/PzpPU0YxOio6KikKLSsJZWNobyBocHBh MS4wLWhwLW9zZgotKwlleGl0IDs7Ci0rICAgIGkqODY6T1NGMToqOiopCi0rCWlmIFsgLXggL3Vz ci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLW9zZjFtawotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1vc2YxCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQotKwllY2hv IGhwcGExLjEtaHAtbGl0ZXMKLSsJZXhpdCA7OwotKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29u dmV4OkNvbnZleE9TOkMxKjoqKQotKwllY2hvIGMxLWNvbnZleC1ic2QKLSsgICAgICAgIGV4aXQg OzsKLSsgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKLSsJaWYg Z2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCi0rCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotKwll bHNlIGVjaG8gYzItY29udmV4LWJzZAotKwlmaQotKyAgICAgICAgZXhpdCA7OwotKyAgICBDMzQq OkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCi0rCWVjaG8gYzM0LWNvbnZl eC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6 Q29udmV4T1M6QzM4KjoqKQotKwllY2hvIGMzOC1jb252ZXgtYnNkCi0rICAgICAgICBleGl0IDs7 Ci0rICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCi0rCWVjaG8g YzQtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7OwotKyAgICBDUkFZKlktTVA6KjoqOiopCi0r CWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0q JC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwKLSsJfCBzZWQgLWUgJ3Mv Q1JBWS4qXChbQS1aXTkwXCkvXDEvJyBcCi0rCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFS U1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKLSsJICAgICAgLWUgJ3MvXC5b Xi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkqVFM6KjoqOiopCi0rCWVjaG8gdDkwLWNy YXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4 aXQgOzsKLSsgICAgQ1JBWSpUM0U6KjoqOiopCi0rCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3Nt ayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0r ICAgIENSQVkqU1YxOio6KjoqKQotKwllY2hvIHN2MS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFT RX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgICo6VU5JQ09TL21w Oio6KikKLSsJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVfUkVMRUFTRX0gfCBzZWQg LWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIEYzMFswMV06VU5JWF9TeXN0ZW1f VjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQotKwlGVUpJVFNVX1BST0M9YHVuYW1lIC1t IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1 dnd4eXonYAotKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpL TE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdz L1wvLy8nYAotKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNl ZCAtZSAncy8gL18vJ2AKLSsgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7 RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0rICAgICAgICBleGl0IDs7Ci0rICAgIDUwMDA6 VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSsgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRy ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSsgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVf UkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xt bm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCi0rICAgICAgICBlY2hvICJzcGFyYy1m dWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0rCWV4aXQgOzsKLSsgICAgaSo4 NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgIHNwYXJjKjpCU0QvT1M6KjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tYnNk aSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkJTRC9PUzoqOiopCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgKjpGcmVlQlNEOio6KikKLSsJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCi0rCSAgICBw Yzk4KQotKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18 c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKLSsJICAgIGFtZDY0KQotKwkJZWNobyB4ODZfNjQtdW5r bm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7 OwotKwkgICAgKikKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNo byAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7Ci0rCWVzYWMKLSsJZXhp dCA7OwotKyAgICBpKjpDWUdXSU4qOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1jeWd3 aW4KLSsJZXhpdCA7OwotKyAgICAqOk1JTkdXKjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtbWluZ3czMgotKwlleGl0IDs7Ci0rICAgIGkqOndpbmRvd3MzMio6KikKLSsgICAgCSMgdW5h bWUgLW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCi0rICAgIAllY2hvICR7VU5BTUVf TUFDSElORX0tbWluZ3czMgotKwlleGl0IDs7Ci0rICAgIGkqOlBXKjoqKQotKwllY2hvICR7VU5B TUVfTUFDSElORX0tcGMtcHczMgotKwlleGl0IDs7Ci0rICAgICo6SW50ZXJpeCo6WzM0NTZdKikK LSsgICAgCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgotKwkgICAgeDg2KQotKwkJZWNobyBpNTg2 LXBjLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQlleGl0IDs7Ci0rCSAgICBFTTY0VCB8IGF1 dGhlbnRpY2FtZCkKLSsJCWVjaG8geDg2XzY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFT RX0KLSsJCWV4aXQgOzsKLSsJICAgIElBNjQpCi0rCQllY2hvIGlhNjQtdW5rbm93bi1pbnRlcml4 JHtVTkFNRV9SRUxFQVNFfQotKwkJZXhpdCA7OwotKwllc2FjIDs7Ci0rICAgIFszNDVdODY6V2lu ZG93c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2OldpbmRvd3NfTlQ6KikK LSsJZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKLSsJZXhpdCA7OwotKyAgICBpKjpXaW5k b3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Uga25vdyBp dCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwotKwkj IEl0IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNo b3VsZCB3ZQotKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBp bnN0ZWFkIG9mIGkzODY/Ci0rCWVjaG8gaTU4Ni1wYy1pbnRlcml4Ci0rCWV4aXQgOzsKLSsgICAg aSo6VVdJTio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXV3aW4KLSsJZXhpdCA7Owot KyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKLSsJZWNobyB4ODZf NjQtdW5rbm93bi1jeWd3aW4KLSsJZXhpdCA7OwotKyAgICBwKjpDWUdXSU4qOiopCi0rCWVjaG8g cG93ZXJwY2xlLXVua25vd24tY3lnd2luCi0rCWV4aXQgOzsKLSsgICAgcHJlcCo6U3VuT1M6NS4q OiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVB U0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOkdOVToqOiopCi0rCSMg dGhlIEdOVSBzeXN0ZW0KLSsJZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxb LS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8u KiQsLCdgCi0rCWV4aXQgOzsKLSsgICAgKjpHTlUvKjoqOiopCi0rCSMgb3RoZXIgc3lzdGVtcyB3 aXRoIEdOVSBsaWJjIGFuZCB1c2VybGFuZAotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScg J1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQot KwlleGl0IDs7Ci0rICAgIGkqODY6TWluaXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtbWluaXgKLSsJZXhpdCA7OwotKyAgICBhcm0qOkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0X2Nj X2Zvcl9idWlsZAotKwlpZiBlY2hvIF9fQVJNX0VBQklfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAy Pi9kZXYvbnVsbCBcCi0rCSAgICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCi0rCXRoZW4KLSsJICAg IGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwllbHNlCi0rCSAgICBl Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnVlYWJpCi0rCWZpCi0rCWV4aXQg OzsKLSsgICAgYXZyMzIqOkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgY3JpczpMaW51eDoqOiopCi0rCWVjaG8gY3Jp cy1heGlzLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGNyaXN2MzI6TGludXg6KjoqKQotKwll Y2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBmcnY6TGludXg6Kjoq KQotKyAgICAJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBpYTY0 OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgbTMycio6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBtNjgqOkxpbnV4Oio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbWlw czpMaW51eDoqOiopCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8 IEVPRiA+JGR1bW15LmMKLSsJI3VuZGVmIENQVQotKwkjdW5kZWYgbWlwcwotKwkjdW5kZWYgbWlw c2VsCi0rCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRl ZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCi0rCUNQVT1taXBzZWwKLSsJI2Vsc2UK LSsJI2lmIGRlZmluZWQoX19NSVBTRUJfXykgfHwgZGVmaW5lZChfX01JUFNFQikgfHwgZGVmaW5l ZChfTUlQU0VCKSB8fCBkZWZpbmVkKE1JUFNFQikKLSsJQ1BVPW1pcHMKLSsJI2Vsc2UKLSsJQ1BV PQotKwkjZW5kaWYKLSsJI2VuZGlmCi0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRk dW1teS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKLSsJICAgIC9eQ1BVL3sKLSsJCXM6IDo6Zwot KwkJcAotKwkgICAgfSdgIgotKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9 LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQotKwk7OwotKyAgICBtaXBzNjQ6TGludXg6Kjoq KQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1t eS5jCi0rCSN1bmRlZiBDUFUKLSsJI3VuZGVmIG1pcHM2NAotKwkjdW5kZWYgbWlwczY0ZWwKLSsJ I2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChf TUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLSsJQ1BVPW1pcHM2NGVsCi0rCSNlbHNlCi0rCSNp ZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01J UFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0rCUNQVT1taXBzNjQKLSsJI2Vsc2UKLSsJQ1BVPQot KwkjZW5kaWYKLSsJI2VuZGlmCi0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1t eS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKLSsJICAgIC9eQ1BVL3sKLSsJCXM6IDo6ZwotKwkJ cAotKwkgICAgfSdgIgotKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVu a25vd24tbGludXgtZ251IjsgZXhpdDsgfQotKwk7OwotKyAgICBvcjMyOkxpbnV4Oio6KikKLSsJ ZWNobyBvcjMyLXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjOkxpbnV4Oio6 KikKLSsJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBj NjQ6TGludXg6KjoqKQotKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0 IDs7Ci0rICAgIGFscGhhOkxpbnV4Oio6KikKLSsJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9z L14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KLSsJICBFVjUpICAgVU5BTUVf TUFDSElORT1hbHBoYWV2NSA7OwotKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFscGhhZXY1NiA7 OwotKwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLSsJICBQQ0E1NykgVU5B TUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0rCSAgRVY2KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFl djYgOzsKLSsJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLSsJICBFVjY4Kikg VU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKLSsgICAgICAgIGVzYWMKLSsJb2JqZHVtcCAtLXBy aXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKLSsJaWYgdGVz dCAiJD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsgZWxzZSBMSUJDPSIiIDsgZmkKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJDfQotKwlleGl0IDs7Ci0r ICAgIHBhcmlzYzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKLSsJIyBMb29rIGZvciBDUFUg bGV2ZWwKLSsJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9u dWxsIHwgY3V0IC1kJyAnIC1mMmAgaW4KLSsJICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1s aW51eC1nbnUgOzsKLSsJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsK LSsJICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJZXNhYwotKwlleGl0 IDs7Ci0rICAgIHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCi0rCWVjaG8g aHBwYTY0LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgczM5MDpMaW51eDoqOiog fCBzMzkweDpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKLSsJ ZXhpdCA7OwotKyAgICBzaDY0KjpMaW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElO RX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzaCo6TGludXg6KjoqKQotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBz cGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgdmF4OkxpbnV4Oio6KikKLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB4ODZf NjQ6TGludXg6KjoqKQotKwllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7 Ci0rICAgIHh0ZW5zYSo6TGludXg6KjoqKQotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVu a25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpMaW51eDoqOiopCi0rCSMgVGhl IEJGRCBsaW5rZXIga25vd3Mgd2hhdCB0aGUgZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMs IHNvCi0rCSMgZmlyc3Qgc2VlIGlmIGl0IHdpbGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGly ZWN0b3J5IHRvIHByZXZlbnQKLSsJIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRp cmVjdG9yaWVzIGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgotKwkjIFNldCBMQ19BTEw9QyB0byBl bnN1cmUgbGQgb3V0cHV0cyBtZXNzYWdlcyBpbiBFbmdsaXNoLgotKwlsZF9zdXBwb3J0ZWRfdGFy Z2V0cz1gY2QgLzsgTENfQUxMPUMgbGQgLS1oZWxwIDI+JjEgXAotKwkJCSB8IHNlZCAtbmUgJy9z dXBwb3J0ZWQgdGFyZ2V0czovIWQKLSsJCQkJICAgIHMvWyAJXVsgCV0qLyAvZwotKwkJCQkgICAg cy8uKnN1cHBvcnRlZCB0YXJnZXRzOiAqLy8KLSsJCQkJICAgIHMvIC4qLy8KLSsJCQkJICAgIHAn YAotKyAgICAgICAgY2FzZSAiJGxkX3N1cHBvcnRlZF90YXJnZXRzIiBpbgotKwkgIGVsZjMyLWkz ODYpCi0rCQlURU5UQVRJVkU9IiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251IgotKwkJOzsK LSsJICBhLm91dC1pMzg2LWxpbnV4KQotKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51 eC1nbnVhb3V0IgotKwkJZXhpdCA7OwotKwkgIGNvZmYtaTM4NikKLSsJCWVjaG8gIiR7VU5BTUVf TUFDSElORX0tcGMtbGludXgtZ251Y29mZiIKLSsJCWV4aXQgOzsKLSsJICAiIikKLSsJCSMgRWl0 aGVyIGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgotKwkJIyBvbmUg dGhhdCBkb2VzIG5vdCBnaXZlIHVzIHVzZWZ1bCAtLWhlbHAuCi0rCQllY2hvICIke1VOQU1FX01B Q0hJTkV9LXBjLWxpbnV4LWdudW9sZGxkIgotKwkJZXhpdCA7OwotKwllc2FjCi0rCSMgRGV0ZXJt aW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCi0rCWV2YWwg JHNldF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJI2lu Y2x1ZGUgPGZlYXR1cmVzLmg+Ci0rCSNpZmRlZiBfX0VMRl9fCi0rCSMgaWZkZWYgX19HTElCQ19f Ci0rCSMgIGlmIF9fR0xJQkNfXyA+PSAyCi0rCUxJQkM9Z251Ci0rCSMgIGVsc2UKLSsJTElCQz1n bnVsaWJjMQotKwkjICBlbmRpZgotKwkjIGVsc2UKLSsJTElCQz1nbnVsaWJjMQotKwkjIGVuZGlm Ci0rCSNlbHNlCi0rCSNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpIHx8IGRlZmluZWQoX19Q R0kpIHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX1NVTlBST19DQykKLSsJTElC Qz1nbnUKLSsJI2Vsc2UKLSsJTElCQz1nbnVhb3V0Ci0rCSNlbmRpZgotKwkjZW5kaWYKLSsJI2lm ZGVmIF9fZGlldGxpYmNfXwotKwlMSUJDPWRpZXRsaWJjCi0rCSNlbmRpZgotK0VPRgotKwlldmFs ICJgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCi0rCSAg ICAvXkxJQkMvewotKwkJczogOjpnCi0rCQlwCi0rCSAgICB9J2AiCi0rCXRlc3QgeCIke0xJQkN9 IiAhPSB4ICYmIHsKLSsJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIK LSsJCWV4aXQKLSsJfQotKwl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIHsgZWNobyAiJHtU RU5UQVRJVkV9IjsgZXhpdDsgfQotKwk7OwotKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQotKwkj IHB0eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGluIHRoZXJl LgotKwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFt ZSBpbiBib3RoCi0rCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCi0rCWVjaG8gaTM4Ni1zZXF1ZW50 LXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKLSsgICAgICAg ICMgVW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZl cnNpb24KLSsgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KLSsgICAg ICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0 Y2ggdGhpcywKLSsJIyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1zLgotKyAgICAgICAgIyBV c2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059Ci0rCWV4aXQgOzsKLSsgICAg aSo4NjpPUy8yOio6KikKLSsJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVu IEVNWCBVbml4IGNvbXBhdGliaWxpdHkKLSsJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCi0rCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjpYVFMt MzAwOio6U1RPUCkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAotKwlleGl0 IDs7Ci0rICAgIGkqODY6YXRoZW9zOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tYXRoZW9zCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpzeWxsYWJsZToqOiopCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1zeWxsYWJsZQotKwlleGl0IDs7Ci0rICAgIGkqODY6THlueE9TOjIu KjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC4wKjoqKQotKwllY2hv IGkzODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgaSo4 NjoqRE9TOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKLSsJZXhp dCA7OwotKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQotKwlVTkFNRV9S RUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8vJ2AKLSsJaWYgZ3JlcCBO b3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCi0r CQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KLSsJZWxzZQot KwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KLSsJZmkKLSsJZXhp dCA7OwotKyAgICBpKjg2Oio6NTpbNjc4XSopCi0rICAgIAkjIFVuaXhXYXJlIDcueCwgT3BlblVO SVggYW5kIE9wZW5TZXJ2ZXIgNi4KLSsJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdyZXAgIl5NYWNo aW5lImAgaW4KLSsJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OwotKwkgICAg KlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7Ci0rCSAgICAqUGVudCp8KkNlbGVy b24pIFVOQU1FX01BQ0hJTkU9aTY4NiA7OwotKwllc2FjCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5F fS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJT SU9OfQotKwlleGl0IDs7Ci0rICAgIGkqODY6KjozLjI6KikKLSsJaWYgdGVzdCAtZiAvdXNyL29w dGlvbnMvY2IubmFtZTsgdGhlbgotKwkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8v cCcgPC91c3Ivb3B0aW9ucy9jYi5uYW1lYAotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlz YyRVTkFNRV9SRUwKLSsJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9udWxsID4vZGV2L251bGwg OyB0aGVuCi0rCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFzZXxzZWQgLWUg J3MvLio9IC8vJylgCi0rCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAm JiBVTkFNRV9NQUNISU5FPWk0ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQ ZW50aXVtJyA+L2Rldi9udWxsKSBcCi0rCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2Ci0rCQkoL2Jp bi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKLSsJCQkm JiBVTkFNRV9NQUNISU5FPWk2ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQ ZW50aXVtIFBybycgPi9kZXYvbnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotKwkJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKLSsJZWxzZQotKwkJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgotKwlmaQotKwlleGl0IDs7Ci0rICAgIHBjOio6Kjoq KQotKwkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKLSsgICAgICAgICMgdW5hbWUgLW0g cHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0 Ci0rICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBp Mzg2LgotKwllY2hvIGkzODYtcGMtbXNkb3NkamdwcAotKyAgICAgICAgZXhpdCA7OwotKyAgICBJ bnRlbDpNYWNoOjMqOiopCi0rCWVjaG8gaTM4Ni1wYy1tYWNoMwotKwlleGl0IDs7Ci0rICAgIHBh cmFnb246KjoqOiopCi0rCWVjaG8gaTg2MC1pbnRlbC1vc2YxCi0rCWV4aXQgOzsKLSsgICAgaTg2 MDoqOjQuKjoqKSAjIGk4NjAtU1ZSNAotKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9z eXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgotKwkgIGVjaG8gaTg2MC1zdGFyZGVu dC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKLSsJZWxz ZSAjIEFkZCBvdGhlciBpODYwLVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0aGV5IGFyZSBkaXNjb3Zl cmVkLgotKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25v d24gaTg2MC1TVlI0Ci0rCWZpCi0rCWV4aXQgOzsKLSsgICAgbWluaSo6Q1RJWDpTWVMqNToqKQot KwkjICJtaW5pZnJhbWUiCi0rCWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgotKwlleGl0IDs7 Ci0rICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKLSsJZWNobyBtNjhrLWNvbnZlcmdlbnQt c3lzdgotKwlleGl0IDs7Ci0rICAgIE02ODA/MDpELU5JWDo1LjM6KikKLSsJZWNobyBtNjhrLWRp YWItZG5peAotKwlleGl0IDs7Ci0rICAgIE02OCo6KjpSM1ZbNTY3OF0qOiopCi0rCXRlc3QgLXIg L3N5c1Y2OCAmJiB7IGVjaG8gJ202OGstbW90b3JvbGEtc3lzdic7IGV4aXQ7IH0gOzsKLSsgICAg M1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4w OjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6 My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8 IFM3NTAxKjoqOjQuMDozLjApCi0rCU9TX1JFTD0nJwotKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwK LSsJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEv cCcgPCAvZXRjLy5yZWxpZGAKLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYg Pi9kZXYvbnVsbCBcCi0rCSAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4 aXQ7IH0KLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9k ZXYvbnVsbCBcCi0rCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7 IH0gOzsKLSsgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4wOiopCi0rICAgICAg ICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsgICAg ICAgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7Ci0rICAgIG02OCo6THlu eE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQotKwllY2hvIG02OGstdW5rbm93bi1seW54 b3Mke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9W OjQuKjoqKQotKwllY2hvIG02OGstYXRhcmktc3lzdjQKLSsJZXhpdCA7OwotKyAgICBUU1VOQU1J Okx5bnhPUzoyLio6KikKLSsJZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICByczYwMDA6THlueE9TOjIuKjoqKQotKwllY2hvIHJzNjAwMC11 bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBQb3dlclBDOkx5 bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQu MCo6KikKLSsJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCi0rCWVjaG8gbWlwcy1kZGUtc3lzdiR7 VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCi0r CWVjaG8gbWlwcy1zbmktc3lzdjQKLSsJZXhpdCA7OwotKyAgICBSTSo6U0lOSVgtKjoqOiopCi0r CWVjaG8gbWlwcy1zbmktc3lzdjQKLSsJZXhpdCA7OwotKyAgICAqOlNJTklYLSo6KjoqKQotKwlp ZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgotKwkJVU5BTUVfTUFDSElO RT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmkt c3lzdjQKLSsJZWxzZQotKwkJZWNobyBuczMyay1zbmktc3lzdgotKwlmaQotKwlleGl0IDs7Ci0r ICAgIFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNW UjQvTVAgZWZmb3J0Ci0rICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJh cnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KLSsgICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQK LSsgICAgICAgIGV4aXQgOzsKLSsgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCi0rCSMgRnJv bSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KLSsJIyBIb3cgYWJvdXQgZGlm ZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCi0rCWVjaG8g aHBwYTEuMS1zdHJhdHVzLXN5c3Y0Ci0rCWV4aXQgOzsKLSsgICAgKjoqOio6RlRYKikKLSsJIyBG cm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCi0rCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0Ci0r CWV4aXQgOzsKLSsgICAgaSo4NjpWT1M6KjoqKQotKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVz LmNvbS4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9zCi0rCWV4aXQgOzsKLSsg ICAgKjpWT1M6KjoqKQotKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KLSsJZWNobyBo cHBhMS4xLXN0cmF0dXMtdm9zCi0rCWV4aXQgOzsKLSsgICAgbWM2OCo6QS9VWDoqOiopCi0rCWVj aG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbmV3cyo6 TkVXUy1PUzo2KjoqKQotKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2Ci0rCWV4aXQgOzsKLSsgICAg UlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6KjoqIHwgUiowMDA6VU5J WF9TVjoqOiopCi0rCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgotKwkgICAgICAgIGVjaG8gbWlw cy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSsJZWxzZQotKwkgICAgICAgIGVjaG8gbWlwcy11 bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rICAgICAgICBleGl0IDs7Ci0rICAg IEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQ UEMgb25seS4KLSsJZWNobyBwb3dlcnBjLWJlLWJlb3MKLSsJZXhpdCA7OwotKyAgICBCZU1hYzpC ZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCi0r CWVjaG8gcG93ZXJwYy1hcHBsZS1iZW9zCi0rCWV4aXQgOzsKLSsgICAgQmVQQzpCZU9TOio6KikJ IyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJZWNobyBpNTg2LXBjLWJl b3MKLSsJZXhpdCA7OwotKyAgICBTWC00OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDQtbmVjLXN1 cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtNTpTVVBFUi1VWDoqOiop Ci0rCWVjaG8gc3g1LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAg IFNYLTY6U1VQRVItVVg6KjoqKQotKwllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICBTWC03OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDctbmVjLXN1 cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU1gtODpTVVBFUi1VWDoqOiop Ci0rCWVjaG8gc3g4LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAg IFNYLThSOlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDhyLW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgIFBvd2VyKjpSaGFwc29keToqOiopCi0rCWVjaG8gcG93ZXJw Yy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOlJoYXBz b2R5Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWFwcGxlLXJoYXBzb2R5JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6RGFyd2luOio6KikKLSsJVU5BTUVfUFJPQ0VTU09S PWB1bmFtZSAtcGAgfHwgVU5BTUVfUFJPQ0VTU09SPXVua25vd24KLSsJY2FzZSAkVU5BTUVfUFJP Q0VTU09SIGluCi0rCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OwotKwll c2FjCi0rCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6 KikKLSsJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAKLSsJaWYgdGVzdCAiJFVOQU1FX1BST0NF U1NPUiIgPSAieDg2IjsgdGhlbgotKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKLSsJCVVOQU1FX01B Q0hJTkU9cGMKLSsJZmkKLSsJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5F fS1udG8tcW54JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6UU5YOio6NCopCi0r CWVjaG8gaTM4Ni1wYy1xbngKLSsJZXhpdCA7OwotKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoq OiopCi0rCWVjaG8gbnNlLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsg ICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQotKwllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6Tm9uU3RvcC1VWDoqOiopCi0rCWVjaG8gbWlw cy1jb21wYXEtbm9uc3RvcHV4Ci0rCWV4aXQgOzsKLSsgICAgQlMyMDAwOlBPU0lYKjoqOiopCi0r CWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgotKwlleGl0IDs7Ci0rICAgIERTLyo6VU5JWF9TeXN0 ZW1fVjoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6UGxhbjk6KjoqKQotKwkjICJ1bmFtZSAtbSIg aXMgbm90IGNvbnNpc3RlbnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKLSsJIyBpcyBj b252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKLSsJIyBvcGVy YXRpbmcgc3lzdGVtcy4KLSsJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KLSsJICAg IFVOQU1FX01BQ0hJTkU9aTM4NgotKwllbHNlCi0rCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1dHlw ZSIKLSsJZmkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKLSsJZXhpdCA7 OwotKyAgICAqOlRPUFMtMTA6KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCi0rCWV4 aXQgOzsKLSsgICAgKjpURU5FWDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAotKwll eGl0IDs7Ci0rICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6 VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAotKwlleGl0IDs7Ci0rICAgIFhL TC0xOlRPUFMtMjA6KjoqIHwgVFlQRTU6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAteGtsLXRv cHMyMAotKwlleGl0IDs7Ci0rICAgICo6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93 bi10b3BzMjAKLSsJZXhpdCA7OwotKyAgICAqOklUUzoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93 bi1pdHMKLSsJZXhpdCA7OwotKyAgICBTRUk6KjoqOlNFSVVYKQotKyAgICAgICAgZWNobyBtaXBz LXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRyYWdvbkZseToq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOipWTVM6 KjoqKQotKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsJY2Fz ZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLSsJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBl eGl0IDs7Ci0rCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBWKikg ZWNobyB2YXgtZGVjLXZtcyA7IGV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICAqOlhFTklYOio6U3lz VikKLSsJZWNobyBpMzg2LXBjLXhlbml4Ci0rCWV4aXQgOzsKLSsgICAgaSo4Njpza3lvczoqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFTRX1g IHwgc2VkIC1lICdzLyAuKiQvLycKLSsJZXhpdCA7OwotKyAgICBpKjg2OnJkb3M6KjoqKQotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tcGMtcmRvcwotKwlleGl0IDs7Ci0rZXNhYwotKwotKyNlY2hv ICcoTm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4m MgotKyNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVB U0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKLSsKLStldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0r Y2F0ID4kZHVtbXkuYyA8PEVPRgotKyNpZmRlZiBfU0VRVUVOVF8KLSsjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgotKyMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLSsjZW5kaWYKLSttYWluICgpCi0r ewotKyNpZiBkZWZpbmVkIChzb255KQotKyNpZiBkZWZpbmVkIChNSVBTRUIpCi0rICAvKiBCRkQg d2FudHMgImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBj aGFuZ2VkLAotKyAgICAgSSBkb24ndCBrbm93Li4uLiAgKi8KLSsgIHByaW50ZiAoIm1pcHMtc29u eS1ic2RcbiIpOyBleGl0ICgwKTsKLSsjZWxzZQotKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSsg IHByaW50ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKLSsjaWZkZWYgTkVXU09TNAotKyAgICAg ICAgICAiNCIKLSsjZWxzZQotKwkgICIiCi0rI2VuZGlmCi0rICAgICAgICAgKTsgZXhpdCAoMCk7 Ci0rI2VuZGlmCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChf X2Fjb3JuKSAmJiBkZWZpbmVkIChfX3VuaXgpCi0rICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4 XG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVm aW5lZCAoaHB1eCkKLSsgIHByaW50ZiAoIm02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2Vu ZGlmCi0rCi0rI2lmIGRlZmluZWQgKE5lWFQpCi0rI2lmICFkZWZpbmVkIChfX0FSQ0hJVEVDVFVS RV9fKQotKyNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKLSsjZW5kaWYKLSsgIGludCB2 ZXJzaW9uOwotKyAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwo WzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOwotKyAgaWYgKHZlcnNpb24gPCA0KQotKyAg ICBwcmludGYgKCIlcy1uZXh0LW5leHRzdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNp b24pOwotKyAgZWxzZQotKyAgICBwcmludGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJD SElURUNUVVJFX18sIHZlcnNpb24pOwotKyAgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rCi0rI2lmIGRl ZmluZWQgKE1VTFRJTUFYKSB8fCBkZWZpbmVkIChuMTYpCi0rI2lmIGRlZmluZWQgKFVNQVhWKQot KyAgcHJpbnRmICgibnMzMmstZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgwKTsKLSsjZWxzZQotKyNp ZiBkZWZpbmVkIChDTVUpCi0rICBwcmludGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQg KDApOwotKyNlbHNlCi0rICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7 Ci0rI2VuZGlmCi0rI2VuZGlmCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKF9fMzg2QlNEX18p Ci0rICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNp ZiBkZWZpbmVkIChzZXF1ZW50KQotKyNpZiBkZWZpbmVkIChpMzg2KQotKyAgcHJpbnRmICgiaTM4 Ni1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQgKG5z MzIwMDApCi0rICBwcmludGYgKCJuczMyay1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7Ci0r I2VuZGlmCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKLSsgICAgc3RydWN0 IHV0c25hbWUgdW47Ci0rCi0rICAgIHVuYW1lKCZ1bik7Ci0rCi0rICAgIGlmIChzdHJuY21wKHVu LnZlcnNpb24sICJWMiIsIDIpID09IDApIHsKLSsJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJc biIpOyBleGl0ICgwKTsKLSsgICAgfQotKyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjEi LCAyKSA9PSAwKSB7IC8qIFhYWCBpcyBWMSBjb3JyZWN0PyAqLwotKwlwcmludGYgKCJpMzg2LXNl cXVlbnQtcHR4MVxuIik7IGV4aXQgKDApOwotKyAgICB9Ci0rICAgIHByaW50ZiAoImkzODYtc2Vx dWVudC1wdHhcbiIpOyBleGl0ICgwKTsKLSsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAodmF4 KQotKyMgaWYgIWRlZmluZWQgKHVsdHJpeCkKLSsjICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSsj ICBpZiBkZWZpbmVkIChCU0QpCi0rIyAgIGlmIEJTRCA9PSA0MwotKyAgICAgIHByaW50ZiAoInZh eC1kZWMtYnNkNC4zXG4iKTsgZXhpdCAoMCk7Ci0rIyAgIGVsc2UKLSsjICAgIGlmIEJTRCA9PSAx OTkwMDYKLSsgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM3Jlbm9cbiIpOyBleGl0ICgwKTsK LSsjICAgIGVsc2UKLSsgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOwot KyMgICAgZW5kaWYKLSsjICAgZW5kaWYKLSsjICBlbHNlCi0rICAgIHByaW50ZiAoInZheC1kZWMt YnNkXG4iKTsgZXhpdCAoMCk7Ci0rIyAgZW5kaWYKLSsjIGVsc2UKLSsgICAgcHJpbnRmICgidmF4 LWRlYy11bHRyaXhcbiIpOyBleGl0ICgwKTsKLSsjIGVuZGlmCi0rI2VuZGlmCi0rCi0rI2lmIGRl ZmluZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCi0rICBwcmludGYgKCJpODYwLWFsbGlh bnQtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rCi0rICBleGl0ICgxKTsKLSt9Ci0rRU9G Ci0rCi0rJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwgJiYgU1lT VEVNX05BTUU9YCRkdW1teWAgJiYKLSsJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9Ci0r Ci0rIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgotKwot K3Rlc3QgLWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsg ZXhpdDsgfQotKwotKyMgQ29udmV4IHZlcnNpb25zIHRoYXQgcHJlZGF0ZSB1bmFtZSBjYW4gdXNl IGdldHN5c2luZm8oMSkKLSsKLStpZiBbIC14IC91c3IvY29udmV4L2dldHN5c2luZm8gXQotK3Ro ZW4KLSsgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KLSsgICAgYzEqKQotKwll Y2hvIGMxLWNvbnZleC1ic2QKLSsJZXhpdCA7OwotKyAgICBjMiopCi0rCWlmIGdldHN5c2luZm8g LWYgc2NhbGFyX2FjYwotKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKLSsJZWxzZSBlY2hvIGMy LWNvbnZleC1ic2QKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBjMzQqKQotKwllY2hvIGMzNC1jb252 ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgYzM4KikKLSsJZWNobyBjMzgtY29udmV4LWJzZAotKwll eGl0IDs7Ci0rICAgIGM0KikKLSsJZWNobyBjNC1jb252ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAg ZXNhYwotK2ZpCi0rCi0rY2F0ID4mMiA8PEVPRgotKyQwOiB1bmFibGUgdG8gZ3Vlc3Mgc3lzdGVt IHR5cGUKLSsKLStUaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFp bGVkIHRvIHJlY29nbml6ZQotK3RoZSBvcGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0 IGlzIGFkdmlzZWQgdGhhdCB5b3UKLStkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNp b24gb2YgdGhlIGNvbmZpZyBzY3JpcHRzIGZyb20KLSsKLSsgIGh0dHA6Ly9zYXZhbm5haC5nbnUu b3JnL2NnaS1iaW4vdmlld2N2cy8qY2hlY2tvdXQqL2NvbmZpZy9jb25maWcvY29uZmlnLmd1ZXNz Ci0rYW5kCi0rICBodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9jZ2ktYmluL3ZpZXdjdnMvKmNoZWNr b3V0Ki9jb25maWcvY29uZmlnL2NvbmZpZy5zdWIKLSsKLStJZiB0aGUgdmVyc2lvbiB5b3UgcnVu ICgkMCkgaXMgYWxyZWFkeSB1cCB0byBkYXRlLCBwbGVhc2UKLStzZW5kIHRoZSBmb2xsb3dpbmcg ZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQotK3BlcnRpbmVudCB0 byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVk Ci0raW5mb3JtYXRpb24gdG8gaGFuZGxlIHlvdXIgc3lzdGVtLgotKwotK2NvbmZpZy5ndWVzcyB0 aW1lc3RhbXAgPSAkdGltZXN0YW1wCi0rCi0rdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYv bnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVs bCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8 fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBl Y2hvIHVua25vd25gCi0rCi0rL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1w KSAyPi9kZXYvbnVsbGAKLSsvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4v ZGV2L251bGxgCi0rCi0raG9zdGluZm8gICAgICAgICAgICAgICA9IGAoaG9zdGluZm8pIDI+L2Rl di9udWxsYAotKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rl di9udWxsYAotKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+ L2Rldi9udWxsYAotKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2 L251bGxgCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4v ZGV2L251bGxgCi0rL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lz aW5mbykgMj4vZGV2L251bGxgCi0rCi0rVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0K LStVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQotK1VOQU1FX1NZU1RFTSAgPSAke1VO QU1FX1NZU1RFTX0KLStVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQotK0VPRgotKwot K2V4aXQgMQotKwotKyMgTG9jYWwgdmFyaWFibGVzOgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0 ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFt cD0nIgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgotKyMgdGltZS1zdGFt cC1lbmQ6ICInIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9j b25maWcuc3ViIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1YgotLS0tIHNvY2kt My4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuc3ViCTIwMDkt MDUtMDYgMDE6MzE6NTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2NTggQEAKLSsjISAv YmluL3NoCi0rIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCi0r IyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwKLSsjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg MjAwNywgMjAwOAotKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSt0aW1l c3RhbXA9JzIwMDgtMDEtMTYnCi0rCi0rIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29t bW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0rIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGlu IHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCi0rIyBjYW4gaGFuZGxl IHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgot KyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsj Ci0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0 cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCi0rIyAwMjExMC0xMzAxLCBVU0EuCi0rIwot KyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0g dGhhdCBjb250YWlucyBhCi0rIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0 b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9u IHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwotKwot KyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJt aXQgYSBjb250ZXh0Ci0rIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cg ZW50cnkuCi0rIwotKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBj YW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCi0rIyBTdXBwbHkgdGhlIHNwZWNpZmll ZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCi0rIyBJZiBpdCBpcyBpbnZhbGlk LCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUg MS4KLSsjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBz dGRvdXQgYW5kIHN1Y2NlZWQuCi0rCi0rIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhl IHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKLSsjIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUg dHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcwotKyMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3 aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KLSsjIEVhY2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBm b3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCi0rIyBpdCBkb2VzIG5vdCBz dXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKLSsjIGEgZmFp bHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBmcm9tIGEgbWVhbmluZ2xlc3MK LSsjIGNvbmZpZ3VyYXRpb24uCi0rCi0rIyBUaGUgZ29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gbWFw IGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4KLSsjIG1hY2hpbmUgc3BlY2lm aWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06Ci0rIwlDUFVf VFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQotKyMgb3IgaW4gc29tZSBjYXNlcywg dGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgotKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5F TC1PUEVSQVRJTkdfU1lTVEVNCi0rIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBl IG9mIHNwZWNpZmljYXRpb24uCi0rCi0rbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdg Ci0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZUwotKyAgICAg ICAkMCBbT1BUSU9OXSBBTElBUwotKwotK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFt ZS4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhp cyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxh c3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2 ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8g PGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5z dWIgKCR0aW1lc3RhbXApCi0rCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r Ci0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25k aXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0raGVscD0iCi0r VHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMgUGFyc2UgY29t bWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQxIGluCi0rICAg IC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAi IDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8gIiR2ZXJzaW9u IiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAgZWNobyAiJHVz YWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSsg ICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KLSsg ICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0 aW9uICQxJGhlbHAiCi0rICAgICAgIGV4aXQgMSA7OwotKwotKyAgICAqbG9jYWwqKQotKyAgICAg ICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4KLSsgICAgICAg ZWNobyAkMQotKyAgICAgICBleGl0IDs7Ci0rCi0rICAgICogKQotKyAgICAgICBicmVhayA7Owot KyAgZXNhYwotK2RvbmUKLSsKLStjYXNlICQjIGluCi0rIDApIGVjaG8gIiRtZTogbWlzc2luZyBh cmd1bWVudCRoZWxwIiA+JjIKLSsgICAgZXhpdCAxOzsKLSsgMSkgOzsKLSsgKikgZWNobyAiJG1l OiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICAgIGV4aXQgMTs7Ci0rZXNhYwotKwot KyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9y IEtFUk5FTC1PUyAoaWYgYW55KS4KLSsjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2 YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgotK21heWJlX29zPWBlY2hvICQxIHwgc2VkICdz L15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAotK2Nhc2UgJG1heWJlX29zIGluCi0rICBu dG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBs aW51eC11Y2xpYmMqIHwgXAotKyAgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2Zy ZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgXAotKyAgc3Rvcm0t Y2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQotKyAgICBvcz0tJG1heWJlX29zCi0rICAg IGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkk L1wxLydgCi0rICAgIDs7Ci0rICAqKQotKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk ICdzLy1bXi1dKiQvLydgCi0rICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQotKyAgICB0 aGVuIG9zPWBlY2hvICQxIHwgc2VkICdzLy4qLS8tLydgCi0rICAgIGVsc2Ugb3M9OyBmaQotKyAg ICA7OwotK2VzYWMKLSsKLSsjIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBu b3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KLSsjIyMgdGhhdCB0aGluZ3MgbGlrZSBjb25m aWcuc3ViIGRlY3N0YXRpb24tMzEwMCB3b3JrLiAgV2UgYWxzbwotKyMjIyByZWNvZ25pemUgc29t ZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKLSsj IyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KLStjYXNlICRv cyBpbgotKwktc3VuKm9zKikKLSsJCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFu ZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgotKwkJOzsKLSsJLWRlYyogfCAtbWlwcyogfCAtc2Vx dWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKLSsJLWF0dCog fCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBc Ci0rCS11bmljb20qIHwgLWlibSogfCAtbmV4dCB8IC1ocCB8IC1pc2kqIHwgLWFwb2xsbyB8IC1h bHRvcyogfCBcCi0rCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAq IHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCi0rCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwg LWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0rCS1oYXJyaXMgfCAt ZG9scGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5zIHwgLW1hc3Njb21wIHwg XAotKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5KQotKwkJb3M9Ci0rCQliYXNpY19t YWNoaW5lPSQxCi0rCQk7OwotKwktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9u ZCkKLSsJCW9zPQotKwkJYmFzaWNfbWFjaGluZT0kMQotKwkJOzsKLSsJLXNjb3V0KQotKwkJOzsK LSsJLXdycykKLSsJCW9zPS12eHdvcmtzCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwkt Y2hvcnVzb3MqKQotKwkJb3M9LWNob3J1c29zCi0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7Owot KyAJLWNob3J1c3JkYikKLSsgCQlvcz0tY2hvcnVzcmRiCi0rCQliYXNpY19tYWNoaW5lPSQxCi0r IAkJOzsKLSsJLWhpdXgqKQotKwkJb3M9LWhpdXh3ZTIKLSsJCTs7Ci0rCS1zY282KQotKwkJb3M9 LXNjbzV2NgotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1w Yy8nYAotKwkJOzsKLSsJLXNjbzUpCi0rCQlvcz0tc2NvMy4ydjUKLSsJCWJhc2ljX21hY2hpbmU9 YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY280KQotKwkJ b3M9LXNjbzMuMnY0Ci0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCi0rCQk7OwotKwktc2NvMy4yLls0LTldKikKLSsJCW9zPWBlY2hvICRvcyB8IHNl ZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28zLjJ2WzQtOV0qKQotKwkJIyBE b24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY281 djYqKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4K LSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJ CTs7Ci0rCS1zY28qKQotKwkJb3M9LXNjbzMuMnYyCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQx IHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktdWRrKikKLSsJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1pc2Mp Ci0rCQlvcz0taXNjMi4yCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LS4qLzg2LXBjLydgCi0rCQk7OwotKwktY2xpeCopCi0rCQliYXNpY19tYWNoaW5lPWNsaXBwZXIt aW50ZXJncmFwaAotKwkJOzsKLSsJLWlzYyopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwg c2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktbHlueCopCi0rCQlvcz0tbHlueG9z Ci0rCQk7OwotKwktcHR4KikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3Mv ODYtLiovODYtc2VxdWVudC8nYAotKwkJOzsKLSsJLXdpbmRvd3NudCopCi0rCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50LydgCi0rCQk7OwotKwktcHNvcyopCi0rCQlv cz0tcHNvcwotKwkJOzsKLSsJLW1pbnQgfCAtbWludFswLTldKikKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1hdGFyaQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rZXNhYwotKwotKyMgRGVjb2RlIGFsaWFz ZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgotK2Nhc2UgJGJhc2ljX21h Y2hpbmUgaW4KLSsJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBh bnkgbmFtZS4KLSsJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3Bl Y2lhbCBtZWFuaW5ncyBiZWxvdy4KLSsJMTc1MGEgfCA1ODAgXAotKwl8IGEyOWsgXAotKwl8IGFs cGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1 WzY3XSBcCi0rCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBo YTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCi0rCXwgYW0zM18yLjAgXAotKwl8IGFyYyB8 IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8 IGF2ciB8IGF2cjMyIFwKLSsJfCBiZmluIFwKLSsJfCBjNHggfCBjbGlwcGVyIFwKLSsJfCBkMTB2 IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAotKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKLSsJfCBo ODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10g fCBocHBhNjQgXAotKwl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAotKwl8IGlwMmsgfCBp cTIwMDAgXAotKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsg XAotKwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCBcCi0rCXwgbWlwcyB8 IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCi0rCXwgbWlwczE2IFwKLSsJfCBt aXBzNjQgfCBtaXBzNjRlbCBcCi0rCXwgbWlwczY0dnIgfCBtaXBzNjR2cmVsIFwKLSsJfCBtaXBz NjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAotKwl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEw MGVsIFwKLSsJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCi0rCXwgbWlwczY0dnI1 MDAwIHwgbWlwczY0dnI1MDAwZWwgXAotKwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkwMGVs IFwKLSsJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCi0rCXwgbWlwc2lzYTMycjIgfCBtaXBz aXNhMzJyMmVsIFwKLSsJfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCi0rCXwgbWlwc2lzYTY0 cjIgfCBtaXBzaXNhNjRyMmVsIFwKLSsJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBc Ci0rCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKLSsJfCBtaXBzdHgzOSB8 IG1pcHN0eDM5ZWwgXAotKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKLSsJfCBtdCBcCi0rCXwgbXNw NDMwIFwKLSsJfCBuaW9zIHwgbmlvczIgXAotKwl8IG5zMTZrIHwgbnMzMmsgXAotKwl8IG9yMzIg XAotKwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCi0rCXwgcG93ZXJwYyB8IHBvd2VycGM2 NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAotKwl8IHB5cmFtaWQgXAotKwl8 IHNjb3JlIFwKLSsJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzIzXWUgfCBzaFszNF1l YiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAotKwl8IHNoNjQg fCBzaDY0bGUgXAotKwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2NHYgfCBz cGFyYzg2eCB8IHNwYXJjbGV0IHwgc3BhcmNsaXRlIFwKLSsJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8 IHNwYXJjdjliIHwgc3BhcmN2OXYgXAotKwl8IHNwdSB8IHN0cm9uZ2FybSBcCi0rCXwgdGFob2Ug fCB0aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKLSsJfCB2ODUwIHwgdjg1MGUgXAotKwl8 IHdlMzJrIFwKLSsJfCB4ODYgfCB4YzE2eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3Jt eTE2IHwgeHRlbnNhIFwKLSsJfCB6OGspCi0rCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5l LXVua25vd24KLSsJCTs7Ci0rCW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMikKLSsJ CSMgTW90b3JvbGEgNjhIQzExLzEyLgotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11 bmtub3duCi0rCQlvcz0tbm9uZQotKwkJOzsKLSsJbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4 Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6OGspCi0rCQk7OwotKwltczEpCi0r CQliYXNpY19tYWNoaW5lPW10LXVua25vd24KLSsJCTs7Ci0rCi0rCSMgV2UgdXNlIGBwYycgcmF0 aGVyIHRoYW4gYHVua25vd24nCi0rCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3Jt YWxseSBhcmUsIGFuZAotKwkjICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVz ZSBiZWdpbm5pbmcgdXNlcnMuCi0rCWkqODYgfCB4ODZfNjQpCi0rCSAgYmFzaWNfbWFjaGluZT0k YmFzaWNfbWFjaGluZS1wYwotKwkgIDs7Ci0rCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29t cGFueSBuYW1lIHdvcmQuCi0rCSotKi0qKQotKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24g XGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCi0r CQlleGl0IDEKLSsJCTs7Ci0rCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aCBj b21wYW55IG5hbWUuCi0rCTU4MC0qIFwKLSsJfCBhMjlrLSogXAotKwl8IGFscGhhLSogfCBhbHBo YWV2WzQtOF0tKiB8IGFscGhhZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSogXAotKwl8IGFscGhhNjQt KiB8IGFscGhhNjRldls0LThdLSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxwaGE2NGV2Nls3OF0tKiBc Ci0rCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCi0rCXwg YXJtLSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCi0rCXwgYXZy LSogfCBhdnIzMi0qIFwKLSsJfCBiZmluLSogfCBiczIwMDAtKiBcCi0rCXwgY1sxMjNdKiB8IGMz MC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCi0rCXwg Y2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKLSsJfCBkMTB2LSogfCBkMzB2LSogfCBk bHgtKiBcCi0rCXwgZWx4c2ktKiBcCi0rCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZmlkby0qIHwg ZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAotKwl8IGg4MzAwLSogfCBoODUwMC0qIFwKLSsJfCBo cHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0 LSogXAotKwl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCi0rCXwgaXAyay0q IHwgaXEyMDAwLSogXAotKwl8IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKLSsJfCBtNjgw MDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAot Kwl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiBcCi0rCXwgbWlwcy0qIHwg bWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAotKwl8IG1pcHMxNi0q IFwKLSsJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAotKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2 cmVsLSogXAotKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAotKwl8IG1pcHM2 NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCi0rCXwgbWlwczY0dnI0MzAwLSogfCBtaXBz NjR2cjQzMDBlbC0qIFwKLSsJfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAot Kwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCi0rCXwgbWlwc2lzYTMyLSog fCBtaXBzaXNhMzJlbC0qIFwKLSsJfCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwK LSsJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAotKwl8IG1pcHNpc2E2NHIyLSogfCBt aXBzaXNhNjRyMmVsLSogXAotKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBc Ci0rCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCi0rCXwgbWlwc3R4 MzktKiB8IG1pcHN0eDM5ZWwtKiBcCi0rCXwgbW1peC0qIFwKLSsJfCBtdC0qIFwKLSsJfCBtc3A0 MzAtKiBcCi0rCXwgbmlvcy0qIHwgbmlvczItKiBcCi0rCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2 ay0qIHwgbnMzMmstKiBcCi0rCXwgb3Jpb24tKiBcCi0rCXwgcGRwMTAtKiB8IHBkcDExLSogfCBw ai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCi0rCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0 LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKLSsJfCBweXJhbWlk LSogXAotKwl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKLSsJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNo WzI0XWEtKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAotKwl8 IHNobGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAot Kwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJj ODZ4LSogfCBzcGFyY2xldC0qIFwKLSsJfCBzcGFyY2xpdGUtKiBcCi0rCXwgc3BhcmN2OC0qIHwg c3BhcmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0q IHwgc3g/LSogXAotKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKLSsJfCB0aWMzMC0qIHwgdGljNHgt KiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiBcCi0rCXwgdHJvbi0q IFwKLSsJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAotKwl8IHdlMzJrLSogXAotKwl8IHg4 Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVb YmxdLSogXAotKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKLSsJfCB5bXAtKiBcCi0rCXwg ejhrLSopCi0rCQk7OwotKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQg Y29tcGFueSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCi0rCXh0ZW5zYSopCi0rCQliYXNpY19tYWNo aW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KLSsJCTs7Ci0rCSMgUmVjb2duaXplIHRoZSB2YXJp b3VzIG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKLSsJIyBmb3IgYSBDUFUg dHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KLSsJMzg2YnNkKQot KwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCTNiMSB8 IDczMDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwgc2FmYXJpIHwgdW5peHBjKQot KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0Ci0rCQk7OwotKwkzYiopCi0rCQliYXNpY19tYWNo aW5lPXdlMzJrLWF0dAotKwkJOzsKLSsJYTI5a2hpZikKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1h bWQKLSsJCW9zPS11ZGkKLSsJCTs7Ci0rICAgIAlhYmFjdXMpCi0rCQliYXNpY19tYWNoaW5lPWFi YWN1cy11bmtub3duCi0rCQk7OwotKwlhZG9iZTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4MDEw LWFkb2JlCi0rCQlvcz0tc2NvdXQKLSsJCTs7Ci0rCWFsbGlhbnQgfCBmeDgwKQotKwkJYmFzaWNf bWFjaGluZT1meDgwLWFsbGlhbnQKLSsJCTs7Ci0rCWFsdG9zIHwgYWx0b3MzMDY4KQotKwkJYmFz aWNfbWFjaGluZT1tNjhrLWFsdG9zCi0rCQk7OwotKwlhbTI5aykKLSsJCWJhc2ljX21hY2hpbmU9 YTI5ay1ub25lCi0rCQlvcz0tYnNkCi0rCQk7OwotKwlhbWQ2NCkKLSsJCWJhc2ljX21hY2hpbmU9 eDg2XzY0LXBjCi0rCQk7OwotKwlhbWQ2NC0qKQotKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCWFtZGFobCkK LSsJCWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWFtaWdh IHwgYW1pZ2EtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQk7OwotKwlhbWln YW9zIHwgYW1pZ2Fkb3MpCi0rCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgotKwkJb3M9LWFt aWdhb3MKLSsJCTs7Ci0rCWFtaWdhdW5peCB8IGFtaXgpCi0rCQliYXNpY19tYWNoaW5lPW02OGst dW5rbm93bgotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwlhcG9sbG82OCkKLSsJCWJhc2ljX21hY2hp bmU9bTY4ay1hcG9sbG8KLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlhcG9sbG82OGJzZCkKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWF1eCkKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay1hcHBsZQotKwkJb3M9LWF1eAotKwkJOzsKLSsJYmFsYW5jZSkKLSsJ CWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAotKwkJb3M9LWR5bml4Ci0rCQk7OwotKwlibGFj a2ZpbikKLSsJCWJhc2ljX21hY2hpbmU9YmZpbi11bmtub3duCi0rCQlvcz0tbGludXgKLSsJCTs7 Ci0rCWJsYWNrZmluLSopCi0rCQliYXNpY19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCW9zPS1saW51eAotKwkJOzsKLSsJYzkwKQotKwkJ YmFzaWNfbWFjaGluZT1jOTAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJY29udmV4LWMx KQotKwkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZl eC1jMikKLSsJCWJhc2ljX21hY2hpbmU9YzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwlj b252ZXgtYzMyKQotKwkJYmFzaWNfbWFjaGluZT1jMzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7 OwotKwljb252ZXgtYzM0KQotKwkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4Ci0rCQlvcz0tYnNk Ci0rCQk7OwotKwljb252ZXgtYzM4KQotKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4Ci0rCQlv cz0tYnNkCi0rCQk7OwotKwljcmF5IHwgajkwKQotKwkJYmFzaWNfbWFjaGluZT1qOTAtY3JheQot KwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJY3JheW52KQotKwkJYmFzaWNfbWFjaGluZT1jcmF5bnYt Y3JheQotKwkJb3M9LXVuaWNvc21wCi0rCQk7OwotKwljcjE2KQotKwkJYmFzaWNfbWFjaGluZT1j cjE2LXVua25vd24KLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCWNyZHMgfCB1bm9zKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLWNyZHMKLSsJCTs7Ci0rCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZz KikKLSsJCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCi0rCQk7OwotKwljcmlzIHwgY3Jpcy0q IHwgZXRyYXgqKQotKwkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKLSsJCTs7Ci0rCWNyeCkKLSsJ CWJhc2ljX21hY2hpbmU9Y3J4LXVua25vd24KLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCWRhMzAgfCBk YTMwLSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstZGEzMAotKwkJOzsKLSsJZGVjc3RhdGlvbiB8 IGRlY3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0 YXRuKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLWRlYwotKwkJOzsKLSsJZGVjc3lzdGVtMTAqIHwg ZGVjMTAqKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKLSsJCW9zPS10b3BzMTAKLSsJCTs7 Ci0rCWRlY3N5c3RlbTIwKiB8IGRlYzIwKikKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCi0r CQlvcz0tdG9wczIwCi0rCQk7OwotKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90 b3JvbGEtZGVsdGEgXAotKwkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkK LSsJCWJhc2ljX21hY2hpbmU9bTY4ay1tb3Rvcm9sYQotKwkJOzsKLSsJZGVsdGE4OCkKLSsJCWJh c2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9sYQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwlkamdwcCkK LSsJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYwotKwkJb3M9LW1zZG9zZGpncHAKLSsJCTs7Ci0rCWRw eDIwIHwgZHB4MjAtKikKLSsJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLSsJCW9zPS1ib3N4 Ci0rCQk7OwotKwlkcHgyKiB8IGRweDIqLWJ1bGwpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYnVs bAotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwllYm1vbjI5aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5 ay1hbWQKLSsJCW9zPS1lYm1vbgotKwkJOzsKLSsJZWx4c2kpCi0rCQliYXNpY19tYWNoaW5lPWVs eHNpLWVseHNpCi0rCQlvcz0tYnNkCi0rCQk7OwotKwllbmNvcmUgfCB1bWF4IHwgbW1heCkKLSsJ CWJhc2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCi0rCQk7OwotKwllczE4MDAgfCBPU0U2OGsgfCBv c2U2OGsgfCBvc2UgfCBPU0UpCi0rCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KLSsJCW9z PS1vc2UKLSsJCTs7Ci0rCWZ4MjgwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50Ci0r CQk7OwotKwlnZW5peCkKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMKLSsJCTs7Ci0rCWdtaWNy bykKLSsJCWJhc2ljX21hY2hpbmU9dHJvbi1nbWljcm8KLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwln bzMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tZ28zMgotKwkJOzsKLSsJaDMw NTByKiB8IGhpdXgqKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJCW9zPS1o aXV4d2UyCi0rCQk7OwotKwloODMwMGhtcykKLSsJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNo aQotKwkJb3M9LWhtcwotKwkJOzsKLSsJaDgzMDB4cmF5KQotKwkJYmFzaWNfbWFjaGluZT1oODMw MC1oaXRhY2hpCi0rCQlvcz0teHJheQotKwkJOzsKLSsJaDg1MDBobXMpCi0rCQliYXNpY19tYWNo aW5lPWg4NTAwLWhpdGFjaGkKLSsJCW9zPS1obXMKLSsJCTs7Ci0rCWhhcnJpcykKLSsJCWJhc2lj X21hY2hpbmU9bTg4ay1oYXJyaXMKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJaHAzMDAtKikKLSsJ CWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJOzsKLSsJaHAzMDBic2QpCi0rCQliYXNpY19tYWNo aW5lPW02OGstaHAKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWhwMzAwaHB1eCkKLSsJCWJhc2ljX21h Y2hpbmU9bTY4ay1ocAotKwkJb3M9LWhwdXgKLSsJCTs7Ci0rCWhwM2s5WzAtOV1bMC05XSB8IGhw OVswLTldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLSsJCTs7Ci0rCWhwOWsy WzAtOV1bMC05XSB8IGhwOWszMVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAKLSsJ CTs7Ci0rCWhwOWszWzItOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJOzsK LSsJaHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9aHBw YTEuMC1ocAotKwkJOzsKLSsJaHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQotKwkJ YmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQk7OwotKwlocDlrNzhbMC05XSB8IGhwNzhbMC05 XSkKLSsJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtaHAKLSsJCTs7Ci0rCWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBocDgw WzI0XSB8IGhwOWs4Wzc4XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBocDg5MykKLSsJCSMgRklY TUU6IHJlYWxseSBocHBhMi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7 Ci0rCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQotKwkJYmFzaWNfbWFjaGlu ZT1ocHBhMS4xLWhwCi0rCQk7OwotKwlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQot KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0rCQk7OwotKwlocHBhLW5leHQpCi0rCQlvcz0t bmV4dHN0ZXAzCi0rCQk7OwotKwlocHBhb3NmKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhw Ci0rCQlvcz0tb3NmCi0rCQk7OwotKwlocHBybykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1o cAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJaTM3MC1pYm0qIHwgaWJtKikKLSsJCWJhc2ljX21h Y2hpbmU9aTM3MC1pYm0KLSsJCTs7Ci0rIyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBtZWFu cy4gIFNob3VsZCB0aGlzIGJlIHN5c3YzLjI/Ci0rCWkqODZ2MzIpCi0rCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2MzIKLSsJCTs7 Ci0rCWkqODZ2NCopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2Liov ODYtcGMvJ2AKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJaSo4NnYpCi0rCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2Ci0rCQk7Owot KwlpKjg2c29sMikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84 Ni1wYy8nYAotKwkJb3M9LXNvbGFyaXMyCi0rCQk7OwotKwlpMzg2bWFjaCkKLSsJCWJhc2ljX21h Y2hpbmU9aTM4Ni1tYWNoCi0rCQlvcz0tbWFjaAotKwkJOzsKLSsJaTM4Ni12c3RhIHwgdnN0YSkK LSsJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0rCQlvcz0tdnN0YQotKwkJOzsKLSsJaXJp cyB8IGlyaXM0ZCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKLSsJCWNhc2UgJG9zIGluCi0r CQkgICAgLWlyaXgqKQotKwkJCTs7Ci0rCQkgICAgKikKLSsJCQlvcz0taXJpeDQKLSsJCQk7Owot KwkJZXNhYwotKwkJOzsKLSsJaXNpNjggfCBpc2kpCi0rCQliYXNpY19tYWNoaW5lPW02OGstaXNp Ci0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbTY4a25vbW11KQotKwkJYmFzaWNfbWFjaGluZT1tNjhr LXVua25vd24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJbTY4a25vbW11LSopCi0rCQliYXNpY19t YWNoaW5lPW02OGstYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJ CW9zPS1saW51eAotKwkJOzsKLSsJbTg4ay1vbXJvbiopCi0rCQliYXNpY19tYWNoaW5lPW04OGst b21yb24KLSsJCTs7Ci0rCW1hZ251bSB8IG0zMjMwKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLW1p cHMKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwltZXJsaW4pCi0rCQliYXNpY19tYWNoaW5lPW5zMzJr LXV0ZWsKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwltaW5ndzMyKQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LXBjCi0rCQlvcz0tbWluZ3czMgotKwkJOzsKLSsJbWluZ3czMmNlKQotKwkJYmFzaWNfbWFj aGluZT1hcm0tdW5rbm93bgotKwkJb3M9LW1pbmd3MzJjZQotKwkJOzsKLSsJbWluaWZyYW1lKQot KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAotKwkJOzsKLSsJKm1pbnQgfCAtbWlu dFswLTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXRh cmkKLSsJCW9zPS1taW50Ci0rCQk7OwotKwltaXBzMyotKikKLSsJCWJhc2ljX21hY2hpbmU9YGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCi0rCQk7OwotKwlt aXBzMyopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdz L21pcHMzL21pcHM2NC8nYC11bmtub3duCi0rCQk7OwotKwltb25pdG9yKQotKwkJYmFzaWNfbWFj aGluZT1tNjhrLXJvbTY4awotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCW1vcnBob3MpCi0rCQliYXNp Y19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgotKwkJb3M9LW1vcnBob3MKLSsJCTs7Ci0rCW1zZG9z KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbXNkb3MKLSsJCTs7Ci0rCW1zMS0q KQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9tczEt L210LS8nYAotKwkJOzsKLSsJbXZzKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotKwkJb3M9 LW12cwotKwkJOzsKLSsJbmNyMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKLSsJCW9z PS1zeXN2NAotKwkJOzsKLSsJbmV0YnNkMzg2KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25v d24KLSsJCW9zPS1uZXRic2QKLSsJCTs7Ci0rCW5ldHdpbmRlcikKLSsJCWJhc2ljX21hY2hpbmU9 YXJtdjRsLXJlYmVsCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCW5ld3MgfCBuZXdzNzAwIHwgbmV3 czgwMCB8IG5ld3M5MDApCi0rCQliYXNpY19tYWNoaW5lPW02OGstc29ueQotKwkJb3M9LW5ld3Nv cwotKwkJOzsKLSsJbmV3czEwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255Ci0rCQlv cz0tbmV3c29zCi0rCQk7OwotKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCi0rCQliYXNpY19tYWNo aW5lPW1pcHMtc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmVjdjcwKQotKwkJYmFzaWNf bWFjaGluZT12NzAtbmVjCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbmV4dCB8IG0qLW5leHQgKQot KwkJYmFzaWNfbWFjaGluZT1tNjhrLW5leHQKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLW5leHRz dGVwKiApCi0rCQkJOzsKLSsJCSAgICAtbnMyKikKLSsJCSAgICAgIG9zPS1uZXh0c3RlcDIKLSsJ CQk7OwotKwkJICAgICopCi0rCQkgICAgICBvcz0tbmV4dHN0ZXAzCi0rCQkJOzsKLSsJCWVzYWMK LSsJCTs7Ci0rCW5oMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLSsJCW9zPS1j eHV4Ci0rCQk7OwotKwluaFs0NV0wMDApCi0rCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCi0r CQlvcz0tY3h1eAotKwkJOzsKLSsJbmluZHk5NjApCi0rCQliYXNpY19tYWNoaW5lPWk5NjAtaW50 ZWwKLSsJCW9zPS1uaW5keQotKwkJOzsKLSsJbW9uOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYw LWludGVsCi0rCQlvcz0tbW9uOTYwCi0rCQk7OwotKwlub25zdG9wdXgpCi0rCQliYXNpY19tYWNo aW5lPW1pcHMtY29tcGFxCi0rCQlvcz0tbm9uc3RvcHV4Ci0rCQk7OwotKwlucDEpCi0rCQliYXNp Y19tYWNoaW5lPW5wMS1nb3VsZAotKwkJOzsKLSsJbnNyLXRhbmRlbSkKLSsJCWJhc2ljX21hY2hp bmU9bnNyLXRhbmRlbQotKwkJOzsKLSsJb3A1MG4tKiB8IG9wNjBjLSopCi0rCQliYXNpY19tYWNo aW5lPWhwcGExLjEtb2tpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwlvcGVucmlzYyB8IG9wZW5y aXNjLSopCi0rCQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgotKwkJOzsKLSsJb3M0MDApCi0r CQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCi0rCQlvcz0tb3M0MDAKLSsJCTs7Ci0rCU9TRTY4 MDAwIHwgb3NlNjgwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotKwkJb3M9 LW9zZQotKwkJOzsKLSsJb3M2OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQotKwkJb3M9 LW9zNjhrCi0rCQk7OwotKwlwYS1oaXRhY2hpKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhp dGFjaGkKLSsJCW9zPS1oaXV4d2UyCi0rCQk7OwotKwlwYXJhZ29uKQotKwkJYmFzaWNfbWFjaGlu ZT1pODYwLWludGVsCi0rCQlvcz0tb3NmCi0rCQk7OwotKwlwYXJpc2MpCi0rCQliYXNpY19tYWNo aW5lPWhwcGEtdW5rbm93bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYXJpc2MtKikKLSsJCWJh c2ljX21hY2hpbmU9aHBwYS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8n YAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYmQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0 aQotKwkJOzsKLSsJcGJiKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQotKwkJOzsKLSsJcGM1 MzIgfCBwYzUzMi0qKQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgotKwkJOzsKLSsJcGM5 OCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJOzsKLSsJcGM5OC0qKQotKwkJYmFzaWNf bWFjaGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0r CQk7OwotKwlwZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCi0rCQliYXNp Y19tYWNoaW5lPWk1ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBhdGhs b24gfCBhdGhsb25fKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJOzsKLSsJcGVudGl1 bWlpIHwgcGVudGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCi0rCQliYXNpY19tYWNoaW5l PWk2ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW00KQotKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCi0r CQk7OwotKwlwZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZpYWMz LSopCi0rCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3Mv XlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBhdGhs b24tKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVudGl1 bWlpaS0qIHwgcGVudGl1bTMtKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNf bWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bTQtKikKLSsJCWJh c2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8n YAotKwkJOzsKLSsJcG4pCi0rCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0rCQk7OwotKwlwb3dl cikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KLSsJCTs7Ci0rCXBwYykJYmFzaWNfbWFjaGluZT1w b3dlcnBjLXVua25vd24KLSsJCTs7Ci0rCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwY2xlIHwg cG93ZXJwY2xpdHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQotKwkJYmFzaWNfbWFjaGlu ZT1wb3dlcnBjbGUtdW5rbm93bgotKwkJOzsKLSsJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUtKikK LSsJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdz L15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtdW5r bm93bgotKwkJOzsKLSsJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8gJGJh c2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwYzY0bGUgfCBwb3dl cnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0rCQliYXNpY19tYWNo aW5lPXBvd2VycGM2NGxlLXVua25vd24KLSsJCTs7Ci0rCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxp dHRsZS0qKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFjaGlu ZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcHMyKQotKwkJYmFzaWNfbWFjaGluZT1p Mzg2LWlibQotKwkJOzsKLSsJcHczMikKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCi0r CQlvcz0tcHczMgotKwkJOzsKLSsJcmRvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJ b3M9LXJkb3MKLSsJCTs7Ci0rCXJvbTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsK LSsJCW9zPS1jb2ZmCi0rCQk7OwotKwlybVs0Nl0wMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1z aWVtZW5zCi0rCQk7OwotKwlydHBjIHwgcnRwYy0qKQotKwkJYmFzaWNfbWFjaGluZT1yb21wLWli bQotKwkJOzsKLSsJczM5MCB8IHMzOTAtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0KLSsJ CTs7Ci0rCXMzOTB4IHwgczM5MHgtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0rCQk7 OwotKwlzYTI5MjAwKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJ OzsKLSsJc2IxKQotKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgotKwkJOzsK LSsJc2IxZWwpCi0rCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KLSsJCTs7 Ci0rCXNkZSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJb3M9LWVsZgotKwkJ OzsKLSsJc2VpKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQotKwkJb3M9LXNlaXV4Ci0rCQk7 OwotKwlzZXF1ZW50KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKLSsJCTs7Ci0rCXNo KQotKwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwlzaDVl bCkKLSsJCWJhc2ljX21hY2hpbmU9c2g1bGUtdW5rbm93bgotKwkJOzsKLSsJc2g2NCkKLSsJCWJh c2ljX21hY2hpbmU9c2g2NC11bmtub3duCi0rCQk7OwotKwlzcGFyY2xpdGUtd3JzIHwgc2ltc28t d3JzKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyY2xpdGUtd3JzCi0rCQlvcz0tdnh3b3JrcwotKwkJ OzsKLSsJc3BzNykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0tc3lzdjIKLSsJ CTs7Ci0rCXNwdXIpCi0rCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotKwkJOzsKLSsJc3Qy MDAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQotKwkJOzsKLSsJc3RyYXR1cykKLSsJ CWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCXN1bjIp Ci0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCTs7Ci0rCXN1bjJvczMpCi0rCQliYXNp Y19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczMKLSsJCTs7Ci0rCXN1bjJvczQpCi0r CQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjNv czMpCi0rCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlz dW4zb3M0KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zNAotKwkJOzsK LSsJc3VuNG9zMykKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vub3MzCi0r CQk7OwotKwlzdW40b3M0KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zdW5v czQKLSsJCTs7Ci0rCXN1bjRzb2wyKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9z PS1zb2xhcmlzMgotKwkJOzsKLSsJc3VuMyB8IHN1bjMtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4 ay1zdW4KLSsJCTs7Ci0rCXN1bjQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsK LSsJc3VuMzg2IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCi0rCQliYXNpY19tYWNoaW5lPWkzODYt c3VuCi0rCQk7OwotKwlzdjEpCi0rCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5Ci0rCQlvcz0tdW5p Y29zCi0rCQk7OwotKwlzeW1tZXRyeSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0r CQlvcz0tZHluaXgKLSsJCTs7Ci0rCXQzZSkKLSsJCWJhc2ljX21hY2hpbmU9YWxwaGFldjUtY3Jh eQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJdDkwKQotKwkJYmFzaWNfbWFjaGluZT10OTAtY3Jh eQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJdGljNTR4IHwgYzU0eCopCi0rCQliYXNpY19tYWNo aW5lPXRpYzU0eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4IHwgYzU1eCop Ci0rCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJ dGljNnggfCBjNngqKQotKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCi0rCQlvcz0tY29m ZgotKwkJOzsKLSsJdGlsZSopCi0rCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgotKwkJb3M9 LWxpbnV4LWdudQotKwkJOzsKLSsJdHgzOSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5r bm93bgotKwkJOzsKLSsJdHgzOWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25v d24KLSsJCTs7Ci0rCXRvYWQxKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLSsJCW9zPS10 b3BzMjAKLSsJCTs7Ci0rCXRvd2VyIHwgdG93ZXItMzIpCi0rCQliYXNpY19tYWNoaW5lPW02OGst bmNyCi0rCQk7OwotKwl0cGYpCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJb3M9LXRw ZgotKwkJOzsKLSsJdWRpMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVk aQotKwkJOzsKLSsJdWx0cmEzKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotKwkJb3M9LXN5 bTEKLSsJCTs7Ci0rCXY4MTAgfCBuZWN2ODEwKQotKwkJYmFzaWNfbWFjaGluZT12ODEwLW5lYwot KwkJb3M9LW5vbmUKLSsJCTs7Ci0rCXZheHYpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJ CW9zPS1zeXN2Ci0rCQk7OwotKwl2bXMpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9z PS12bXMKLSsJCTs7Ci0rCXZwcCp8dnh8dngtKikKLSsJCWJhc2ljX21hY2hpbmU9ZjMwMS1mdWpp dHN1Ci0rCQk7OwotKwl2eHdvcmtzOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycwotKwkJ b3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXZ4d29ya3M2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay13 cnMKLSsJCW9zPS12eHdvcmtzCi0rCQk7OwotKwl2eHdvcmtzMjlrKQotKwkJYmFzaWNfbWFjaGlu ZT1hMjlrLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXc2NSopCi0rCQliYXNpY19tYWNo aW5lPXc2NS13ZGMKLSsJCW9zPS1ub25lCi0rCQk7OwotKwl3ODlrLSopCi0rCQliYXNpY19tYWNo aW5lPWhwcGExLjEtd2luYm9uZAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJeGJveCkKLSsJCWJh c2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCXhwcyB8IHhwczEw MCkKLSsJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAotKwkJOzsKLSsJeW1wKQotKwkJ YmFzaWNfbWFjaGluZT15bXAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJejhrLSotY29m ZikKLSsJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KLSsJCW9zPS1zaW0KLSsJCTs7Ci0rCW5v bmUpCi0rCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCi0r IyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBtYW51ZmFjdHVyZXIgb2YgY2VydGFpbiBDUFUg dHlwZXMuICBJdCBpcyBpbgotKyMgc29tZSBjYXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGlu IG90aGVycywgaXQgaXMgdGhlIG1vc3QgcG9wdWxhci4KLSsJdzg5aykKLSsJCWJhc2ljX21hY2hp bmU9aHBwYTEuMS13aW5ib25kCi0rCQk7OwotKwlvcDUwbikKLSsJCWJhc2ljX21hY2hpbmU9aHBw YTEuMS1va2kKLSsJCTs7Ci0rCW9wNjBjKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQot KwkJOzsKLSsJcm9tcCkKLSsJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KLSsJCTs7Ci0rCW1taXgp Ci0rCQliYXNpY19tYWNoaW5lPW1taXgta251dGgKLSsJCTs7Ci0rCXJzNjAwMCkKLSsJCWJhc2lj X21hY2hpbmU9cnM2MDAwLWlibQotKwkJOzsKLSsJdmF4KQotKwkJYmFzaWNfbWFjaGluZT12YXgt ZGVjCi0rCQk7OwotKwlwZHAxMCkKLSsJCSMgdGhlcmUgYXJlIG1hbnkgY2xvbmVzLCBzbyBERUMg aXMgbm90IGEgc2FmZSBiZXQKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtdW5rbm93bgotKwkJOzsK LSsJcGRwMTEpCi0rCQliYXNpY19tYWNoaW5lPXBkcDExLWRlYwotKwkJOzsKLSsJd2UzMmspCi0r CQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAotKwkJOzsKLSsJc2hbMTIzNF0gfCBzaFsyNF1hIHwg c2hbMzRdZWIgfCBzaFsxMjM0XWxlIHwgc2hbMjNdZWxlKQotKwkJYmFzaWNfbWFjaGluZT1zaC11 bmtub3duCi0rCQk7OwotKwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBz cGFyY3Y5dikKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQk7OwotKwljeWRyYSkKLSsJ CWJhc2ljX21hY2hpbmU9Y3lkcmEtY3lkcm9tZQotKwkJOzsKLSsJb3Jpb24pCi0rCQliYXNpY19t YWNoaW5lPW9yaW9uLWhpZ2hsZXZlbAotKwkJOzsKLSsJb3Jpb24xMDUpCi0rCQliYXNpY19tYWNo aW5lPWNsaXBwZXItaGlnaGxldmVsCi0rCQk7OwotKwltYWMgfCBtcHcgfCBtYWMtbXB3KQotKwkJ YmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCi0rCQk7OwotKwlwbWFjIHwgcG1hYy1tcHcpCi0rCQli YXNpY19tYWNoaW5lPXBvd2VycGMtYXBwbGUKLSsJCTs7Ci0rCSotdW5rbm93bikKLSsJCSMgTWFr ZSBzdXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUuCi0r CQk7OwotKwkqKQotKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5l IFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCi0rCQlleGl0IDEKLSsJCTs7 Ci0rZXNhYwotKwotKyMgSGVyZSB3ZSBjYW5vbmljYWxpemUgY2VydGFpbiBhbGlhc2VzIGZvciBt YW51ZmFjdHVyZXJzLgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJKi1kaWdpdGFsKikKLSsJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvZGlnaXRhbC4qL2Rl Yy8nYAotKwkJOzsKLSsJKi1jb21tb2RvcmUqKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAncy9jb21tb2RvcmUuKi9jYm0vJ2AKLSsJCTs7Ci0rCSopCi0rCQk7 OwotK2VzYWMKLSsKLSsjIERlY29kZSBtYW51ZmFjdHVyZXItc3BlY2lmaWMgYWxpYXNlcyBmb3Ig Y2VydGFpbiBvcGVyYXRpbmcgc3lzdGVtcy4KLSsKLStpZiBbIHgiJG9zIiAhPSB4IiIgXQotK3Ro ZW4KLStjYXNlICRvcyBpbgotKyAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBl IGFsaWFzZXMKLSsgICAgICAgICMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxpZCBz eXN0ZW0gdHlwZXMuCi0rCSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdpdGgg dGhpcyBvbmUgZXhjZXB0aW9uLgotKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKLSsJCW9zPWBl Y2hvICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKLSsJCTs7Ci0rCS1zb2xhcmlz KQotKwkJb3M9LXNvbGFyaXMyCi0rCQk7OwotKwktc3ZyNCopCi0rCQlvcz0tc3lzdjQKLSsJCTs7 Ci0rCS11bml4d2FyZSopCi0rCQlvcz0tc3lzdjQuMnV3Ci0rCQk7OwotKwktZ251L2xpbnV4KikK LSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGludXgtZ251fCdgCi0rCQk7 OwotKwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgotKwkjIFRoZSBwb3J0 YWJsZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgotKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQg SU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgotKwkjIC1zeXN2KiBpcyBub3QgaGVy ZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCi0rCS1nbnUqIHwgLWJzZCog fCAtbWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwgLWlyaXgqIFwKLSsJICAg ICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtc3Vub3MgfCAt c3Vub3NbMzRdKlwKLSsJICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8 IC1kZ3V4KiB8IC1zb2xhcmlzKiB8IC1zeW0qIFwKLSsJICAgICAgfCAtYW1pZ2FvcyogfCAtYW1p Z2Fkb3MqIHwgLW1zZG9zKiB8IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAtYW9mKiBcCi0rCSAgICAg IHwgLWFvcyogXAotKwkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVi bW9uKiB8IC1obXMqIHwgLW12cyogXAotKwkgICAgICB8IC1jbGl4KiB8IC1yaXNjb3MqIHwgLXVu aXBsdXMqIHwgLWlyaXMqIHwgLXJ0dSogfCAteGVuaXgqIFwKLSsJICAgICAgfCAtaGl1eCogfCAt Mzg2YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCogXAotKwkgICAgICB8IC1v cGVuYnNkKiB8IC1zb2xpZGJzZCogXAotKwkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJlZWJzZCog fCAtZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKLSsJICAgICAgfCAtYm9zeCogfCAt bmV4dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVsZiogfCAtb2FiaSogXAotKwkgICAgICB8 IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBc Ci0rCSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwg LWF1eCogXAotKwkgICAgICB8IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRiKiBcCi0rCSAgICAgIHwg LWN5Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwK LSsJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxp bnV4LXVjbGliYyogXAotKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRr KiBcCi0rCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwg LWRhcndpbiogfCAtb3BlbmVkKiBcCi0rCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAt Y29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAotKwkgICAgICB8IC1zdG9ybS1jaGFvcyog fCAtdG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKLSsJICAgICAgfCAtb3My KiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAotKwkgICAgICB8 IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3Mq IFwKLSsJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8 IC1kcmFnb25mbHkqIFwKLSsJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10 b3BwZXJzKiB8IC1kcm9wcyopCi0rCSMgUmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBF TkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KLSsJCTs7Ci0rCS1xbngqKQotKwkJ Y2FzZSAkYmFzaWNfbWFjaGluZSBpbgotKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQotKwkJCTs7Ci0r CQkgICAgKikKLSsJCQlvcz0tbnRvJG9zCi0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCS1udG8t cW54KikKLSsJCTs7Ci0rCS1udG8qKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xu dG8tcW54fCdgCi0rCQk7OwotKwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9z NjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCi0rCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1h YnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3UqIFwKLSsJICAgICAgfCAt bWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdz KikKLSsJCTs7Ci0rCS1tYWMqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNv c3wnYAotKwkJOzsKLSsJLWxpbnV4LWRpZXRsaWJjKQotKwkJb3M9LWxpbnV4LWRpZXRsaWJjCi0r CQk7OwotKwktbGludXgqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4 LWdudXwnYAotKwkJOzsKLSsJLXN1bm9zNSopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8 c3Vub3M1fHNvbGFyaXMyfCdgCi0rCQk7OwotKwktc3Vub3M2KikKLSsJCW9zPWBlY2hvICRvcyB8 IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKLSsJCTs7Ci0rCS1vcGVuZWQqKQotKwkJb3M9 LW9wZW5lZGl0aW9uCi0rCQk7OwotKyAgICAgICAgLW9zNDAwKikKLSsJCW9zPS1vczQwMAotKwkJ OzsKLSsJLXdpbmNlKikKLSsJCW9zPS13aW5jZQotKwkJOzsKLSsJLW9zZnJvc2UqKQotKwkJb3M9 LW9zZnJvc2UKLSsJCTs7Ci0rCS1vc2YqKQotKwkJb3M9LW9zZgotKwkJOzsKLSsJLXV0ZWsqKQot KwkJb3M9LWJzZAotKwkJOzsKLSsJLWR5bml4KikKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCS1hY2lz KikKLSsJCW9zPS1hb3MKLSsJCTs7Ci0rCS1hdGhlb3MqKQotKwkJb3M9LWF0aGVvcwotKwkJOzsK LSsJLXN5bGxhYmxlKikKLSsJCW9zPS1zeWxsYWJsZQotKwkJOzsKLSsJLTM4NmJzZCkKLSsJCW9z PS1ic2QKLSsJCTs7Ci0rCS1jdGl4KiB8IC11dHMqKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCS1u b3ZhKikKLSsJCW9zPS1ydG1rLW5vdmEKLSsJCTs7Ci0rCS1uczIgKQotKwkJb3M9LW5leHRzdGVw MgotKwkJOzsKLSsJLW5zayopCi0rCQlvcz0tbnNrCi0rCQk7OwotKwkjIFByZXNlcnZlIHRoZSB2 ZXJzaW9uIG51bWJlciBvZiBzaW5peDUuCi0rCS1zaW5peDUuKikKLSsJCW9zPWBlY2hvICRvcyB8 IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCi0rCQk7OwotKwktc2luaXgqKQotKwkJb3M9LXN5c3Y0 Ci0rCQk7OwotKyAgICAgICAgLXRwZiopCi0rCQlvcz0tdHBmCi0rCQk7OwotKwktdHJpdG9uKikK LSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJLW9zcyopCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCS1z dnI0KQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwktc3ZyMykKLSsJCW9zPS1zeXN2MwotKwkJOzsK LSsJLXN5c3ZyNCkKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJIyBUaGlzIG11c3QgY29tZSBhZnRl ciAtc3lzdnI0LgotKwktc3lzdiopCi0rCQk7OwotKwktb3NlKikKLSsJCW9zPS1vc2UKLSsJCTs7 Ci0rCS1lczE4MDAqKQotKwkJb3M9LW9zZQotKwkJOzsKLSsJLXhlbml4KQotKwkJb3M9LXhlbml4 Ci0rCQk7OwotKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQot KwkJb3M9LW1pbnQKLSsJCTs7Ci0rCS1hcm9zKikKLSsJCW9zPS1hcm9zCi0rCQk7OwotKwkta2Fv cyopCi0rCQlvcz0ta2FvcwotKwkJOzsKLSsJLXp2bW9lKQotKwkJb3M9LXp2bW9lCi0rCQk7Owot Kwktbm9uZSkKLSsJCTs7Ci0rCSopCi0rCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVn aW5uaW5nIG9mICRvcy4KLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCi0rCQll Y2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wnIG5vdCByZWNv Z25pemVkIDE+JjIKLSsJCWV4aXQgMQotKwkJOzsKLStlc2FjCi0rZWxzZQotKwotKyMgSGVyZSB3 ZSBoYW5kbGUgdGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21lIHdpdGggdmFy aW91cyBtYWNoaW5lcy4KLSsjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1 cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgotKyMgbWFjaGluZSBvciBwdXQg YW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGlu ZS4KLSsKLSsjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFO VUZBQ1RVUkVSIiBoZXJlIChzYXksCi0rIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwg dGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAotKyMgdGhhdCBNQU5VRkFDVFVS RVIgaXNuJ3QgYW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBhYm92ZQotKyMg d2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9w ZXJhdGluZwotKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCi0r Ci0rY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotKyAgICAgICAgc2NvcmUtKikKLSsJCW9zPS1lbGYK LSsJCTs7Ci0rICAgICAgICBzcHUtKikKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCSotYWNvcm4pCi0r CQlvcz0tcmlzY2l4MS4yCi0rCQk7OwotKwlhcm0qLXJlYmVsKQotKwkJb3M9LWxpbnV4Ci0rCQk7 OwotKwlhcm0qLXNlbWkpCi0rCQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIGM0eC0qIHwgdGlj NHgtKikKLSsgICAgICAgIAlvcz0tY29mZgotKwkJOzsKLSsJIyBUaGlzIG11c3QgY29tZSBiZWZv cmUgdGhlICotZGVjIGVudHJ5LgotKwlwZHAxMC0qKQotKwkJb3M9LXRvcHMyMAotKwkJOzsKLSsJ cGRwMTEtKikKLSsJCW9zPS1ub25lCi0rCQk7OwotKwkqLWRlYyB8IHZheC0qKQotKwkJb3M9LXVs dHJpeDQuMgotKwkJOzsKLSsJbTY4Ki1hcG9sbG8pCi0rCQlvcz0tZG9tYWluCi0rCQk7OwotKwlp Mzg2LXN1bikKLSsJCW9zPS1zdW5vczQuMC4yCi0rCQk7OwotKwltNjgwMDAtc3VuKQotKwkJb3M9 LXN1bm9zMwotKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwg YnV0IHdhcyBub3QgdGhlCi0rCQkjIGRlZmF1bHQuCi0rCQkjIG9zPS1zdW5vczQKLSsJCTs7Ci0r CW02OCotY2lzY28pCi0rCQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIG1lcC0qKQotKwkJb3M9 LWVsZgotKwkJOzsKLSsJbWlwcyotY2lzY28pCi0rCQlvcz0tZWxmCi0rCQk7OwotKwltaXBzKi0q KQotKwkJb3M9LWVsZgotKwkJOzsKLSsJb3IzMi0qKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSot dHRpKQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3Mu Ci0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCXNwYXJjLSogfCAqLXN1bikKLSsJCW9zPS1zdW5vczQu MS4xCi0rCQk7OwotKwkqLWJlKQotKwkJb3M9LWJlb3MKLSsJCTs7Ci0rCSotaGFpa3UpCi0rCQlv cz0taGFpa3UKLSsJCTs7Ci0rCSotaWJtKQotKwkJb3M9LWFpeAotKwkJOzsKLSsgICAgCSota251 dGgpCi0rCQlvcz0tbW1peHdhcmUKLSsJCTs7Ci0rCSotd2VjKQotKwkJb3M9LXByb2VsZgotKwkJ OzsKLSsJKi13aW5ib25kKQotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJKi1va2kpCi0rCQlvcz0t cHJvZWxmCi0rCQk7OwotKwkqLWhwKQotKwkJb3M9LWhwdXgKLSsJCTs7Ci0rCSotaGl0YWNoaSkK LSsJCW9zPS1oaXV4Ci0rCQk7OwotKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8 ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJKi1jYm0p Ci0rCQlvcz0tYW1pZ2FvcwotKwkJOzsKLSsJKi1kZykKLSsJCW9zPS1kZ3V4Ci0rCQk7OwotKwkq LWRvbHBoaW4pCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCW02OGstY2N1cikKLSsJCW9zPS1ydHUK LSsJCTs7Ci0rCW04OGstb21yb24qKQotKwkJb3M9LWx1bmEKLSsJCTs7Ci0rCSotbmV4dCApCi0r CQlvcz0tbmV4dHN0ZXAKLSsJCTs7Ci0rCSotc2VxdWVudCkKLSsJCW9zPS1wdHgKLSsJCTs7Ci0r CSotY3JkcykKLSsJCW9zPS11bm9zCi0rCQk7OwotKwkqLW5zKQotKwkJb3M9LWdlbml4Ci0rCQk7 OwotKwlpMzcwLSopCi0rCQlvcz0tbXZzCi0rCQk7OwotKwkqLW5leHQpCi0rCQlvcz0tbmV4dHN0 ZXAzCi0rCQk7OwotKwkqLWdvdWxkKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCSotaGlnaGxldmVs KQotKwkJb3M9LWJzZAotKwkJOzsKLSsJKi1lbmNvcmUpCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkq LXNnaSkKLSsJCW9zPS1pcml4Ci0rCQk7OwotKwkqLXNpZW1lbnMpCi0rCQlvcz0tc3lzdjQKLSsJ CTs7Ci0rCSotbWFzc2NvbXApCi0rCQlvcz0tcnR1Ci0rCQk7OwotKwlmMzBbMDFdLWZ1aml0c3Ug fCBmNzAwLWZ1aml0c3UpCi0rCQlvcz0tdXhwdgotKwkJOzsKLSsJKi1yb202OGspCi0rCQlvcz0t Y29mZgotKwkJOzsKLSsJKi0qYnVnKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSotYXBwbGUpCi0r CQlvcz0tbWFjb3MKLSsJCTs7Ci0rCSotYXRhcmkqKQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rCSop Ci0rCQlvcz0tbm9uZQotKwkJOzsKLStlc2FjCi0rZmkKLSsKLSsjIEhlcmUgd2UgaGFuZGxlIHRo ZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRo ZQotKyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCi0r dmVuZG9yPXVua25vd24KLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotdW5rbm93bikKLSsJ CWNhc2UgJG9zIGluCi0rCQkJLXJpc2NpeCopCi0rCQkJCXZlbmRvcj1hY29ybgotKwkJCQk7Owot KwkJCS1zdW5vcyopCi0rCQkJCXZlbmRvcj1zdW4KLSsJCQkJOzsKLSsJCQktYWl4KikKLSsJCQkJ dmVuZG9yPWlibQotKwkJCQk7OwotKwkJCS1iZW9zKikKLSsJCQkJdmVuZG9yPWJlCi0rCQkJCTs7 Ci0rCQkJLWhwdXgqKQotKwkJCQl2ZW5kb3I9aHAKLSsJCQkJOzsKLSsJCQktbXBlaXgqKQotKwkJ CQl2ZW5kb3I9aHAKLSsJCQkJOzsKLSsJCQktaGl1eCopCi0rCQkJCXZlbmRvcj1oaXRhY2hpCi0r CQkJCTs7Ci0rCQkJLXVub3MqKQotKwkJCQl2ZW5kb3I9Y3JkcwotKwkJCQk7OwotKwkJCS1kZ3V4 KikKLSsJCQkJdmVuZG9yPWRnCi0rCQkJCTs7Ci0rCQkJLWx1bmEqKQotKwkJCQl2ZW5kb3I9b21y b24KLSsJCQkJOzsKLSsJCQktZ2VuaXgqKQotKwkJCQl2ZW5kb3I9bnMKLSsJCQkJOzsKLSsJCQkt bXZzKiB8IC1vcGVuZWQqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLW9zNDAwKikK LSsJCQkJdmVuZG9yPWlibQotKwkJCQk7OwotKwkJCS1wdHgqKQotKwkJCQl2ZW5kb3I9c2VxdWVu dAotKwkJCQk7OwotKwkJCS10cGYqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLXZ4 c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKLSsJCQkJdmVuZG9yPXdycwotKwkJCQk7Owot KwkJCS1hdXgqKQotKwkJCQl2ZW5kb3I9YXBwbGUKLSsJCQkJOzsKLSsJCQktaG1zKikKLSsJCQkJ dmVuZG9yPWhpdGFjaGkKLSsJCQkJOzsKLSsJCQktbXB3KiB8IC1tYWNvcyopCi0rCQkJCXZlbmRv cj1hcHBsZQotKwkJCQk7OwotKwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1p TlRbMC05XSopCi0rCQkJCXZlbmRvcj1hdGFyaQotKwkJCQk7OwotKwkJCS12b3MqKQotKwkJCQl2 ZW5kb3I9c3RyYXR1cwotKwkJCQk7OwotKwkJZXNhYwotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk YmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKLSsJCTs7Ci0rZXNhYwot KwotK2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKLStleGl0Ci0rCi0rIyBMb2NhbCB2YXJpYWJsZXM6 Ci0rIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCi0rIyB0 aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCi0rIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6 eS0lMDJtLSUwMmQiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiciCi0rIyBFbmQ6Ci1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0zLjAuMF90cmVwMzAwL2Nv bmZpZy9jcHB1bml0Lm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvY29uZmlnL2NwcHVuaXQubTQJMjAwOS0wNC0xNiAxOTozNzoyMy4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsOTMgQEAKLStkbmwKLStkbmwgQU1fUEFUSF9DUFBVTklUKE1JTklNVU0tVkVS U0lPTiwgW0FDVElPTi1JRi1GT1VORCBbLCBBQ1RJT04tSUYtTk9ULUZPVU5EXV0pCi0rZG5sCi0r QUNfREVGVU4oW0FNX1BBVEhfQ1BQVU5JVF0sCi0rWwotKwotK0FDX0FSR19XSVRIKGNwcHVuaXQt cHJlZml4LFsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5p dCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0rICAgICAgICAgICAgY3BwdW5pdF9jb25maWdf cHJlZml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iIikKLStBQ19BUkdfV0lU SChjcHB1bml0LWV4ZWMtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAg RXhlYyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0rICAg ICAgICAgICAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9j b25maWdfZXhlY19wcmVmaXg9IiIpCi0rCi0rICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhl Y19wcmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0 X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4Igot KyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0rICAg ICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVu aXQtY29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19w cmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2Nv bmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCi0rICAgICBpZiB0ZXN0 IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRf Q09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBm aQotKyAgZmkKLSsKLSsgIEFDX1BBVEhfUFJPRyhDUFBVTklUX0NPTkZJRywgY3BwdW5pdC1jb25m aWcsIG5vKQotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0kMQotKwotKyAgQUNfTVNHX0NIRUNLSU5H KGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbikKLSsgIG5vX2Nw cHVuaXQ9IiIKLSsgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgotKyAg ICBBQ19NU0dfUkVTVUxUKG5vKQotKyAgICBub19jcHB1bml0PXllcwotKyAgZWxzZQotKyAgICBD UFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAotKyAgICBDUFBVTklUX0xJ QlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCi0rICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVO SVRfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hv ICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwo W1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKLSsgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9u PWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1d KlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsgICAgY3BwdW5pdF9taWNyb192 ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChb WzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKLSsKLSsgICAgY3BwdW5p dF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBz ZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKLSsgICAg aWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3Bw dW5pdF9tYWpvcl9taW49MAotKyAgICBmaQotKyAgICAKLSsgICAgY3BwdW5pdF9taW5vcl9taW49 YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAt OV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsgICAgaWYgdGVzdCAieCR7 Y3BwdW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taW5vcl9t aW49MAotKyAgICBmaQotKyAgICAKLSsgICAgY3BwdW5pdF9taWNyb19taW49YGVjaG8gJGNwcHVu aXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1sw LTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taWNy b19taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taWNyb19taW49MAotKyAgICBm aQotKwotKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHByIFwKLSsgICAgICAgICRjcHB1 bml0X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8IFwKLSsgICAgICAgICRj cHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKLSsgICAgICAg ICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlub3JfbWluIFx8IFwKLSsgICAg ICAgICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKLSsg ICAgICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWlub3JfbWluIFwmIFwK LSsgICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1bml0X21pY3JvX21pbiBg Ci0rCi0rICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJvcGVyIiA9ICIxIiA7IHRoZW4K LSsgICAgICBBQ19NU0dfUkVTVUxUKFskY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21p bm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbl0pCi0rICAgIGVsc2UKLSsgICAgICBB Q19NU0dfUkVTVUxUKG5vKQotKyAgICAgIG5vX2NwcHVuaXQ9eWVzCi0rICAgIGZpCi0rICBmaQot KwotKyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCi0rICAgICBpZmVsc2UoWyQy XSwgLCA6LCBbJDJdKSAgICAgCi0rICBlbHNlCi0rICAgICBDUFBVTklUX0NGTEFHUz0iIgotKyAg ICAgQ1BQVU5JVF9MSUJTPSIiCi0rICAgICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQotKyAgZmkK LSsKLSsgIEFDX1NVQlNUKENQUFVOSVRfQ0ZMQUdTKQotKyAgQUNfU1VCU1QoQ1BQVU5JVF9MSUJT KQotKyAgQUNfU1VCU1QoQ1BQVU5JVF9WRVJTSU9OKQotK10pCi0rCi0rCi0rCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9kZXBjb21wCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2RlcGNvbXAJMjAwOS0wNS0wNiAwMTozMTo0OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs NTg5IEBACi0rIyEgL2Jpbi9zaAotKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVy YXRpbmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cwotKwotK3NjcmlwdHZlcnNpb249MjAw Ny0wMy0yOS4wMQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4KLSsKLSsj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQotKyMgYW55IGxhdGVy IHZlcnNpb24uCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl Ci0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC b3N0b24sIE1BCi0rIyAwMjExMC0xMzAxLCBVU0EuCi0rCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0 aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmli dXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNv bmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRl IGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZv ciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkg QWxleGFuZHJlIE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4uCi0rCi0rY2FzZSAkMSBpbgot KyAgJycpCi0rICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCi0rICAgICBleGl0IDE7Ci0rICAgICA7OwotKyAgLWgg fCAtLWgqKQotKyAgICBjYXQgPDxcRU9GCi0rVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVy c2lvbl0gUFJPR1JBTSBbQVJHU10KLSsKLStSdW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEg ZmlsZSwgZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMKLSthcyBzaWRlLWVmZmVjdHMuCi0rCi0rRW52 aXJvbm1lbnQgdmFyaWFibGVzOgotKyAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBt b2RlLgotKyAgc291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycu Ci0rICBvYmplY3QgICAgICBPYmplY3QgZmlsZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgot KyAgREVQRElSICAgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGRlcGVuZGVuY2llcy4KLSsg IGRlcGZpbGUgICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQuCi0rICB0bXBkZXBmaWxlICBU ZW1wb3JhcnkgZmlsZSB0byB1c2Ugd2hlbiBvdXRwdXRpbmcgZGVwZW5kZW5jaWVzLgotKyAgbGli dG9vbCAgICAgV2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9ubykuCi0rCi0rUmVwb3J0IGJ1 Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4KLStFT0YKLSsgICAgZXhpdCAkPwotKyAgICA7 OwotKyAgLXYgfCAtLXYqKQotKyAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgotKyAg ICBleGl0ICQ/Ci0rICAgIDs7Ci0rZXNhYwotKwotK2lmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0 ZXN0IC16ICIkc291cmNlIiB8fCB0ZXN0IC16ICIkb2JqZWN0IjsgdGhlbgotKyAgZWNobyAiZGVw Y29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAx PiYyCi0rICBleGl0IDEKLStmaQotKwotKyMgRGVwZW5kZW5jaWVzIGZvciBzdWIvYmFyLm8gb3Ig c3ViL2Jhci5vYmogZ28gaW50byBzdWIvLmRlcHMvYmFyLlBvLgotK2RlcGZpbGU9JHtkZXBmaWxl LWBlY2hvICIkb2JqZWN0IiB8Ci0rICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScv Jnw7c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0KLSt0bXBkZXBmaWxlPSR7dG1w ZGVwZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQot KwotK3JtIC1mICIkdG1wZGVwZmlsZSIKLSsKLSsjIFNvbWUgbW9kZXMgd29yayBqdXN0IGxpa2Ug b3RoZXIgbW9kZXMsIGJ1dCB1c2UgZGlmZmVyZW50IGZsYWdzLiAgV2UKLSsjIHBhcmFtZXRlcml6 ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAot KyMgdG8gbWFrZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5u b3QqIHVzZSBhIGNhc2UKLSsjIGhlcmUsIGJlY2F1c2UgdGhpcyBmaWxlIGNhbiBvbmx5IGNvbnRh aW4gb25lIGNhc2Ugc3RhdGVtZW50LgotK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCi0r ICAjIEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4KLSsgIGdjY2ZsYWc9LU0K LSsgIGRlcG1vZGU9Z2NjCi0rZmkKLSsKLStpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRv dXQ7IHRoZW4KLSsgICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZm ZXJlbnQgYXJndW1lbnQuCi0rICAgZGFzaG1mbGFnPS14TQotKyAgIGRlcG1vZGU9ZGFzaG1zdGRv dXQKLStmaQotKwotK2Nhc2UgIiRkZXBtb2RlIiBpbgotK2djYzMpCi0rIyMgZ2NjIDMgaW1wbGVt ZW50cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKLSsjIyB3ZSB3 YW50LiAgWWF5ISAgTm90ZTogZm9yIHNvbWUgcmVhc29uIGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlr ZQotKyMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KLSsj IyBVbmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMg dXBvbgotKyMjIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgb3JkZXI7IHNvIGFkZCB0aGUgZmxh Z3Mgd2hlcmUgdGhleQotKyMjIGFwcGVhciBpbiBkZXBlbmQyLmFtLiAgTm90ZSB0aGF0IHRoZSBz bG93ZG93biBpbmN1cnJlZCBoZXJlCi0rIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFr ZWZpbGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMuCi0rICBmb3IgYXJnCi0rICBkbwotKyAg ICBjYXNlICRhcmcgaW4KLSsgICAgLWMpIHNldCBmbm9yZCAiJEAiIC1NVCAiJG9iamVjdCIgLU1E IC1NUCAtTUYgIiR0bXBkZXBmaWxlIiAiJGFyZyIgOzsKLSsgICAgKikgIHNldCBmbm9yZCAiJEAi ICIkYXJnIiA7OwotKyAgICBlc2FjCi0rICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgc2hpZnQgIyAk YXJnCi0rICBkb25lCi0rICAiJEAiCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAw OyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgICBleGl0ICRz dGF0Ci0rICBmaQotKyAgbXYgIiR0bXBkZXBmaWxlIiAiJGRlcGZpbGUiCi0rICA7OwotKwotK2dj YykKLSsjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBm cm9tIGdjYy4gIEhlcmUncwotKyMjIHdoeSB3ZSBwaWNrIHRoaXMgcmF0aGVyIG9ic2N1cmUgbWV0 aG9kOgotKyMjIC0gRG9uJ3Qgd2FudCB0byB1c2UgLU1EIGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBk ZXBlbmRlbmNpZXMgdG8gZW5kCi0rIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5h bWUgYnkgaGFuZCBpcyB1Z2x5LgotKyMjICAgKFdlIG1pZ2h0IGVuZCB1cCBkb2luZyB0aGlzIGFu eXdheSB0byBzdXBwb3J0IG90aGVyIGNvbXBpbGVycy4pCi0rIyMgLSBUaGUgREVQRU5ERU5DSUVT X09VVFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYWtlcyBnY2MgYWN0IGxpa2UKLSsjIyAgIC1N TSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KLSsjIyAtIFVzaW5nIC1NIGRp cmVjdGx5IG1lYW5zIHJ1bm5pbmcgdGhlIGNvbXBpbGVyIHR3aWNlIChldmVuIHdvcnNlCi0rIyMg ICB0aGFuIHJlbmFtaW5nKS4KLSsgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgotKyAgICBn Y2NmbGFnPS1NRCwKLSsgIGZpCi0rICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKLSsg IHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBy bSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAiJGRl cGZpbGUiCi0rICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKyAgYWxwaGE9QUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egotKyMjIFRo ZSBzZWNvbmQgLWUgZXhwcmVzc2lvbiBoYW5kbGVzIERPUy1zdHlsZSBmaWxlIG5hbWVzIHdpdGgg ZHJpdmUgbGV0dGVycy4KLSsgIHNlZCAtZSAncy9eW146XSo6IC8gLycgXAotKyAgICAgIC1lICdz L15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIK LSsjIyBUaGlzIG5leHQgcGllY2Ugb2YgbWFnaWMgYXZvaWRzIHRoZSBgZGVsZXRlZCBoZWFkZXIg ZmlsZScgcHJvYmxlbS4KLSsjIyBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gYSBoZWFkZXIgZmls ZSB3aGljaCBhcHBlYXJzIGluIGEgLlAgZmlsZQotKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRl bmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcwotKyMjIHR5cGljYWxseSBu byB3YXkgdG8gcmVidWlsZCB0aGUgaGVhZGVyKS4gIFdlIGF2b2lkIHRoaXMgYnkgYWRkaW5nCi0r IyMgZHVtbXkgZGVwZW5kZW5jaWVzIGZvciBlYWNoIGhlYWRlciBmaWxlLiAgVG9vIGJhZCBnY2Mg ZG9lc24ndCBkbwotKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgotKyAgdHIgJyAnICcKLSsnIDwg IiR0bXBkZXBmaWxlIiB8Ci0rIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVm b3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5Ci0rIyMgdGhhdCB0aGUgc3BhY2UgbWVhbnMgc29t ZXRoaW5nLCB3ZSBhZGQgYSBzcGFjZSB0byB0aGUgb3V0cHV0IGFzCi0rIyMgd2VsbC4KLSsjIyBT b21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52 b2NhdGlvbgotKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0 aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcg LWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0 bXBkZXBmaWxlIgotKyAgOzsKLSsKLStocCkKLSsgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRv IGxldCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQotKyAgIyBsb29raW5nIGF0 IHRoZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAot KyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KLSsgIGV4aXQgMQotKyAgOzsKLSsK LStzZ2kpCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgIiRAIiAiLVdw LC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgIiRAIiAtTUR1cGRhdGUgIiR0 bXBkZXBmaWxlIgotKyAgZmkKLSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRo ZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQK LSsgIGZpCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rCi0rICBpZiB0ZXN0IC1mICIkdG1wZGVwZmls ZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKLSsg ICAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKLSsKLSsgICAgIyBDbGlwIG9mZiB0 aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQotKyAg ICAjIGNsZXZlciBhbmQgcmVwbGFjZSB0aGlzIHdpdGggc2VkIGNvZGUsIGFzIElSSVggc2VkIHdv bid0IGhhbmRsZQotKyAgICAjIGxpbmVzIHdpdGggbW9yZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9m IGNoYXJhY3RlcnMgKDQwOTYgaW4KLSsgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2 LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKLSsgICAgIyB0aGUgSVJJWCBjYyBh ZGRzIGNvbW1lbnRzIGxpa2UgYCM6ZmVjJyB0byB0aGUgZW5kIG9mIHRoZQotKyAgICAjIGRlcGVu ZGVuY3kgbGluZS4KLSsgICAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiBcCi0rICAgIHwg c2VkIC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyB8IFwKLSsgICAg dHIgJwotKycgJyAnID4+ICRkZXBmaWxlCi0rICAgIGVjaG8gPj4gJGRlcGZpbGUKLSsKLSsgICAg IyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVhZGVy IGZpbGUuCi0rICAgIHRyICcgJyAnCi0rJyA8ICIkdG1wZGVwZmlsZSIgXAotKyAgIHwgc2VkIC1l ICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBcCi0r ICAgPj4gJGRlcGZpbGUKLSsgIGVsc2UKLSsgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBj b250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKLSsgICAgIyBzdG9yZSBhIGR1bW15IGNv bW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCi0rICAgICMgImlu Y2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCi0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZp bGUiCi0rICBmaQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLSthaXgpCi0rICAj IFRoZSBDIGZvciBBSVggQ29tcGlsZXIgdXNlcyAtTSBhbmQgb3V0cHV0cyB0aGUgZGVwZW5kZW5j aWVzCi0rICAjIGluIGEgLnUgZmlsZS4gIEluIG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3 YXlzIGxpdmVzIGluIHRoZQotKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVgg Y29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQotKyAgIyBzdGFydCBvZiBlYWNoIGxpbmU7 ICRvYmplY3QgZG9lc24ndCBoYXZlIGRpcmVjdG9yeSBpbmZvcm1hdGlvbi4KLSsgICMgVmVyc2lv biA2IHVzZXMgdGhlIGRpcmVjdG9yeSBpbiBib3RoIGNhc2VzLgotKyAgZGlyPWBlY2hvICIkb2Jq ZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKLSsgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVj dCIgJiYgZGlyPQotKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAt ZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVz OyB0aGVuCi0rICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUyPSRi YXNlLnUKLSsgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLnUKLSsgICAgIiRAIiAtV2Ms LU0KLSsgIGVsc2UKLSsgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmls ZTI9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLnUKLSsgICAgIiRAIiAt TQotKyAgZmkKLSsgIHN0YXQ9JD8KLSsKLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgot KyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRl cGZpbGUzIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKwotKyAgZm9yIHRtcGRlcGZpbGUgaW4g IiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKLSsgIGRvCi0rICAg IHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAi JHRtcGRlcGZpbGUiOyB0aGVuCi0rICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28u bzogZGVwZW5kZW50LmgnLgotKyAgICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5n ZSB0aGVzZSB0bwotKyAgICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1w bHkgYGRlcGVuZGVudC5oOicuCi0rICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDos IiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAgICMgVGhhdCdzIGEgdGFiIGFuZCBh IHNwYWNlIGluIHRoZSBbXS4KLSsgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1l ICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgICMg VGhlIHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0 Ci0rICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRo IHRoZSBNYWtlZmlsZQotKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgotKyAg ICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgZmkKLSsgIHJtIC1mICIkdG1wZGVwZmls ZSIKLSsgIDs7Ci0rCi0raWNjKQotKyAgIyBJbnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMg YC1NRCAtTUYgZmlsZScuICBIb3dldmVyIG9uCi0rICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1j IC1vIHN1Yi9mb28ubyBzdWIvZm9vLmMKLSsgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0 aCBzb21ldGhpbmcgbGlrZQotKyAgIyAgICBmb28ubzogc3ViL2Zvby5jCi0rICAjICAgIGZvby5v OiBzdWIvZm9vLmgKLSsgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3YW50OgotKyAgIyAgICBzdWIv Zm9vLm86IHN1Yi9mb28uYwotKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAotKyAgIyAgICBz dWIvZm9vLmM6Ci0rICAjICAgIHN1Yi9mb28uaDoKLSsgICMgSUNDIDcuMSB3aWxsIG91dHB1dAot KyAgIyAgICBmb28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAotKyAgIyBhbmQgd2lsbCB3cmFwIGxv bmcgbGluZXMgdXNpbmcgXCA6Ci0rICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKLSsgICMg ICAgIHN1Yi9mb28uaCAuLi4gXAotKyAgIyAgICAgLi4uCi0rCi0rICAiJEAiIC1NRCAtTUYgIiR0 bXBkZXBmaWxlIgotKyAgc3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0r ICBlbHNlCi0rICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkK LSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28u bzogZGVwZW5kZW50LmgnLAotKyAgIyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAg ZGVwMy5oIGRlcDQuaCBcJy4KLSsgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdl IHRoZXNlIHRvCi0rICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkg YGRlcGVuZGVudC5oOicuCi0rICBzZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVw ZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAg c2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rICAjIGNvcnJlY3RseS4gIEJyZWFr aW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICBzZWQg J3MsXlteOl0qOiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZp bGUiIHwKLSsgICAgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRt cGRlcGZpbGUiCi0rICA7OwotKwotK2hwMikKLSsgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRv ZXMgbm90IHdvcmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2NAotKyAgIyBjb21waWxlcnMs IHdoaWNoIGhhdmUgaW50ZWdyYXRlZCBwcmVwcm9jZXNzb3JzLiAgVGhlIGNvcnJlY3Qgb3B0aW9u Ci0rICAjIHRvIHVzZSB3aXRoIHRoZXNlIGlzICtNYWtlZDsgaXQgd3JpdGVzIGRlcGVuZGVuY2ll cyB0byBhIGZpbGUgbmFtZWQKLSsgICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUg b2JqZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQKLSsgICMgaGFwcGVucyB0byBiZS4KLSsgICMgTXVj aCBvZiB0aGlzIGlzIHNpbWlsYXIgdG8gdGhlIHRydTY0IGNhc2U7IHNlZSBjb21tZW50cyB0aGVy ZS4KLSsgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCi0rICB0 ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSsgIGJhc2U9YGVjaG8gIiRvYmplY3Qi IHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsgIGlm IHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2Uu ZAotKyAgICB0bXBkZXBmaWxlMj0kZGlyLmxpYnMvJGJhc2UuZAotKyAgICAiJEAiIC1XYywrTWFr ZWQKLSsgIGVsc2UKLSsgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKLSsgICAgdG1wZGVwZmls ZTI9JGRpciRiYXNlLmQKLSsgICAgIiRAIiArTWFrZWQKLSsgIGZpCi0rICBzdGF0PSQ/Ci0rICBp ZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgIHJtIC1mICIkdG1wZGVw ZmlsZTEiICIkdG1wZGVwZmlsZTIiCi0rICAgICBleGl0ICRzdGF0Ci0rICBmaQotKwotKyAgZm9y IHRtcGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKLSsgIGRvCi0rICAg IHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhawotKyAgZG9uZQotKyAgaWYgdGVzdCAtZiAi JHRtcGRlcGZpbGUiOyB0aGVuCi0rICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDos IiAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBs aW5lcy4KLSsgICAgc2VkIC1uZSAnMiwkezsgcy9eICovLzsgcy8gXFwqJC8vOyBzLyQvOi87IHA7 fScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgIGVjaG8gIiNkdW1t eSIgPiAiJGRlcGZpbGUiCi0rICBmaQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZp bGUyIgotKyAgOzsKLSsKLSt0cnU2NCkKLSsgICAjIFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1N RCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCi0rICAgIyBlZmZlY3QuICBgY2Mg LU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgot KyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBz ZWVtcyB0byBwdXQKLSsgICAjIGRlcGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdl IGNoZWNrIGZvciB0aGF0IHRvby4KLSsgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQu Ci0rICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKLSsgICB0 ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSsgICBiYXNlPWBlY2hvICIkb2JqZWN0 IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCi0rCi0r ICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgICAgIyBXaXRoIFRydTY0IGNj LCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1ha2UgYQotKyAgICAgICMgc3Rh dGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmll cyB0bwotKyAgICAgICMgaGFuZGxlIGJvdGggc2hhcmVkIGFuZCBzdGF0aWMgbGlicmFyaWVzIGlu IGEgc2luZ2xlIGNvbXBpbGF0aW9uLgotKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNCwgZGVwZW5k ZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGlicy8kYmFzZS5sby5kLgotKyAgICAgICMKLSsg ICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBleGNlcHRpb24gd2FzIHJlbW92ZWQsIGFuZCBs aWJ0b29sIG5vdwotKyAgICAgICMgZ2VuZXJhdGVzIDIgc2VwYXJhdGUgb2JqZWN0cyBmb3IgdGhl IDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCi0rICAgICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRl cGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAotKyAgICAgICMgaW4gJGRpciRi YXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9yIGJvdGggZmlsZXMsIGJlY2F1c2UKLSsgICAg ICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9ucyBjYW4gYmUgZGlzYWJsZWQuICBXZSBzaG91 bGQgcHJlZmVyCi0rICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8u ZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKLSsgICAgICAjIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB3 aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBpZ25vcmluZwotKyAgICAgICMgdGhlIGZvcm1l ciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNrIHBhbmljLgotKyAgICAgIHRtcGRlcGZpbGUx PSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAotKyAgICAgIHRtcGRlcGZpbGUy PSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0b29sIDEuNQotKyAgICAgIHRtcGRlcGZpbGUz PSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0b29sIDEuNQotKyAgICAgIHRtcGRlcGZpbGU0 PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0Ci0rICAgICAgIiRA IiAtV2MsLU1ECi0rICAgZWxzZQotKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKLSsg ICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAotKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFz ZS5kCi0rICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKLSsgICAgICAiJEAiIC1NRAotKyAg IGZpCi0rCi0rICAgc3RhdD0kPwotKyAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAg IGVsc2UKLSsgICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRl cGZpbGUzIiAiJHRtcGRlcGZpbGU0IgotKyAgICAgIGV4aXQgJHN0YXQKLSsgICBmaQotKwotKyAg IGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVw ZmlsZTMiICIkdG1wZGVwZmlsZTQiCi0rICAgZG8KLSsgICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxl IiAmJiBicmVhawotKyAgIGRvbmUKLSsgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4K LSsgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUi ID4gIiRkZXBmaWxlIgotKyAgICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBb XS4KLSsgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAi JHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsgICBlbHNlCi0rICAgICAgZWNobyAiI2R1bW15 IiA+ICIkZGVwZmlsZSIKLSsgICBmaQotKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgICA7Owot KwotKyNub3NpZGVlZmZlY3QpCi0rICAjIFRoaXMgY29tbWVudCBhYm92ZSBpcyB1c2VkIGJ5IGF1 dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKLSsgICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNo YW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCi0rCi0rZGFzaG1zdGRvdXQpCi0rICAjIEltcG9ydGFu dCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoK LSsgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2Fy ZGxlc3Mgb2YgLW8uCi0rICAiJEAiIHx8IGV4aXQgJD8KLSsKLSsgICMgUmVtb3ZlIHRoZSBjYWxs IHRvIExpYnRvb2wuCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgd2hp bGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRv bmUKLSsgICAgc2hpZnQKLSsgIGZpCi0rCi0rICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0rICBJ RlM9IiAiCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICRhcmcgaW4KLSsgICAgLW8pCi0r ICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAgICAkb2JqZWN0KQotKyAgICAgIHNoaWZ0Ci0rICAg ICAgOzsKLSsgICAgKikKLSsgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsgICAgICBzaGlm dCAjIGZub3JkCi0rICAgICAgc2hpZnQgIyAkYXJnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAg ZG9uZQotKwotKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCi0rICAjIFJl cXVpcmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIHNlYXJjaGluZyBmb3IgYDonCi0r ICAjIGluIHRoZSB0YXJnZXQgbmFtZS4gIFRoaXMgaXMgdG8gY29wZSB3aXRoIERPUy1zdHlsZSBm aWxlbmFtZXM6Ci0rICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBi ZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgotKyAgIiRAIiAkZGFzaG1mbGFnIHwKLSsg ICAgc2VkICdzOl5bICBdKlteOiBdW146XVteOl0qXDpbICAgIF0qOiciJG9iamVjdCInXDogOicg PiAiJHRtcGRlcGZpbGUiCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZp bGUiID4gIiRkZXBmaWxlIgotKyAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBmaWxlIiB8IFwKLSsj IyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMg aW52b2NhdGlvbgotKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZv Y2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0rICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQv ZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYg IiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLStkYXNoWG1zdGRvdXQpCi0rICAjIFRoaXMgY2FzZSBv bmx5IGV4aXN0cyB0byBzYXRpc2Z5IGRlcGVuZC5tNC4gIEl0IGlzIG5ldmVyIGFjdHVhbGx5Ci0r ICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVh bWJsZS4KLSsgIGV4aXQgMQotKyAgOzsKLSsKLSttYWtlZGVwZW5kKQotKyAgIiRAIiB8fCBleGl0 ICQ/Ci0rICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIg PSB5ZXM7IHRoZW4KLSsgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbwot KyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAgc2hpZnQKLSsgIGZpCi0rICAjIFggbWFrZWRl cGVuZAotKyAgc2hpZnQKLSsgIGNsZWFyZWQ9bm8KLSsgIGZvciBhcmcgaW4gIiRAIjsgZG8KLSsg ICAgY2FzZSAkY2xlYXJlZCBpbgotKyAgICBubykKLSsgICAgICBzZXQgIiI7IHNoaWZ0Ci0rICAg ICAgY2xlYXJlZD15ZXMgOzsKLSsgICAgZXNhYwotKyAgICBjYXNlICIkYXJnIiBpbgotKyAgICAt RCp8LUkqKQotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKLSsgICAgIyBT dHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1v dmUKLSsgICAgIyB0aGUgb2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBwYXJz ZSBpdCBhcyBhIHNvdXJjZSBmaWxlLgotKyAgICAtKnwkb2JqZWN0KQotKyAgICAgIDs7Ci0rICAg ICopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotKyAgICBlc2FjCi0r ICBkb25lCi0rICBvYmpfc3VmZml4PSJgZWNobyAkb2JqZWN0IHwgc2VkICdzL14uKlwuLy4vJ2Ai Ci0rICB0b3VjaCAiJHRtcGRlcGZpbGUiCi0rICAke01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8i JG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCi0rICBybSAtZiAiJGRlcGZpbGUiCi0r ICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgc2VkICcxLDJkJyAiJHRtcGRl cGZpbGUiIHwgdHIgJyAnICcKLSsnIHwgXAotKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVgg MTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rIyMgY29ycmVjdGx5LiAg QnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSsg ICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQv IDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIu YmFrCi0rICA7OwotKwotK2NwcCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1 cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhl IHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KLSsgICIkQCIgfHwgZXhpdCAkPwotKwotKyAg IyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHll czsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAg ICAgc2hpZnQKLSsgICAgZG9uZQotKyAgICBzaGlmdAotKyAgZmkKLSsKLSsgICMgUmVtb3ZlIGAt byAkb2JqZWN0Jy4KLSsgIElGUz0iICIKLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGFy ZyBpbgotKyAgICAtbykKLSsgICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICRvYmplY3QpCi0r ICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIHNldCBmbm9yZCAiJEAiICIk YXJnIgotKyAgICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgICBzaGlmdCAjICRhcmcKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICAiJEAiIC1FIHwKLSsgICAgc2VkIC1uIC1lICcv XiMgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIFwKLSsgICAgICAgLWUg Jy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKLSsgICAg c2VkICckIHM6IFxcJDo6JyA+ICIkdG1wZGVwZmlsZSIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsg IGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUi ID4+ICIkZGVwZmlsZSIKLSsgIHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBc XCQvLztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7 OwotKwotK21zdmlzdWFsY3BwKQotKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3Vw cG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0rICAjIGFsd2F5cyB3cml0ZSB0aGUg cHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9mIC1vLAotKyAgIyBiZWNh dXNlIHdlIG11c3QgdXNlIC1vIHdoZW4gcnVubmluZyBsaWJ0b29sLgotKyAgIiRAIiB8fCBleGl0 ICQ/Ci0rICBJRlM9IiAiCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICIkYXJnIiBpbgot KyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikKLSsJc2V0IGZub3JkICIk QCIKLSsJc2hpZnQKLSsJc2hpZnQKLSsJOzsKLSsgICAgKikKLSsJc2V0IGZub3JkICIkQCIgIiRh cmciCi0rCXNoaWZ0Ci0rCXNoaWZ0Ci0rCTs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgICIkQCIg LUUgfAotKyAgc2VkIC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjplY2hv ICJgY3lncGF0aCAtdSBcXCJcMVxcImAiOnAnIHwgc29ydCB8IHVuaXEgPiAiJHRtcGRlcGZpbGUi Ci0rICBybSAtZiAiJGRlcGZpbGUiCi0rICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxl IgotKyAgLiAiJHRtcGRlcGZpbGUiIHwgc2VkICdzJSAlXFwgJWcnIHwgc2VkIC1uICcvXlwoLipc KSQvIHM6OglcMSBcXDpwJyA+PiAiJGRlcGZpbGUiCi0rICBlY2hvICIJIiA+PiAiJGRlcGZpbGUi Ci0rICAuICIkdG1wZGVwZmlsZSIgfCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwp JC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7 OwotKwotK25vbmUpCi0rICBleGVjICIkQCIKLSsgIDs7Ci0rCi0rKikKLSsgIGVjaG8gIlVua25v d24gZGVwbW9kZSAkZGVwbW9kZSIgMT4mMgotKyAgZXhpdCAxCi0rICA7OwotK2VzYWMKLSsKLStl eGl0IDAKLSsKLSsjIExvY2FsIFZhcmlhYmxlczoKLSsjIG1vZGU6IHNoZWxsLXNjcmlwdAotKyMg c2gtaW5kZW50YXRpb246IDIKLSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAn dGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRp bWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC1lbmQ6 ICIkIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxs LXNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvaW5zdGFsbC1zaAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCTIwMDktMDUtMDYg MDE6MzE6NDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDUxOSBAQAotKyMhL2Jpbi9zaAot KyMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCi0rCi0r c2NyaXB0dmVyc2lvbj0yMDA2LTEyLTI1LjAwCi0rCi0rIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBY MTFSNSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCi0rIyBsYXRlciBy ZWxlYXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKLSsj IGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCi0rIwotKyMgQ29weXJpZ2h0IChDKSAx OTk0IFggQ29uc29ydGl1bQotKyMKLSsjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKLSsjIG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLCB0bwotKyMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKLSsjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgotKyMg c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUgU29mdHdhcmUgaXMKLSsjIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0rIwotKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSsjIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKyMKLSsjIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCi0rIyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSsjIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBU SEUKLSsjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSsjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KLSsjIFRJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg U09GVFdBUkUuCi0rIwotKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhl IG5hbWUgb2YgdGhlIFggQ29uc29ydGl1bSBzaGFsbCBub3QKLSsjIGJlIHVzZWQgaW4gYWR2ZXJ0 aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFs LQotKyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3Jp emF0aW9uIGZyb20gdGhlIFggQ29uc29yLQotKyMgdGl1bS4KLSsjCi0rIwotKyMgRlNGIGNoYW5n ZXMgdG8gdGhpcyBmaWxlIGFyZSBpbiB0aGUgcHVibGljIGRvbWFpbi4KLSsjCi0rIyBDYWxsaW5n IHRoaXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8g cHJldmVudAotKyMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNh bGxlZCBpbnN0YWxsIGZyb20gaXQKLSsjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCi0rIwot KyMgVGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQs IGJ1dCB3YXMgd3JpdHRlbgotKyMgZnJvbSBzY3JhdGNoLgotKwotK25sPScKLSsnCi0rSUZTPSIg IiIJJG5sIgotKwotKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAot KwotKyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3Qg bGlrZSBpdC4KLStkb2l0PSR7RE9JVFBST0ctfQotK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgot KyAgZG9pdF9leGVjPWV4ZWMKLStlbHNlCi0rICBkb2l0X2V4ZWM9JGRvaXQKLStmaQotKwotKyMg UHV0IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3Vy IHBhdGg7Ci0rIyBvciB1c2UgZW52aXJvbm1lbnQgdmFycy4KLSsKLStjaGdycHByb2c9JHtDSEdS UFBST0ctY2hncnB9Ci0rY2htb2Rwcm9nPSR7Q0hNT0RQUk9HLWNobW9kfQotK2Nob3ducHJvZz0k e0NIT1dOUFJPRy1jaG93bn0KLStjbXBwcm9nPSR7Q01QUFJPRy1jbXB9Ci0rY3Bwcm9nPSR7Q1BQ Uk9HLWNwfQotK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0KLSttdnByb2c9JHtNVlBST0ct bXZ9Ci0rcm1wcm9nPSR7Uk1QUk9HLXJtfQotK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0K LSsKLStwb3NpeF9nbG9iPSc/JwotK2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCi0rICB0ZXN0ICIk cG9zaXhfZ2xvYiIgIT0gIj8iIHx8IHsKLSsgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRo ZW4KLSsgICAgICBwb3NpeF9nbG9iPQotKyAgICBlbHNlCi0rICAgICAgcG9zaXhfZ2xvYj06Ci0r ICAgIGZpCi0rICB9Ci0rJwotKwotK3Bvc2l4X21rZGlyPQotKwotKyMgRGVzaXJlZCBtb2RlIG9m IGluc3RhbGxlZCBmaWxlLgotK21vZGU9MDc1NQotKwotK2NoZ3JwY21kPQotK2NobW9kY21kPSRj aG1vZHByb2cKLStjaG93bmNtZD0KLSttdmNtZD0kbXZwcm9nCi0rcm1jbWQ9IiRybXByb2cgLWYi Ci0rc3RyaXBjbWQ9Ci0rCi0rc3JjPQotK2RzdD0KLStkaXJfYXJnPQotK2RzdF9hcmc9Ci0rCi0r Y29weV9vbl9jaGFuZ2U9ZmFsc2UKLStub190YXJnZXRfZGlyZWN0b3J5PQotKwotK3VzYWdlPSJc Ci0rVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBEU1RGSUxFCi0rICAgb3I6ICQw IFtPUFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQotKyAgIG9yOiAkMCBbT1BUSU9OXS4u LiAtdCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KLSsgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElS RUNUT1JJRVMuLi4KLSsKLStJbiB0aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxF LgotK0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgot K0luIHRoZSA0dGgsIGNyZWF0ZSBESVJFQ1RPUklFUy4KLSsKLStPcHRpb25zOgotKyAgICAgLS1o ZWxwICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KLSsgICAgIC0tdmVyc2lvbiAgZGlz cGxheSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCi0rCi0rICAtYyAgICAgICAgICAgIChpZ25vcmVk KQotKyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0 aGUgbGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQotKyAgLWQgICAgICAgICAgICBjcmVhdGUg ZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgotKyAgLWcgR1JPVVAgICAg ICAkY2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4KLSsgIC1tIE1PREUgICAgICAg JGNobW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KLSsgIC1vIFVTRVIgICAgICAgJGNo b3ducHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KLSsgIC1zICAgICAgICAgICAgJHN0cmlw cHJvZyBpbnN0YWxsZWQgZmlsZXMuCi0rICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJF Q1RPUlkuCi0rICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEg ZGlyZWN0b3J5LgotKwotK0Vudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVs dCBjb21tYW5kczoKLSsgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQ Uk9HIE1LRElSUFJPRyBNVlBST0cKLSsgIFJNUFJPRyBTVFJJUFBST0cKLSsiCi0rCi0rd2hpbGUg dGVzdCAkIyAtbmUgMDsgZG8KLSsgIGNhc2UgJDEgaW4KLSsgICAgLWMpIDs7Ci0rCi0rICAgIC1D KSBjb3B5X29uX2NoYW5nZT10cnVlOzsKLSsKLSsgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7Ci0rCi0r ICAgIC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKLSsJc2hpZnQ7OwotKwotKyAgICAtLWhl bHApIGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OwotKwotKyAgICAtbSkgbW9kZT0kMgotKwljYXNl ICRtb2RlIGluCi0rCSAgKicgJyogfCAqJwknKiB8IConCi0rJyoJICB8IConKicqIHwgKic/Jyog fCAqJ1snKikKLSsJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKLSsJICAg IGV4aXQgMTs7Ci0rCWVzYWMKLSsJc2hpZnQ7OwotKwotKyAgICAtbykgY2hvd25jbWQ9IiRjaG93 bnByb2cgJDIiCi0rCXNoaWZ0OzsKLSsKLSsgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7Owot KwotKyAgICAtdCkgZHN0X2FyZz0kMgotKwlzaGlmdDs7Ci0rCi0rICAgIC1UKSBub190YXJnZXRf ZGlyZWN0b3J5PXRydWU7OwotKwotKyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJz aW9uIjsgZXhpdCAkPzs7Ci0rCi0rICAgIC0tKQlzaGlmdAotKwlicmVhazs7Ci0rCi0rICAgIC0q KQllY2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKLSsJZXhpdCAxOzsKLSsKLSsgICAg KikgIGJyZWFrOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotKwotK2lmIHRlc3QgJCMgLW5l IDAgJiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4KLSsgICMgV2hlbiAtZCBpcyB1 c2VkLCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgot KyAgIyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmll ZC4KLSsgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24u ICBSZW1vdmUgaXQgZnJvbSAkQC4KLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGlmIHRlc3QgLW4g IiRkc3RfYXJnIjsgdGhlbgotKyAgICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBh dCBsZWFzdCAkYXJnLgotKyAgICAgIHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKLSsgICAgICBz aGlmdCAjIGZub3JkCi0rICAgIGZpCi0rICAgIHNoaWZ0ICMgYXJnCi0rICAgIGRzdF9hcmc9JGFy ZwotKyAgZG9uZQotK2ZpCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgaWYgdGVzdCAt eiAiJGRpcl9hcmciOyB0aGVuCi0rICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmll ZC4iID4mMgotKyAgICBleGl0IDEKLSsgIGZpCi0rICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFs bC1zaCAtZCcgd2l0aG91dCBhcmd1bWVudC4KLSsgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3Jl YXRpbmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCi0rICBleGl0IDAKLStmaQotKwotK2lmIHRl c3QgLXogIiRkaXJfYXJnIjsgdGhlbgotKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMg MTUKLSsKLSsgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28t Z2VuZXJvdXMgbW9kZXMuCi0rICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFk IGFuZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCi0rICBjYXNlICRtb2RlIGluCi0rICAgICMgT3B0 aW1pemUgY29tbW9uIGNhc2VzLgotKyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OwotKyAgICAqNzU1 KSBjcF91bWFzaz0yMjs7Ci0rCi0rICAgICpbMC03XSkKLSsgICAgICBpZiB0ZXN0IC16ICIkc3Ry aXBjbWQiOyB0aGVuCi0rCXVfcGx1c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0nJSAy MDAnCi0rICAgICAgZmkKLSsgICAgICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAx MDAwICcpJyAkdV9wbHVzX3J3YDs7Ci0rICAgICopCi0rICAgICAgaWYgdGVzdCAteiAiJHN0cmlw Y21kIjsgdGhlbgotKwl1X3BsdXNfcnc9Ci0rICAgICAgZWxzZQotKwl1X3BsdXNfcnc9LHUrcncK LSsgICAgICBmaQotKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7Ci0rICBlc2FjCi0r ZmkKLSsKLStmb3Igc3JjCi0rZG8KLSsgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAt Jy4KLSsgIGNhc2UgJHNyYyBpbgotKyAgICAtKikgc3JjPS4vJHNyYzs7Ci0rICBlc2FjCi0rCi0r ICBpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KLSsgICAgZHN0PSRzcmMKLSsgICAgZHN0ZGly PSRkc3QKLSsgICAgdGVzdCAtZCAiJGRzdGRpciIKLSsgICAgZHN0ZGlyX3N0YXR1cz0kPwotKyAg ZWxzZQotKwotKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIk Y3Bwcm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAotKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9y aWVzIHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCi0rICAgICMg aWYgJHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgotKyAgICBpZiB0ZXN0ICEg LWYgIiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogJHNy YyBkb2VzIG5vdCBleGlzdC4iID4mMgotKyAgICAgIGV4aXQgMQotKyAgICBmaQotKwotKyAgICBp ZiB0ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRp b24gc3BlY2lmaWVkLiIgPiYyCi0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGRzdD0k ZHN0X2FyZwotKyAgICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCi0rICAgIGNh c2UgJGRzdCBpbgotKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKLSsgICAgZXNhYwotKwotKyAgICAj IElmIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1l OyB3b24ndCB3b3JrCi0rICAgICMgaWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCi0r ICAgIGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJG5vX3Rhcmdl dF9kaXJlY3RvcnkiOyB0aGVuCi0rCWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3Rvcnki ID4mMgotKwlleGl0IDEKLSsgICAgICBmaQotKyAgICAgIGRzdGRpcj0kZHN0Ci0rICAgICAgZHN0 PSRkc3RkaXIvYGJhc2VuYW1lICIkc3JjImAKLSsgICAgICBkc3RkaXJfc3RhdHVzPTAKLSsgICAg ZWxzZQotKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0 dXRlIGlmIGRpcm5hbWUgZmFpbHMuCi0rICAgICAgZHN0ZGlyPWAKLSsJKGRpcm5hbWUgIiRkc3Qi KSAyPi9kZXYvbnVsbCB8fAotKwlleHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14v XSovKiQnIFx8IFwKLSsJICAgICBYIiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSAgICAg WCIkZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAu IDI+L2Rldi9udWxsIHx8Ci0rCWVjaG8gWCIkZHN0IiB8Ci0rCSAgICBzZWQgJy9eWFwoLipbXi9d XClcL1wvKlteL11bXi9dKlwvKiQvewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJ IC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJCSAgIHMvL1wxLwotKwkJICAgcQotKwkJIH0KLSsJCSAv XlhcKFwvXC9cKSQvewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9c KS4qL3sKLSsJCSAgIHMvL1wxLwotKwkJICAgcQotKwkJIH0KLSsJCSBzLy4qLy4vOyBxJwotKyAg ICAgIGAKLSsKLSsgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgotKyAgICAgIGRzdGRpcl9zdGF0dXM9 JD8KLSsgICAgZmkKLSsgIGZpCi0rCi0rICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCi0rCi0r ICBpZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KLSsgICAgY2FzZSAkcG9zaXhfbWtk aXIgaW4KLSsgICAgICAnJykKLSsJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9k ZSA3NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgotKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNE ICdpbnN0YWxsJyBhcyBvZiAxOTk3LTEwLTI4LgotKwl1bWFzaz1gdW1hc2tgCi0rCWNhc2UgJHN0 cmlwY21kLiR1bWFzayBpbgotKwkgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgotKwkgICpbMjM2 N11bMjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7Ci0rCSAgLiowWzAyXVswMl0gfCAuWzAyXVsw Ml0gfCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OwotKwotKwkgICpbMC03XSkKLSsJICAgIG1rZGly X3VtYXNrPWBleHByICR1bWFzayArIDIyIFwKLSsJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCAr ICR1bWFzayAlIDIwIFwKLSsJICAgICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCi0r CSAgICBgOzsKLSsJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7Ci0rCWVzYWMKLSsKLSsJ IyBXaXRoIC1kLCBjcmVhdGUgdGhlIG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZp ZWQgbW9kZS4KLSsJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgotKwlpZiB0ZXN0 IC1uICIkZGlyX2FyZyI7IHRoZW4KLSsJICBta2Rpcl9tb2RlPS1tJG1vZGUKLSsJZWxzZQotKwkg IG1rZGlyX21vZGU9Ci0rCWZpCi0rCi0rCXBvc2l4X21rZGlyPWZhbHNlCi0rCWNhc2UgJHVtYXNr IGluCi0rCSAgKlsxMjM1NjddWzAtN11bMC03XSkKLSsJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0 cyB1K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKLSsJICAgICMgaXMgaW5jb21w YXRpYmxlIHdpdGggRnJlZUJTRCAnaW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCi0r CSAgICA7OwotKwkgICopCi0rCSAgICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0k JAotKwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2 L251bGw7IGV4aXQgJHJldCcgMAotKwotKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgot KwkJZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9u dWxsIDI+JjEKLSsJICAgIHRoZW4KLSsJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsK LSsJCSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCi0rCQkg ICAjIEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgot KwkJICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBz aG91bGRuJ3QuCi0rCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBl eGlzdGluZyBkaXJlY3RvcnkuCi0rCQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJg Ci0rCQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KLSsJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVy ZW50X21vZGU9NzAwOzsKLSsJCSAgICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsK LSsJCSAgICAgKikgZmFsc2U7OwotKwkJICAgZXNhYyAmJgotKwkJICAgJG1rZGlycHJvZyAtbSRk aWZmZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgewotKwkJICAgICBsc19sZF90bXBkaXJf MT1gbHMgLWxkICIkdG1wZGlyImAKLSsJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxz X2xkX3RtcGRpcl8xIgotKwkJICAgfQotKwkJIH0KLSsJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06 Ci0rCSAgICAgIGZpCi0rCSAgICAgIHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgotKwkgICAg ZWxzZQotKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1r ZGlyIGltcGxlbWVudGF0aW9ucy4KLSsJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4v LS0gMj4vZGV2L251bGwKLSsJICAgIGZpCi0rCSAgICB0cmFwICcnIDA7OwotKwllc2FjOzsKLSsg ICAgZXNhYwotKwotKyAgICBpZgotKyAgICAgICRwb3NpeF9ta2RpciAmJiAoCi0rCXVtYXNrICRt a2Rpcl91bWFzayAmJgotKwkkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0g IiRkc3RkaXIiCi0rICAgICAgKQotKyAgICB0aGVuIDoKLSsgICAgZWxzZQotKwotKyAgICAgICMg VGhlIHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9T SVgsCi0rICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRp b24uICBDcmVhdGUgdGhlCi0rICAgICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5 IHN0ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KLSsKLSsgICAgICBjYXNlICRkc3Rk aXIgaW4KLSsJLyopIHByZWZpeD0nLyc7OwotKwktKikgcHJlZml4PScuLyc7OwotKwkqKSAgcHJl Zml4PScnOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhf Z2xvYiIKLSsKLSsgICAgICBvSUZTPSRJRlMKLSsgICAgICBJRlM9LwotKyAgICAgICRwb3NpeF9n bG9iIHNldCAtZgotKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCi0rICAgICAgc2hpZnQKLSsgICAg ICAkcG9zaXhfZ2xvYiBzZXQgK2YKLSsgICAgICBJRlM9JG9JRlMKLSsKLSsgICAgICBwcmVmaXhl cz0KLSsKLSsgICAgICBmb3IgZAotKyAgICAgIGRvCi0rCXRlc3QgLXogIiRkIiAmJiBjb250aW51 ZQotKwotKwlwcmVmaXg9JHByZWZpeCRkCi0rCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCi0r CSAgcHJlZml4ZXM9Ci0rCWVsc2UKLSsJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KLSsJICAgICh1 bWFzaz0kbWtkaXJfdW1hc2sgJiYKLSsJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGly X21vZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhawotKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3 byBpbnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgotKwkgICAgdGVzdCAtZCAiJHBy ZWZpeCIgfHwgZXhpdCAxCi0rCSAgZWxzZQotKwkgICAgY2FzZSAkcHJlZml4IGluCi0rCSAgICAg ICpcJyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJg OzsKLSsJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKLSsJICAgIGVzYWMKLSsJICAgIHByZWZp eGVzPSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKLSsJICBmaQotKwlmaQotKwlwcmVmaXg9JHByZWZp eC8KLSsgICAgICBkb25lCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgot KwkjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHku Ci0rCSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKLSsJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJw cm9nICRwcmVmaXhlcyIpIHx8Ci0rCSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCi0rCW9i c29sZXRlX21rZGlyX3VzZWQ9dHJ1ZQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBmaQotKwotKyAg aWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCi0rICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8 fCAkZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAteiAiJGNoZ3JwY21k IiB8fCAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAiJG9ic29sZXRl X21rZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwKLSsgICAgICB0ZXN0IC16 ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAx Ci0rICBlbHNlCi0rCi0rICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4g dGhlIHByb3BlciBkaXJlY3RvcnkuCi0rICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXwotKyAg ICBybXRtcD0kZHN0ZGlyL19ybS4kJF8KLSsKLSsgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3Nl IHRlbXAgZmlsZXMgYXQgZXhpdC4KLSsgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIg IiRybXRtcCIgJiYgZXhpdCAkcmV0JyAwCi0rCi0rICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRv IHRoZSB0ZW1wIG5hbWUuCi0rICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bw cm9nICIkc3JjIiAiJGRzdHRtcCIpICYmCi0rCi0rICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsg ZG8gY2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cy4KLSsgICAgIwotKyAgICAjIElm IGFueSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50 IHRvCi0rICAgICMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1 cmUgbm90IHRvIGlnbm9yZQotKyAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNw cHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCi0rICAgICMKLSsgICAgeyB0ZXN0IC16ICIkY2hv d25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16 ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0 ZXN0IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsg ICAgeyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRt cCI7IH0gJiYKLSsKLSsgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291 bGRuJ3QgY2hhbmdlIHRoZSBmaWxlLgotKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKLSsgICAg ICAgb2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAg bmV3PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKLSsKLSsgICAg ICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Ig c2V0IC1mICYmCi0rICAgICAgIHNldCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgotKyAg ICAgICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYKLSsgICAgICAgJHBvc2l4X2ds b2Igc2V0ICtmICYmCi0rCi0rICAgICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCi0rICAgICAg ICRjbXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYxCi0rICAgIHRoZW4KLSsg ICAgICBybSAtZiAiJGRzdHRtcCIKLSsgICAgZWxzZQotKyAgICAgICMgUmVuYW1lIHRoZSBmaWxl IHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgotKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRt cCIgIiRkc3QiIDI+L2Rldi9udWxsIHx8Ci0rCi0rICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwg cGVyaGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQotKyAgICAgICMg dG8gaXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRv ZXMgbm90Ci0rICAgICAgIyBzdXBwb3J0IC1mLgotKyAgICAgIHsKLSsJIyBOb3cgcmVtb3ZlIG9y IG1vdmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgotKwkjIFdl IHRyeSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQot KwkjIHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90 aGVyCi0rCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQg ZmFpbCBidXQgdGhlIG5ldwotKwkjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1 bGx5LgotKwl7Ci0rCSAgdGVzdCAhIC1mICIkZHN0IiB8fAotKwkgICRkb2l0ICRybWNtZCAtZiAi JGRzdCIgMj4vZGV2L251bGwgfHwKLSsJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRt cCIgMj4vZGV2L251bGwgJiYKLSsJICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rl di9udWxsOyA6OyB9Ci0rCSAgfSB8fAotKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3Ig cmVuYW1lICRkc3QiID4mMgotKwkgICAgKGV4aXQgMSk7IGV4aXQgMQotKwkgIH0KLSsJfSAmJgot KwotKwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0rCSRk b2l0ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCi0rICAgICAgfQotKyAgICBmaSB8fCBleGl0IDEK LSsKLSsgICAgdHJhcCAnJyAwCi0rICBmaQotK2RvbmUKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoK LSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRp bWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAi JTp5LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgotKyMgRW5kOgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG1haW4uc2ggc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9sdG1haW4uc2gKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWlu LnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gJMjAwOC0wOC0zMCAwMDoyNzoxMC4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNjk1NiBAQAotKyMgbHRtYWluLnNoIC0gUHJvdmlkZSBnZW5lcmFsaXpl ZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCi0rIyBOT1RFOiBDaGFuZ2luZyB0 aGlzIGZpbGUgd2lsbCBub3QgYWZmZWN0IGFueXRoaW5nIHVudGlsIHlvdSByZXJ1biBjb25maWd1 cmUuCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAotKyMgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBPcmlnaW5hbGx5IGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxn b3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Ci0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsIGJ1dAotKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSsjIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZv dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSwgVVNBLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlv biBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIK LSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0 IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLStiYXNlbmFtZT0icyxeLiovLCxnIgotKwotKyMgV29yayBh cm91bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2 LjQrLCBzaAotKyMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIg YW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mCi0rIyB0aGUgX1hQRyBlbnZpcm9ubWVudCB2YXJpYWJs ZSBpcyBub3QgZXF1YWwgdG8gMSAob25lKSwgdGhlIHNwZWNpYWwKLSsjIHBvc2l0aW9uYWwgcGFy YW1ldGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKLSsj IGZ1bmN0aW9uLgotK3Byb2dwYXRoPSIkMCIKLSsKLSsjIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3Jh bToKLStwcm9nbmFtZT1gZWNobyAiJHByb2dwYXRoIiB8ICRTRUQgJGJhc2VuYW1lYAotK21vZGVu YW1lPSIkcHJvZ25hbWUiCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgotK0VYSVRfU1VDQ0VTUz0w Ci0rRVhJVF9GQUlMVVJFPTEKLSsKLStQUk9HUkFNPWx0bWFpbi5zaAotK1BBQ0tBR0U9bGlidG9v bAotK1ZFUlNJT049MS41LjI2Ci0rVElNRVNUQU1QPSIgKDEuMTIyMC4yLjQ5MyAyMDA4LzAyLzAx IDE2OjU4OjE4KSIKLSsKLSsjIEJlIEJvdXJuZSBjb21wYXRpYmxlICh0YWtlbiBmcm9tIEF1dG9j b25mOl9BU19CT1VSTkVfQ09NUEFUSUJMRSkuCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitz ZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVsYXRlIHNo Ci0rICBOVUxMQ01EPToKLSsgICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0 aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAg RGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsg IHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251 bGxgIGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKLStmaQotK0JJTl9TSD14cGc0OyBl eHBvcnQgQklOX1NIICMgZm9yIFRydTY0Ci0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMg Zm9yIE1LUyBzaAotKwotKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkZWNoby4KLStp ZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0rICAjIERpc2NhcmQgdGhlIC0tbm8t cmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KLSsgIHNoaWZ0Ci0rZWxpZiB0ZXN0ICJYJDEiID0g WC0tZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwg aXQgbWF5IGJlIGxlZnQgb3ZlcgotKyAgOgotK2VsaWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4v ZGV2L251bGxgIiA9ICdYXHQnOyB0aGVuCi0rICAjIFlpcHBlZSwgJGVjaG8gd29ya3MhCi0rICA6 Ci0rZWxzZQotKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBt YXliZSAkZWNobyB3aWxsIHdvcmsuCi0rICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAtLW5vLXJl ZXhlYyAkezErIiRAIn0KLStmaQotKwotK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hv OyB0aGVuCi0rICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwotKyAgc2hpZnQKLSsgIGNhdCA8PEVP RgotKyQqCi0rRU9GCi0rICBleGl0ICRFWElUX1NVQ0NFU1MKLStmaQotKwotK2RlZmF1bHRfbW9k ZT0KLStoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4i Ci0rbWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUlIgotK21rZGlyPSJta2RpciIKLSttdj0ibXYg LWYiCi0rcm09InJtIC1mIgotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRv IHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKLSsjIG1ldGFjaGFyYWN0ZXJzIHRo YXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotK1hzZWQ9 IiR7U0VEfSInIC1lIDFzL15YLy8nCi0rc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcYFxcIiRcXFxc XVwpL1xcXDEvZycKLSsjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCi0rY2FzZSBgZWNobyBYfHRyIFgg J1wxMDEnYCBpbgotKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQotKyAgICAjIFxuIGlzIG5vdCBp bnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCi0rICBTUDJOTD0n dHIgXDA0MCBcMDEyJwotKyAgTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJwotKyAgOzsKLSsg KikgIyBFQkNESUMgYmFzZWQgc3lzdGVtCi0rICBTUDJOTD0ndHIgXDEwMCBcbicKLSsgIE5MMlNQ PSd0ciBcclxuIFwxMDBcMTAwJwotKyAgOzsKLStlc2FjCi0rCi0rIyBOTFMgbnVpc2FuY2VzLgot KyMgT25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCi0rIyBUaGVz ZSBtdXN0IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5IGJlY2F1c2Ugbm90IGFsbCBzeXN0ZW1z IHVuZGVyc3RhbmQKLSsjIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTykuCi0rIyBXZSBzYXZlIHRo ZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KLStsdF9lbnY9Ci0r Zm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExD X01FU1NBR0VTCi0rZG8KLSsgIGV2YWwgImlmIHRlc3QgXCJcJHskbHRfdmFyK3NldH1cIiA9IHNl dDsgdGhlbgotKwkgIHNhdmVfJGx0X3Zhcj1cJCRsdF92YXIKLSsJICBsdF9lbnY9XCIkbHRfdmFy PVwkJGx0X3ZhciBcJGx0X2VudlwiCi0rCSAgJGx0X3Zhcj1DCi0rCSAgZXhwb3J0ICRsdF92YXIK LSsJZmkiCi0rZG9uZQotKwotK2lmIHRlc3QgLW4gIiRsdF9lbnYiOyB0aGVuCi0rICBsdF9lbnY9 ImVudiAkbHRfZW52IgotK2ZpCi0rCi0rIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRl ZmF1bHQKLStsdF9ubD0nCi0rJwotK0lGUz0iIAkkbHRfbmwiCi0rCi0raWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgIT0geWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0 aGVuCi0rICAkZWNobyAiJG1vZGVuYW1lOiBub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2lu ZCBvZiBsaWJyYXJ5IiAxPiYyCi0rICAkZWNobyAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4g IFNlZSB0aGUgJFBBQ0tBR0UgZG9jcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKLSsgIGV4 aXQgJEVYSVRfRkFJTFVSRQotK2ZpCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzLgotK21vZGU9JGRl ZmF1bHRfbW9kZQotK25vbm9wdD0KLStwcmV2PQotK3ByZXZvcHQ9Ci0rcnVuPQotK3Nob3c9IiRl Y2hvIgotK3Nob3dfaGVscD0KLStleGVjdXRlX2RsZmlsZXM9Ci0rZHVwbGljYXRlX2RlcHM9bm8K LStwcmVzZXJ2ZV9hcmdzPQotK2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKLStvMmxvPSJz L1xcLiR7b2JqZXh0fVwkLy5sby8iCi0rZXh0cmFjdGVkX2FyY2hpdmVzPQotK2V4dHJhY3RlZF9z ZXJpYWw9MAotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIFNo ZWxsIGZ1bmN0aW9uIGRlZmluaXRpb25zOgotKyMgVGhpcyBzZWVtcyB0byBiZSB0aGUgYmVzdCBw bGFjZSBmb3IgdGhlbQotKwotKyMgZnVuY19ta3RlbXBkaXIgW3N0cmluZ10KLSsjIE1ha2UgYSB0 ZW1wb3JhcnkgZGlyZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCi0r IyBsaWJ0b29sIHByb2Nlc3NlcywgYW5kIGF2b2lkcyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2li bGUuICBJZgotKyMgZ2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0 b3J5LgotK2Z1bmNfbWt0ZW1wZGlyICgpCi0rewotKyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVIt L3RtcH0vJHsxLSRwcm9nbmFtZX0iCi0rCi0rICAgIGlmIHRlc3QgIiRydW4iID0gIjoiOyB0aGVu Ci0rICAgICAgIyBSZXR1cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0IGNyZWF0ZSBpdCBp biBkcnktcnVuIG1vZGUKLSsgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSQkIgotKyAg ICBlbHNlCi0rCi0rICAgICAgIyBJZiBta3RlbXAgd29ya3MsIHVzZSB0aGF0IGZpcnN0IGFuZCBm b3JlbW9zdAotKyAgICAgIG15X3RtcGRpcj1gbWt0ZW1wIC1kICIke215X3RlbXBsYXRlfS1YWFhY WFhYWCIgMj4vZGV2L251bGxgCi0rCi0rICAgICAgaWYgdGVzdCAhIC1kICIkbXlfdG1wZGlyIjsg dGhlbgotKwkjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0byBh dm9pZCBhIHJhY2UKLSsJbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgot KwotKwlzYXZlX21rdGVtcGRpcl91bWFzaz1gdW1hc2tgCi0rCXVtYXNrIDAwNzcKLSsJJG1rZGly ICIkbXlfdG1wZGlyIgotKwl1bWFzayAkc2F2ZV9ta3RlbXBkaXJfdW1hc2sKLSsgICAgICBmaQot KwotKyAgICAgICMgSWYgd2UncmUgbm90IGluIGRyeS1ydW4gbW9kZSwgYm9tYiBvdXQgb24gZmFp bHVyZQotKyAgICAgIHRlc3QgLWQgIiRteV90bXBkaXIiIHx8IHsKLSsgICAgICAgICRlY2hvICJj YW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIgMT4mMgotKwll eGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICB9Ci0rICAgIGZpCi0rCi0rICAgICRlY2hvICJYJG15 X3RtcGRpciIgfCAkWHNlZAotK30KLSsKLSsKLSsjIGZ1bmNfd2luMzJfbGliaWQgYXJnCi0rIyBy ZXR1cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCi0rIwotKyMgTmVlZCBhIGxvdCBv ZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwotKyMgSGFzIHRvIGJl IGEgc2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50Ci0rIyB0aGF0 IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQuCi0rZnVuY193 aW4zMl9saWJpZCAoKQotK3sKLSsgIHdpbjMyX2xpYmlkX3R5cGU9InVua25vd24iCi0rICB3aW4z Ml9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAotKyAgY2FzZSAkd2luMzJfZmlsZXJl cyBpbgotKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJhcnkqKSAjIGRlZmluaXRlbHkgaW1w b3J0Ci0rICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKLSsgICAgOzsK LSsgICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1wb3J0LCBvciBzdGF0aWMKLSsgICAg aWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwgfCBcCi0r ICAgICAgJEVHUkVQIC1lICdmaWxlIGZvcm1hdCBwZS1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2 KT8nID4vZGV2L251bGwgOyB0aGVuCi0rICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBv c2l4IC1BICQxIHwgXAotKwkkU0VEIC1uIC1lICcxLDEwMHsKLSsJCS8gSSAvewotKwkJCXMsLios aW1wb3J0LAotKwkJCXAKLSsJCQlxCi0rCQkJfQotKwkJfSdgCi0rICAgICAgY2FzZSAkd2luMzJf bm1yZXMgaW4KLSsgICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUg aW1wb3J0Ijs7Ci0rICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZl IHN0YXRpYyI7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgICAgOzsKLSsgICpETEwqKQotKyAg ICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgotKyAgICA7OwotKyAgKmV4ZWN1dGFibGUqKSAj IGJ1dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCi0rICAgIGNhc2UgJHdp bjMyX2ZpbGVyZXMgaW4KLSsgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQotKyAgICAgIHdp bjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7Owot KyAgZXNhYwotKyAgJGVjaG8gJHdpbjMyX2xpYmlkX3R5cGUKLSt9Ci0rCi0rCi0rIyBmdW5jX2lu ZmVyX3RhZyBhcmcKLSsjIEluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIHRvIHVzZSBpZiBhbnkg YXJlIGF2YWlsYWJsZSBhbmQKLSsjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFn IiBjb21tYW5kIGxpbmUgb3B0aW9uLgotKyMgT25seSBhdHRlbXB0IHRoaXMgaWYgdGhlIGNvbXBp bGVyIGluIHRoZSBiYXNlIGNvbXBpbGUKLSsjIGNvbW1hbmQgZG9lc24ndCBtYXRjaCB0aGUgZGVm YXVsdCBjb21waWxlci4KLSsjIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3JtICdnY2MgLi4uJwot K2Z1bmNfaW5mZXJfdGFnICgpCi0rewotKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3Mi ICYmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgotKyAgICAgIENDX3F1b3RlZD0KLSsgICAgICBm b3IgYXJnIGluICRDQzsgZG8KLSsJY2FzZSAkYXJnIGluCi0rCSAgKltcW1x+XCNcXlwmXCpcKFwp XHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCSAgYXJnPSJcIiRhcmdcIiIKLSsJICA7 OwotKwllc2FjCi0rCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkYXJnIgotKyAgICAgIGRvbmUKLSsg ICAgICBjYXNlICRAIGluCi0rICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUg YmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKLSsgICAgICAjIGJ1dCBub3QgZnJv bSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1cmUgd2FzIHJ1bi4KLSsg ICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkZWNobyAkQ0NgICIqIHwgImAkZWNobyAkQ0Ng ICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRlY2hvICRDQ19xdW90 ZWRgICIqIHwgImAkZWNobyAkQ0NfcXVvdGVkYCAiKikgOzsKLSsgICAgICAjIEJsYW5rcyBhdCB0 aGUgc3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNhdXNlIHRoaXMgdG8gZmFpbAotKyAgICAg ICMgaWYgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZW0gYXMgd2VsbC4KLSsgICAgICAqKQotKwlmb3Ig eiBpbiAkYXZhaWxhYmxlX3RhZ3M7IGRvCi0rCSAgaWYgZ3JlcCAiXiMgIyMjIEJFR0lOIExJQlRP T0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAg ICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgotKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAt ZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBM SUJUT09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKLSsJICAgIENDX3F1b3Rl ZD0KLSsJICAgIGZvciBhcmcgaW4gJENDOyBkbwotKwkgICAgIyBEb3VibGUtcXVvdGUgYXJncyBj b250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgotKwkgICAgY2FzZSAkYXJnIGlu Ci0rCSAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIi KQotKwkgICAgICBhcmc9IlwiJGFyZ1wiIgotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAg Q0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRhcmciCi0rCSAgZG9uZQotKwkgICAgY2FzZSAiJEAgIiBp bgotKwkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkZWNobyAkQ0NgICIqIHwgImAkZWNo byAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRlY2hvICRD Q19xdW90ZWRgICIqIHwgImAkZWNobyAkQ0NfcXVvdGVkYCAiKikKLSsJICAgICAgIyBUaGUgY29t cGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKLSsJICAgICAgIyB0aGUg b25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KLSsJICAgICAgIyBBc3N1bWUgdGhpcyBp cyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KLSsJICAgICAgdGFnbmFtZT0kegot KwkgICAgICBicmVhawotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCWRvbmUKLSsJ IyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3VyYXRp b24KLSsJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBrbm93IHRoYXQgdGhlICItLXRhZyIg Y29tbWFuZAotKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNlZC4KLSsJaWYgdGVzdCAteiAiJHRh Z25hbWUiOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogdW5hYmxlIHRvIGluZmVyIHRhZ2dl ZCBjb25maWd1cmF0aW9uIgotKwkgICRlY2hvICIkbW9kZW5hbWU6IHNwZWNpZnkgYSB0YWcgd2l0 aCBcYC0tdGFnJyIgMT4mMgotKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyMgICAgICAgIGVsc2UK LSsjICAgICAgICAgICRlY2hvICIkbW9kZW5hbWU6IHVzaW5nICR0YWduYW1lIHRhZ2dlZCBjb25m aWd1cmF0aW9uIgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSt9Ci0rCi0rCi0r IyBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSBkaXIgb2xkbGliCi0rZnVuY19leHRyYWN0X2FuX2Fy Y2hpdmUgKCkKLSt7Ci0rICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0Ci0rICAgIGZfZXhf YW5fYXJfb2xkbGliPSIkMSIKLSsKLSsgICAgJHNob3cgIihjZCAkZl9leF9hbl9hcl9kaXIgJiYg JEFSIHggJGZfZXhfYW5fYXJfb2xkbGliKSIKLSsgICAgJHJ1biBldmFsICIoY2QgXCRmX2V4X2Fu X2FyX2RpciAmJiAkQVIgeCBcJGZfZXhfYW5fYXJfb2xkbGliKSIgfHwgZXhpdCAkPwotKyAgICBp ZiAoJEFSIHQgIiRmX2V4X2FuX2FyX29sZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVs bCAyPiYxKTsgdGhlbgotKyAgICAgOgotKyAgICBlbHNlCi0rICAgICAgJGVjaG8gIiRtb2RlbmFt ZTogRVJST1I6IG9iamVjdCBuYW1lIGNvbmZsaWN0czogJGZfZXhfYW5fYXJfZGlyLyRmX2V4X2Fu X2FyX29sZGxpYiIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICBmaQotK30K LSsKLSsjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgotK2Z1bmNfZXh0 cmFjdF9hcmNoaXZlcyAoKQotK3sKLSsgICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0Ci0rICAgIG15 X29sZGxpYnM9JHsxKyIkQCJ9Ci0rICAgIG15X29sZG9ianM9IiIKLSsgICAgbXlfeGxpYj0iIgot KyAgICBteV94YWJzPSIiCi0rICAgIG15X3hkaXI9IiIKLSsgICAgbXlfc3RhdHVzPSIiCi0rCi0r ICAgICRzaG93ICIke3JtfXIgJG15X2dlbnRvcCIKLSsgICAgJHJ1biAke3JtfXIgIiRteV9nZW50 b3AiCi0rICAgICRzaG93ICIkbWtkaXIgJG15X2dlbnRvcCIKLSsgICAgJHJ1biAkbWtkaXIgIiRt eV9nZW50b3AiCi0rICAgIG15X3N0YXR1cz0kPwotKyAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAt bmUgMCAmJiB0ZXN0ICEgLWQgIiRteV9nZW50b3AiOyB0aGVuCi0rICAgICAgZXhpdCAkbXlfc3Rh dHVzCi0rICAgIGZpCi0rCi0rICAgIGZvciBteV94bGliIGluICRteV9vbGRsaWJzOyBkbwotKyAg ICAgICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4KLSsgICAgICBjYXNlICRteV94bGliIGluCi0rCVtc XC9dKiB8IFtBLVphLXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7Ci0rCSopIG15X3hh YnM9YHB3ZGAiLyRteV94bGliIiA7OwotKyAgICAgIGVzYWMKLSsgICAgICBteV94bGliPWAkZWNo byAiWCRteV94bGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCi0rICAgICAgbXlfeGxpYl91PSRt eV94bGliCi0rICAgICAgd2hpbGUgOjsgZG8KLSsgICAgICAgIGNhc2UgIiAkZXh0cmFjdGVkX2Fy Y2hpdmVzICIgaW4KLSsJKiIgJG15X3hsaWJfdSAiKikKLSsJICBleHRyYWN0ZWRfc2VyaWFsPWBl eHByICRleHRyYWN0ZWRfc2VyaWFsICsgMWAKLSsJICBteV94bGliX3U9bHQkZXh0cmFjdGVkX3Nl cmlhbC0kbXlfeGxpYiA7OwotKwkqKSBicmVhayA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAg ICAgIGV4dHJhY3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZlcyAkbXlfeGxpYl91Igot KyAgICAgIG15X3hkaXI9IiRteV9nZW50b3AvJG15X3hsaWJfdSIKLSsKLSsgICAgICAkc2hvdyAi JHtybX1yICRteV94ZGlyIgotKyAgICAgICRydW4gJHtybX1yICIkbXlfeGRpciIKLSsgICAgICAk c2hvdyAiJG1rZGlyICRteV94ZGlyIgotKyAgICAgICRydW4gJG1rZGlyICIkbXlfeGRpciIKLSsg ICAgICBleGl0X3N0YXR1cz0kPwotKyAgICAgIGlmIHRlc3QgIiRleGl0X3N0YXR1cyIgLW5lIDAg JiYgdGVzdCAhIC1kICIkbXlfeGRpciI7IHRoZW4KLSsJZXhpdCAkZXhpdF9zdGF0dXMKLSsgICAg ICBmaQotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICAqLWRhcndpbiopCi0rCSRzaG93ICJF eHRyYWN0aW5nICRteV94YWJzIgotKwkjIERvIG5vdCBib3RoZXIgZG9pbmcgYW55dGhpbmcgaWYg anVzdCBhIGRyeSBydW4KLSsJaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KLSsJICBkYXJ3aW5fb3Jp Z19kaXI9YHB3ZGAKLSsJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/Ci0rCSAgZGFyd2luX2FyY2hp dmU9JG15X3hhYnMKLSsJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCi0rCSAgZGFyd2luX2Jhc2VfYXJj aGl2ZT1gJGVjaG8gIlgkZGFyd2luX2FyY2hpdmUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsJ ICBkYXJ3aW5fYXJjaGVzPWBsaXBvIC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rldi9udWxs IHwgJEVHUkVQIEFyY2hpdGVjdHVyZXMgMj4vZGV2L251bGxgCi0rCSAgaWYgdGVzdCAtbiAiJGRh cndpbl9hcmNoZXMiOyB0aGVuIAotKwkgICAgZGFyd2luX2FyY2hlcz1gZWNobyAiJGRhcndpbl9h cmNoZXMiIHwgJFNFRCAtZSAncy8uKmFyZTovLydgCi0rCSAgICBkYXJ3aW5fYXJjaD0KLSsJICAg ICRzaG93ICIkZGFyd2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAk ZGFyd2luX2FyY2hlcyIKLSsJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMg OyBkbwotKwkgICAgICBta2RpciAtcCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0k e2Rhcndpbl9hcmNofSIKLSsJICAgICAgbGlwbyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAi dW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9i YXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCi0rCSAgICAgIGNkICJ1bmZhdC0kJC8k e2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICBmdW5jX2V4dHJh Y3RfYW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgICBj ZCAiJGRhcndpbl9jdXJkaXIiCi0rCSAgICAgICRybSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9h cmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgZG9u ZSAjICRkYXJ3aW5fYXJjaGVzCi0rICAgICAgIyMgT2theSBub3cgd2UgaGF2ZSBhIGJ1bmNoIG9m IHRoaW4gb2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKLSsJICAgIGRhcndpbl9maWxl bGlzdD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwq LmxvIC1wcmludHwgeGFyZ3MgYmFzZW5hbWUgfCBzb3J0IC11IHwgJE5MMlNQYAotKwkgICAgZGFy d2luX2ZpbGU9Ci0rCSAgICBkYXJ3aW5fZmlsZXM9Ci0rCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4g JGRhcndpbl9maWxlbGlzdDsgZG8KLSsJICAgICAgZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQk IC1uYW1lICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCAkTkwyU1BgCi0rCSAgICAgIGxpcG8gLWNyZWF0 ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKLSsJICAgIGRvbmUgIyAkZGFy d2luX2ZpbGVsaXN0Ci0rCSAgICAke3JtfXIgdW5mYXQtJCQKLSsJICAgIGNkICIkZGFyd2luX29y aWdfZGlyIgotKwkgIGVsc2UKLSsJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgotKyAJICAgIGZ1 bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgotKwkgIGZpICMgJGRh cndpbl9hcmNoZXMKLSsJZmkgIyAkcnVuCi0rCTs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1bmNf ZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgotKyAgICAgICAgOzsKLSsg ICAgICBlc2FjCi0rICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGly IC1uYW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAK LSsgICAgZG9uZQotKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2Jq cyIKLSt9Ci0rIyBFbmQgb2YgU2hlbGwgZnVuY3Rpb24gZGVmaW5pdGlvbnMKLSsjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rCi0rIyBEYXJ3aW4gc3Vja3MKLStldmFsIHN0 ZF9zaHJleHQ9XCIkc2hyZXh0X2NtZHNcIgotKwotK2Rpc2FibGVfbGlicz1ubwotKwotKyMgUGFy c2Ugb3VyIGNvbW1hbmQgbGluZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuCi0rd2hpbGUgdGVz dCAiJCMiIC1ndCAwCi0rZG8KLSsgIGFyZz0iJDEiCi0rICBzaGlmdAotKwotKyAgY2FzZSAkYXJn IGluCi0rICAtKj0qKSBvcHRhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncy9bLV9hLXpB LVowLTldKj0vLydgIDs7Ci0rICAqKSBvcHRhcmc9IDs7Ci0rICBlc2FjCi0rCi0rICAjIElmIHRo ZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KLSsgIGlmIHRl c3QgLW4gIiRwcmV2IjsgdGhlbgotKyAgICBjYXNlICRwcmV2IGluCi0rICAgIGV4ZWN1dGVfZGxm aWxlcykKLSsgICAgICBleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJGFyZyIKLSsg ICAgICA7OwotKyAgICB0YWcpCi0rICAgICAgdGFnbmFtZT0iJGFyZyIKLSsgICAgICBwcmVzZXJ2 ZV9hcmdzPSIke3ByZXNlcnZlX2FyZ3N9PSRhcmciCi0rCi0rICAgICAgIyBDaGVjayB3aGV0aGVy IHRhZ25hbWUgY29udGFpbnMgb25seSB2YWxpZCBjaGFyYWN0ZXJzCi0rICAgICAgY2FzZSAkdGFn bmFtZSBpbgotKyAgICAgICpbIS1fQS1aYS16MC05LC9dKikKLSsJJGVjaG8gIiRwcm9nbmFtZTog aW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWUiIDE+JjIKLSsJZXhpdCAkRVhJVF9GQUlMVVJFCi0r CTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIGNhc2UgJHRhZ25hbWUgaW4KLSsgICAgICBDQykK LSsJIyBEb24ndCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93LCBpdCdz IHRoZXJlLCBidXQKLSsJIyBub3Qgc3BlY2lhbGx5IG1hcmtlZC4KLSsJOzsKLSsgICAgICAqKQot KwlpZiBncmVwICJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQiIDwg IiRwcm9ncGF0aCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICB0YWdsaXN0PSIkdGFnbGlzdCAkdGFn bmFtZSIKLSsJICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgotKwkgIGV2YWwgImAke1NF RH0gLW4gLWUgJy9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAnJHRhZ25hbWUnJC8s L14jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAnJHRhZ25hbWUnJC9wJyA8ICRwcm9ncGF0 aGAiCi0rCWVsc2UKLSsJICAkZWNobyAiJHByb2duYW1lOiBpZ25vcmluZyB1bmtub3duIHRhZyAk dGFnbmFtZSIgMT4mMgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICAq KQotKyAgICAgIGV2YWwgIiRwcmV2PVwkYXJnIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsg ICAgcHJldj0KLSsgICAgcHJldm9wdD0KLSsgICAgY29udGludWUKLSsgIGZpCi0rCi0rICAjIEhh dmUgd2Ugc2VlbiBhIG5vbi1vcHRpb25hbCBhcmd1bWVudCB5ZXQ/Ci0rICBjYXNlICRhcmcgaW4K LSsgIC0taGVscCkKLSsgICAgc2hvd19oZWxwPXllcwotKyAgICA7OwotKwotKyAgLS12ZXJzaW9u KQotKyAgICBlY2hvICJcCi0rJFBST0dSQU0gKEdOVSAkUEFDS0FHRSkgJFZFUlNJT04kVElNRVNU QU1QCi0rCi0rQ29weXJpZ2h0IChDKSAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLStUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNv bmRpdGlvbnMuICBUaGVyZSBpcyBOTwotK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKLSsgICAgZXhpdCAk PwotKyAgICA7OwotKwotKyAgLS1jb25maWcpCi0rICAgICR7U0VEfSAtZSAnMSwvXiMgIyMjIEJF R0lOIExJQlRPT0wgQ09ORklHL2QnIC1lICcvXiMgIyMjIEVORCBMSUJUT09MIENPTkZJRy8sJGQn ICRwcm9ncGF0aAotKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0 YWdzLgotKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KLSsgICAgICAke1NFRH0gLW4g LWUgIi9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQvLC9eIyAjIyMg RU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUkL3AiIDwgIiRwcm9ncGF0aCIKLSsgICAg ZG9uZQotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtLWRlYnVnKQotKyAgICAkZWNobyAi JHByb2duYW1lOiBlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgotKyAgICBzZXQgLXgKLSsgICAg cHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJGFyZyIKLSsgICAgOzsKLSsKLSsgIC0tZHJ5 LXJ1biB8IC1uKQotKyAgICBydW49OgotKyAgICA7OwotKwotKyAgLS1mZWF0dXJlcykKLSsgICAg JGVjaG8gImhvc3Q6ICRob3N0IgotKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9 IHllczsgdGhlbgotKyAgICAgICRlY2hvICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKLSsgICAg ZWxzZQotKyAgICAgICRlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCi0rICAgIGZpCi0r ICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICAkZWNobyAi ZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMiCi0rICAgIGVsc2UKLSsgICAgICAkZWNobyAiZGlzYWJs ZSBzdGF0aWMgbGlicmFyaWVzIgotKyAgICBmaQotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0r ICAtLWZpbmlzaCkgbW9kZT0iZmluaXNoIiA7OwotKwotKyAgLS1tb2RlKSBwcmV2b3B0PSItLW1v ZGUiIHByZXY9bW9kZSA7OwotKyAgLS1tb2RlPSopIG1vZGU9IiRvcHRhcmciIDs7Ci0rCi0rICAt LXByZXNlcnZlLWR1cC1kZXBzKSBkdXBsaWNhdGVfZGVwcz0ieWVzIiA7OwotKwotKyAgLS1xdWll dCB8IC0tc2lsZW50KQotKyAgICBzaG93PToKLSsgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZl X2FyZ3MgJGFyZyIKLSsgICAgOzsKLSsKLSsgIC0tdGFnKQotKyAgICBwcmV2b3B0PSItLXRhZyIK LSsgICAgcHJldj10YWcKLSsgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgLS10YWci Ci0rICAgIDs7Ci0rICAtLXRhZz0qKQotKyAgICBzZXQgdGFnICIkb3B0YXJnIiAkezErIiRAIn0K LSsgICAgc2hpZnQKLSsgICAgcHJldj10YWcKLSsgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZl X2FyZ3MgLS10YWciCi0rICAgIDs7Ci0rCi0rICAtZGxvcGVuKQotKyAgICBwcmV2b3B0PSItZGxv cGVuIgotKyAgICBwcmV2PWV4ZWN1dGVfZGxmaWxlcwotKyAgICA7OwotKwotKyAgLSopCi0rICAg ICRlY2hvICIkbW9kZW5hbWU6IHVucmVjb2duaXplZCBvcHRpb24gXGAkYXJnJyIgMT4mMgotKyAg ICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgIDs7Ci0r Ci0rICAqKQotKyAgICBub25vcHQ9IiRhcmciCi0rICAgIGJyZWFrCi0rICAgIDs7Ci0rICBlc2Fj Ci0rZG9uZQotKwotK2lmIHRlc3QgLW4gIiRwcmV2b3B0IjsgdGhlbgotKyAgJGVjaG8gIiRtb2Rl bmFtZTogb3B0aW9uIFxgJHByZXZvcHQnIHJlcXVpcmVzIGFuIGFyZ3VtZW50IiAxPiYyCi0rICAk ZWNobyAiJGhlbHAiIDE+JjIKLSsgIGV4aXQgJEVYSVRfRkFJTFVSRQotK2ZpCi0rCi0rY2FzZSAk ZGlzYWJsZV9saWJzIGluCi0rbm8pIAotKyAgOzsKLStzaGFyZWQpCi0rICBidWlsZF9saWJ0b29s X2xpYnM9bm8KLSsgIGJ1aWxkX29sZF9saWJzPXllcwotKyAgOzsKLStzdGF0aWMpCi0rICBidWls ZF9vbGRfbGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9saWJzIGluIHllcykgZWNobyBubzs7ICop IGVjaG8geWVzOzsgZXNhY2AKLSsgIDs7Ci0rZXNhYwotKwotKyMgSWYgdGhpcyB2YXJpYWJsZSBp cyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAotKyMgd2lsbCBi ZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBi ZWluZwotKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KLStleGVjX2NtZD0KLSsKLStpZiB0ZXN0IC16 ICIkc2hvd19oZWxwIjsgdGhlbgotKwotKyAgIyBJbmZlciB0aGUgb3BlcmF0aW9uIG1vZGUuCi0r ICBpZiB0ZXN0IC16ICIkbW9kZSI7IHRoZW4KLSsgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBpbmZl cnJpbmcgdGhlIG1vZGUgb2Ygb3BlcmF0aW9uIGlzIGRlcHJlY2F0ZWQuIiAxPiYyCi0rICAgICRl Y2hvICIqKiogRnV0dXJlIHZlcnNpb25zIG9mIExpYnRvb2wgd2lsbCByZXF1aXJlIC0tbW9kZT1N T0RFIGJlIHNwZWNpZmllZC4iIDE+JjIKLSsgICAgY2FzZSAkbm9ub3B0IGluCi0rICAgICpjYyB8 IGNjKiB8ICorKyB8IGdjYyogfCAqLWdjYyogfCBnKysqIHwgeGxjKikKLSsgICAgICBtb2RlPWxp bmsKLSsgICAgICBmb3IgYXJnCi0rICAgICAgZG8KLSsJY2FzZSAkYXJnIGluCi0rCS1jKQotKwkg ICBtb2RlPWNvbXBpbGUKLSsJICAgYnJlYWsKLSsJICAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUK LSsgICAgICA7OwotKyAgICAqZGIgfCAqZGJ4IHwgKnN0cmFjZSB8ICp0cnVzcykKLSsgICAgICBt b2RlPWV4ZWN1dGUKLSsgICAgICA7OwotKyAgICAqaW5zdGFsbCp8Y3B8bXYpCi0rICAgICAgbW9k ZT1pbnN0YWxsCi0rICAgICAgOzsKLSsgICAgKnJtKQotKyAgICAgIG1vZGU9dW5pbnN0YWxsCi0r ICAgICAgOzsKLSsgICAgKikKLSsgICAgICAjIElmIHdlIGhhdmUgbm8gbW9kZSwgYnV0IGRsZmls ZXMgd2VyZSBzcGVjaWZpZWQsIHRoZW4gZG8gZXhlY3V0ZSBtb2RlLgotKyAgICAgIHRlc3QgLW4g IiRleGVjdXRlX2RsZmlsZXMiICYmIG1vZGU9ZXhlY3V0ZQotKwotKyAgICAgICMgSnVzdCB1c2Ug dGhlIGRlZmF1bHQgb3BlcmF0aW9uIG1vZGUuCi0rICAgICAgaWYgdGVzdCAteiAiJG1vZGUiOyB0 aGVuCi0rCWlmIHRlc3QgLW4gIiRub25vcHQiOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTog d2FybmluZzogY2Fubm90IGluZmVyIG9wZXJhdGlvbiBtb2RlIGZyb20gXGAkbm9ub3B0JyIgMT4m MgotKwllbHNlCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGluZmVyIG9w ZXJhdGlvbiBtb2RlIHdpdGhvdXQgTU9ERS1BUkdTIiAxPiYyCi0rCWZpCi0rICAgICAgZmkKLSsg ICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKwotKyAgIyBPbmx5IGV4ZWN1dGUgbW9kZSBpcyBh bGxvd2VkIHRvIGhhdmUgLWRsb3BlbiBmbGFncy4KLSsgIGlmIHRlc3QgLW4gIiRleGVjdXRlX2Rs ZmlsZXMiICYmIHRlc3QgIiRtb2RlIiAhPSBleGVjdXRlOyB0aGVuCi0rICAgICRlY2hvICIkbW9k ZW5hbWU6IHVucmVjb2duaXplZCBvcHRpb24gXGAtZGxvcGVuJyIgMT4mMgotKyAgICAkZWNobyAi JGhlbHAiIDE+JjIKLSsgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICBmaQotKwotKyAgIyBDaGFu Z2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgotKyAgZ2VuZXJpY19o ZWxwPSIkaGVscCIKLSsgIGhlbHA9IlRyeSBcYCRtb2RlbmFtZSAtLWhlbHAgLS1tb2RlPSRtb2Rl JyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCi0rCi0rICAjIFRoZXNlIG1vZGVzIGFyZSBpbiBvcmRl ciBvZiBleGVjdXRpb24gZnJlcXVlbmN5IHNvIHRoYXQgdGhleSBydW4gcXVpY2tseS4KLSsgIGNh c2UgJG1vZGUgaW4KLSsgICMgbGlidG9vbCBjb21waWxlIG1vZGUKLSsgIGNvbXBpbGUpCi0rICAg IG1vZGVuYW1lPSIkbW9kZW5hbWU6IGNvbXBpbGUiCi0rICAgICMgR2V0IHRoZSBjb21waWxhdGlv biBjb21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCi0rICAgIGJhc2VfY29tcGlsZT0KLSsgICAg c3JjZmlsZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJz cmNmaWxlIgotKyAgICBzdXBwcmVzc19vcHQ9eWVzCi0rICAgIHN1cHByZXNzX291dHB1dD0KLSsg ICAgYXJnX21vZGU9bm9ybWFsCi0rICAgIGxpYm9iaj0KLSsgICAgbGF0ZXI9Ci0rCi0rICAgIGZv ciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRhcmdfbW9kZSBpbgotKyAgICAgIGFyZyAgKQot KwkjIGRvIG5vdCAiY29udGludWUiLiAgSW5zdGVhZCwgYWRkIHRoaXMgdG8gYmFzZV9jb21waWxl Ci0rCWxhc3Rhcmc9IiRhcmciCi0rCWFyZ19tb2RlPW5vcm1hbAotKwk7OwotKwotKyAgICAgIHRh cmdldCApCi0rCWxpYm9iaj0iJGFyZyIKLSsJYXJnX21vZGU9bm9ybWFsCi0rCWNvbnRpbnVlCi0r CTs7Ci0rCi0rICAgICAgbm9ybWFsICkKLSsJIyBBY2NlcHQgYW55IGNvbW1hbmQtbGluZSBvcHRp b25zLgotKwljYXNlICRhcmcgaW4KLSsJLW8pCi0rCSAgaWYgdGVzdCAtbiAiJGxpYm9iaiIgOyB0 aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgY2Fubm90IHNwZWNpZnkgXGAtbycgbW9y ZSB0aGFuIG9uY2UiIDE+JjIKLSsJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAg YXJnX21vZGU9dGFyZ2V0Ci0rCSAgY29udGludWUKLSsJICA7OwotKwotKwktc3RhdGljIHwgLXBy ZWZlci1waWMgfCAtcHJlZmVyLW5vbi1waWMpCi0rCSAgbGF0ZXI9IiRsYXRlciAkYXJnIgotKwkg IGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLW5vLXN1cHByZXNzKQotKwkgIHN1cHByZXNzX29wdD1u bwotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLVhjb21waWxlcikKLSsJICBhcmdfbW9kZT1h cmcgICMgIHRoZSBuZXh0IG9uZSBnb2VzIGludG8gdGhlICJiYXNlX2NvbXBpbGUiIGFyZyBsaXN0 Ci0rCSAgY29udGludWUgICAgICAjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIg YmUgcmV0YWluZWQgb3IKLSsJICA7OyAgICAgICAgICAgICMgIHJlcGxhY2VkIGxhdGVyLiAgSSB3 b3VsZCBndWVzcyB0aGF0IHdvdWxkIGJlIGEgYnVnLgotKwotKwktV2MsKikKLSsJICBhcmdzPWAk ZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgInMvXi1XYywvLyJgCi0rCSAgbGFzdGFyZz0KLSsJICBz YXZlX2lmcz0iJElGUyI7IElGUz0nLCcKLSsgCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KLSsJICAg IElGUz0iJHNhdmVfaWZzIgotKwotKwkgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5n IG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgotKwkgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMg Y2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKLSsJICAgICMgaW4gc2NhbiBz ZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCi0rCSAgICBjYXNlICRhcmcgaW4KLSsJ ICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0r CSAgICAgIGFyZz0iXCIkYXJnXCIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBsYXN0 YXJnPSIkbGFzdGFyZyAkYXJnIgotKwkgIGRvbmUKLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBs YXN0YXJnPWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICJzL14gLy8iYAotKwotKwkgICMg QWRkIHRoZSBhcmd1bWVudHMgdG8gYmFzZV9jb21waWxlLgotKwkgIGJhc2VfY29tcGlsZT0iJGJh c2VfY29tcGlsZSAkbGFzdGFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCSogKQotKwkg ICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KLSsJICAj IFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KLSsJ ICAjCi0rCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCi0rCSAgc3JjZmlsZT0iJGFyZyIKLSsJICA7Owot Kwllc2FjICAjICBjYXNlICRhcmcKLSsJOzsKLSsgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19t b2RlCi0rCi0rICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVu dC4KLSsgICAgICBsYXN0YXJnPWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1 b3RlX3N1YnN0ImAKLSsKLSsgICAgICBjYXNlICRsYXN0YXJnIGluCi0rICAgICAgIyBEb3VibGUt cXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgotKyAgICAg ICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVj dGx5Ci0rICAgICAgIyBpbiBzY2FuIHNldHMsIGFuZCBzb21lIFN1bk9TIGtzaCBtaXN0cmVhdCBi YWNrc2xhc2gtZXNjYXBpbmcKLSsgICAgICAjIGluIHNjYW4gc2V0cyAod29ya2VkIGFyb3VuZCB3 aXRoIHZhcmlhYmxlIGV4cGFuc2lvbiksCi0rICAgICAgIyBhbmQgZnVydGhlcm1vcmUgY2Fubm90 IGhhbmRsZSAnfCcgJyYnICcoJyAnKScgaW4gc2NhbiBzZXRzIAotKyAgICAgICMgYXQgYWxsLCBz byB3ZSBzcGVjaWZ5IHRoZW0gc2VwYXJhdGVseS4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClc e1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsJbGFzdGFyZz0iXCIkbGFzdGFyZ1wiIgot Kwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUg JGxhc3RhcmciCi0rICAgIGRvbmUgIyBmb3IgYXJnCi0rCi0rICAgIGNhc2UgJGFyZ19tb2RlIGlu Ci0rICAgIGFyZykKLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFu IGFyZ3VtZW50IGZvciAtWGNvbXBpbGUiCi0rICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAg ICAgOzsKLSsgICAgdGFyZ2V0KQotKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNw ZWNpZnkgYSB0YXJnZXQgd2l0aCBcYC1vJyIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVS RQotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJh cnkgb2JqZWN0LgotKyAgICAgIFsgLXogIiRsaWJvYmoiIF0gJiYgbGlib2JqPWAkZWNobyAiWCRz cmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwot KyAgICAjIFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgotKyAgICAj IElmIHRoZSB1c2VyIHNwZWNpZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJlcGxhY2VkIHdpdGggZmls ZS5sbwotKyAgICB4Zm9ybT0nW2NDRlNpZm1zb10nCi0rICAgIGNhc2UgJGxpYm9iaiBpbgotKyAg ICAqLmFkYSkgeGZvcm09YWRhIDs7Ci0rICAgICouYWRiKSB4Zm9ybT1hZGIgOzsKLSsgICAgKi5h ZHMpIHhmb3JtPWFkcyA7OwotKyAgICAqLmFzbSkgeGZvcm09YXNtIDs7Ci0rICAgICouYysrKSB4 Zm9ybT1jKysgOzsKLSsgICAgKi5jYykgeGZvcm09Y2MgOzsKLSsgICAgKi5paSkgeGZvcm09aWkg OzsKLSsgICAgKi5jbGFzcykgeGZvcm09Y2xhc3MgOzsKLSsgICAgKi5jcHApIHhmb3JtPWNwcCA7 OwotKyAgICAqLmN4eCkgeGZvcm09Y3h4IDs7Ci0rICAgICouW2ZGXVswOV0/KSB4Zm9ybT1bZkZd WzA5XS4gOzsKLSsgICAgKi5mb3IpIHhmb3JtPWZvciA7OwotKyAgICAqLmphdmEpIHhmb3JtPWph dmEgOzsKLSsgICAgKi5vYmopIHhmb3JtPW9iaiA7OwotKyAgICAqLnN4KSB4Zm9ybT1zeCA7Owot KyAgICBlc2FjCi0rCi0rICAgIGxpYm9iaj1gJGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICJz L1wuJHhmb3JtJC8ubG8vImAKLSsKLSsgICAgY2FzZSAkbGlib2JqIGluCi0rICAgICoubG8pIG9i aj1gJGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICIkbG8ybyJgIDs7Ci0rICAgICopCi0rICAg ICAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2Jq ZWN0IGZyb20gXGAkbGlib2JqJyIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQot KwotKyAgICBmb3IgYXJnIGluICRsYXRlcjsgZG8KLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAg ICAtc3RhdGljKQotKwlidWlsZF9vbGRfbGlicz15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtcHJlZmVyLXBpYykKLSsJcGljX21vZGU9eWVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0r ICAgICAgLXByZWZlci1ub24tcGljKQotKwlwaWNfbW9kZT1ubwotKwljb250aW51ZQotKwk7Owot KyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwotKyAgICBxbGlib2JqPWAkZWNobyAiWCRsaWJvYmoi IHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICBjYXNlICRxbGlib2JqIGluCi0r ICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0r CXFsaWJvYmo9IlwiJHFsaWJvYmpcIiIgOzsKLSsgICAgZXNhYwotKyAgICB0ZXN0ICJYJGxpYm9i aiIgIT0gIlgkcWxpYm9iaiIgXAotKwkmJiAkZWNobyAiWCRsaWJvYmoiIHwgZ3JlcCAnW11+I14q e307PD4/IiciJyInIAkmKCl8YCRbXScgXAotKwkmJiAkZWNobyAiJG1vZGVuYW1lOiBsaWJvYmog bmFtZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMu IgotKyAgICBvYmpuYW1lPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsg ICAgeGRpcj1gJGVjaG8gIlgkb2JqIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rICAgIGlm IHRlc3QgIlgkeGRpciIgPSAiWCRvYmoiOyB0aGVuCi0rICAgICAgeGRpcj0KLSsgICAgZWxzZQot KyAgICAgIHhkaXI9JHhkaXIvCi0rICAgIGZpCi0rICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9i am5hbWUKLSsKLSsgICAgaWYgdGVzdCAteiAiJGJhc2VfY29tcGlsZSI7IHRoZW4KLSsgICAgICAk ZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIg MT4mMgotKyAgICAgICRlY2hvICIkaGVscCIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVS RQotKyAgICBmaQotKwotKyAgICAjIERlbGV0ZSBhbnkgbGVmdG92ZXIgbGlicmFyeSBvYmplY3Rz LgotKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgcmVt b3ZlbGlzdD0iJG9iaiAkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCi0rICAgIGVsc2UKLSsgICAg ICByZW1vdmVsaXN0PSIkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCi0rICAgIGZpCi0rCi0rICAg ICRydW4gJHJtICRyZW1vdmVsaXN0Ci0rICAgIHRyYXAgIiRydW4gJHJtICRyZW1vdmVsaXN0OyBl eGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQotKwotKyAgICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5v ICJyZWFsIiBQSUMgZmxhZyBzbyB3ZSBtdXN0IGJ1aWxkIGJvdGggb2JqZWN0IHR5cGVzCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgb3MyKikK LSsgICAgICBwaWNfbW9kZT1kZWZhdWx0Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBpZiB0 ZXN0ICIkcGljX21vZGUiID0gbm8gJiYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBw YXNzX2FsbDsgdGhlbgotKyAgICAgICMgbm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMg aXMgbm90IHN1cHBvcnRlZAotKyAgICAgIHBpY19tb2RlPWRlZmF1bHQKLSsgICAgZmkKLSsKLSsg ICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBp bGVyIGRvZXMKLSsgICAgIyBub3Qgc3VwcG9ydCAtbyB3aXRoIC1jCi0rICAgIGlmIHRlc3QgIiRj b21waWxlcl9jX28iID0gbm87IHRoZW4KLSsgICAgICBvdXRwdXRfb2JqPWAkZWNobyAiWCRzcmNm aWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQot KyAgICAgIGxvY2tmaWxlPSIkb3V0cHV0X29iai5sb2NrIgotKyAgICAgIHJlbW92ZWxpc3Q9IiRy ZW1vdmVsaXN0ICRvdXRwdXRfb2JqICRsb2NrZmlsZSIKLSsgICAgICB0cmFwICIkcnVuICRybSAk cmVtb3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsgICAgZWxzZQotKyAgICAg IG91dHB1dF9vYmo9Ci0rICAgICAgbmVlZF9sb2Nrcz1ubwotKyAgICAgIGxvY2tmaWxlPQotKyAg ICBmaQotKwotKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRl ZAotKyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2 b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxlCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHll czsgdGhlbgotKyAgICAgIHVudGlsICRydW4gbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4v ZGV2L251bGw7IGRvCi0rCSRzaG93ICJXYWl0aW5nIGZvciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3Zl ZCIKLSsJc2xlZXAgMgotKyAgICAgIGRvbmUKLSsgICAgZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIg PSB3YXJuOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgotKwkkZWNo byAiXAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29udGFpbnM6Ci0rYGNhdCAk bG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHBy b2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwg YW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBp bGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0r cmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5 b3UgaGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBw bGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkcnVuICRybSAkcmVt b3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQotKyAgICAgICRlY2hvICIk c3JjZmlsZSIgPiAiJGxvY2tmaWxlIgotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0IC1uICIkZml4 X3NyY2ZpbGVfcGF0aCI7IHRoZW4KLSsgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVf cGF0aFwiCi0rICAgIGZpCi0rICAgIHFzcmNmaWxlPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2Vk IC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgY2FzZSAkcXNyY2ZpbGUgaW4KLSsgICAgICAq W1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsgICAgICBx c3JjZmlsZT0iXCIkcXNyY2ZpbGVcIiIgOzsKLSsgICAgZXNhYwotKwotKyAgICAkcnVuICRybSAi JGxpYm9iaiIgIiR7bGlib2JqfVQiCi0rCi0rICAgICMgQ3JlYXRlIGEgbGlidG9vbCBvYmplY3Qg ZmlsZSAoYW5hbG9nb3VzIHRvIGEgIi5sYSIgZmlsZSksCi0rICAgICMgYnV0IGRvbid0IGNyZWF0 ZSBpdCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBydW4uCi0rICAgIHRlc3QgLXogIiRydW4iICYmIGNh dCA+ICR7bGlib2JqfVQgPDxFT0YKLSsjICRsaWJvYmogLSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUK LSsjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RB TVAKLSsjCi0rIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCi0rIyBJdCBpcyBuZWNl c3NhcnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCi0rCi0rIyBOYW1lIG9mIHRoZSBQSUMgb2Jq ZWN0LgotK0VPRgotKwotKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBi dWlsZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KLSsgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNl X2NvbXBpbGUgZ2V0cyBlbXB0aWVkLgotKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2Vf Y29tcGlsZQotKwotKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KLSsJY29t bWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgotKyAgICAgIGVsc2UKLSsJ IyBEb24ndCBidWlsZCBQSUMgY29kZQotKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmls ZSIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgISAtZCAiJHt4ZGlyfSRvYmpkaXIiOyB0 aGVuCi0rCSRzaG93ICIkbWtkaXIgJHt4ZGlyfSRvYmpkaXIiCi0rCSRydW4gJG1rZGlyICR7eGRp cn0kb2JqZGlyCi0rCWV4aXRfc3RhdHVzPSQ/Ci0rCWlmIHRlc3QgIiRleGl0X3N0YXR1cyIgLW5l IDAgJiYgdGVzdCAhIC1kICIke3hkaXJ9JG9iamRpciI7IHRoZW4KLSsJICBleGl0ICRleGl0X3N0 YXR1cwotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAteiAiJG91dHB1dF9vYmoi OyB0aGVuCi0rCSMgUGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgotKwljb21tYW5kPSIkY29t bWFuZCAtbyAkbG9iaiIKLSsgICAgICBmaQotKwotKyAgICAgICRydW4gJHJtICIkbG9iaiIgIiRv dXRwdXRfb2JqIgotKwotKyAgICAgICRzaG93ICIkY29tbWFuZCIKLSsgICAgICBpZiAkcnVuIGV2 YWwgJGx0X2VudiAiJGNvbW1hbmQiOyB0aGVuIDoKLSsgICAgICBlbHNlCi0rCXRlc3QgLW4gIiRv dXRwdXRfb2JqIiAmJiAkcnVuICRybSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUK LSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYKLSsJ IHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVu Ci0rCSRlY2hvICJcCi0rKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6Ci0rYGNhdCAkbG9j a2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rYnV0IGl0IHNob3VsZCBjb250YWluOgotKyRzcmNmaWxl Ci0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVz ZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90 IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQg XGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29tcGlsYXRp b24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgotK2F2b2lk IHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0 dGVyCi0rY29tcGlsZXIuIgotKwotKwkkcnVuICRybSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElU X0ZBSUxVUkUKLSsgICAgICBmaQotKwotKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYg bmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5leHQgb25lCi0rICAgICAgaWYgdGVz dCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkbG9iaiI7IHRo ZW4KLSsJJHNob3cgIiRtdiAkb3V0cHV0X29iaiAkbG9iaiIKLSsJaWYgJHJ1biAkbXYgJG91dHB1 dF9vYmogJGxvYmo7IHRoZW4gOgotKwllbHNlCi0rCSAgZXJyb3I9JD8KLSsJICAkcnVuICRybSAk cmVtb3ZlbGlzdAotKwkgIGV4aXQgJGVycm9yCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICAj IEFwcGVuZCB0aGUgbmFtZSBvZiB0aGUgUElDIG9iamVjdCB0byB0aGUgbGlidG9vbCBvYmplY3Qg ZmlsZS4KLSsgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgot K3BpY19vYmplY3Q9JyRvYmpkaXIvJG9iam5hbWUnCi0rCi0rRU9GCi0rCi0rICAgICAgIyBBbGxv dyBlcnJvciBtZXNzYWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgotKyAgICAg IGlmIHRlc3QgIiRzdXBwcmVzc19vcHQiID0geWVzOyB0aGVuCi0rICAgICAgICBzdXBwcmVzc19v dXRwdXQ9JyA+L2Rldi9udWxsIDI+JjEnCi0rICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgICMg Tm8gUElDIG9iamVjdCBzbyBpbmRpY2F0ZSBpdCBkb2Vzbid0IGV4aXN0IGluIHRoZSBsaWJ0b29s Ci0rICAgICAgIyBvYmplY3QgZmlsZS4KLSsgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4g JHtsaWJvYmp9VCA8PEVPRgotK3BpY19vYmplY3Q9bm9uZQotKwotK0VPRgotKyAgICBmaQotKwot KyAgICAjIE9ubHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxk IG9sZCBsaWJyYXJpZXMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRo ZW4KLSsgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IHllczsgdGhlbgotKwkjIERvbid0IGJ1 aWxkIFBJQyBjb2RlCi0rCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlIgotKyAgICAg IGVsc2UKLSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgotKyAg ICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KLSsJY29t bWFuZD0iJGNvbW1hbmQgLW8gJG9iaiIKLSsgICAgICBmaQotKwotKyAgICAgICMgU3VwcHJlc3Mg Y29tcGlsZXIgb3V0cHV0IGlmIHdlIGFscmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgotKyAg ICAgIGNvbW1hbmQ9IiRjb21tYW5kJHN1cHByZXNzX291dHB1dCIKLSsgICAgICAkcnVuICRybSAi JG9iaiIgIiRvdXRwdXRfb2JqIgotKyAgICAgICRzaG93ICIkY29tbWFuZCIKLSsgICAgICBpZiAk cnVuIGV2YWwgJGx0X2VudiAiJGNvbW1hbmQiOyB0aGVuIDoKLSsgICAgICBlbHNlCi0rCSRydW4g JHJtICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rCi0rICAg ICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgotKwkgdGVzdCAiWGBjYXQgJGxvY2tm aWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KLSsJJGVjaG8gIlwKLSsqKiog RVJST1IsICRsb2NrZmlsZSBjb250YWluczoKLStgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAK LSsKLStidXQgaXQgc2hvdWxkIGNvbnRhaW46Ci0rJHNyY2ZpbGUKLSsKLStUaGlzIGluZGljYXRl cyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCi0rdGVtcG9y YXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVj YXVzZQotK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9n ZXRoZXIuICBJZiB5b3UKLStyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQs IGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCi0rYXZvaWQgcGFyYWxsZWwgYnVpbGRzICht YWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKLStjb21waWxlci4iCi0r Ci0rCSRydW4gJHJtICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZp Ci0rCi0rICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKLSsgICAgICBpZiB0 ZXN0IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRvYmoiOyB0 aGVuCi0rCSRzaG93ICIkbXYgJG91dHB1dF9vYmogJG9iaiIKLSsJaWYgJHJ1biAkbXYgJG91dHB1 dF9vYmogJG9iajsgdGhlbiA6Ci0rCWVsc2UKLSsJICBlcnJvcj0kPwotKwkgICRydW4gJHJtICRy ZW1vdmVsaXN0Ci0rCSAgZXhpdCAkZXJyb3IKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgICMg QXBwZW5kIHRoZSBuYW1lIG9mIHRoZSBub24tUElDIG9iamVjdCB0aGUgbGlidG9vbCBvYmplY3Qg ZmlsZS4KLSsgICAgICAjIE9ubHkgYXBwZW5kIGlmIHRoZSBsaWJ0b29sIG9iamVjdCBmaWxlIGV4 aXN0cy4KLSsgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgot KyMgTmFtZSBvZiB0aGUgbm9uLVBJQyBvYmplY3QuCi0rbm9uX3BpY19vYmplY3Q9JyRvYmpuYW1l JwotKwotK0VPRgotKyAgICBlbHNlCi0rICAgICAgIyBBcHBlbmQgdGhlIG5hbWUgb2YgdGhlIG5v bi1QSUMgb2JqZWN0IHRoZSBsaWJ0b29sIG9iamVjdCBmaWxlLgotKyAgICAgICMgT25seSBhcHBl bmQgaWYgdGhlIGxpYnRvb2wgb2JqZWN0IGZpbGUgZXhpc3RzLgotKyAgICAgIHRlc3QgLXogIiRy dW4iICYmIGNhdCA+PiAke2xpYm9ian1UIDw8RU9GCi0rIyBOYW1lIG9mIHRoZSBub24tUElDIG9i amVjdC4KLStub25fcGljX29iamVjdD1ub25lCi0rCi0rRU9GCi0rICAgIGZpCi0rCi0rICAgICRy dW4gJG12ICIke2xpYm9ian1UIiAiJHtsaWJvYmp9IgotKwotKyAgICAjIFVubG9jayB0aGUgY3Jp dGljYWwgc2VjdGlvbiBpZiBpdCB3YXMgbG9ja2VkCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tz IiAhPSBubzsgdGhlbgotKyAgICAgICRydW4gJHJtICIkbG9ja2ZpbGUiCi0rICAgIGZpCi0rCi0r ICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICA7OwotKwotKyAgIyBsaWJ0b29sIGxpbmsgbW9k ZQotKyAgbGluayB8IHJlbGluaykKLSsgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogbGluayIKLSsg ICAgY2FzZSAkaG9zdCBpbgotKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHcz MiogfCAqLSotb3MyKikKLSsgICAgICAjIEl0IGlzIGltcG9zc2libGUgdG8gbGluayBhIGRsbCB3 aXRob3V0IHRoaXMgc2V0dGluZywgYW5kCi0rICAgICAgIyB3ZSBzaG91bGRuJ3QgZm9yY2UgdGhl IG1ha2VmaWxlIG1haW50YWluZXIgdG8gZmlndXJlIG91dAotKyAgICAgICMgd2hpY2ggc3lzdGVt IHdlIGFyZSBjb21waWxpbmcgZm9yIGluIG9yZGVyIHRvIHBhc3MgYW4gZXh0cmEKLSsgICAgICAj IGZsYWcgZm9yIGV2ZXJ5IGxpYnRvb2wgaW52b2NhdGlvbi4KLSsgICAgICAjIGFsbG93X3VuZGVm aW5lZD1ubwotKwotKyAgICAgICMgRklYTUU6IFVuZm9ydHVuYXRlbHksIHRoZXJlIGFyZSBwcm9i bGVtcyB3aXRoIHRoZSBhYm92ZSB3aGVuIHRyeWluZwotKyAgICAgICMgdG8gbWFrZSBhIGRsbCB3 aGljaCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMsIGluIHdoaWNoIGNhc2Ugbm90Ci0rICAgICAgIyBl dmVuIGEgc3RhdGljIGxpYnJhcnkgaXMgYnVpbHQuICBGb3Igbm93LCB3ZSBuZWVkIHRvIHNwZWNp ZnkKLSsgICAgICAjIC1uby11bmRlZmluZWQgb24gdGhlIGxpYnRvb2wgbGluayBsaW5lIHdoZW4g d2UgY2FuIGJlIGNlcnRhaW4KLSsgICAgICAjIHRoYXQgYWxsIHN5bWJvbHMgYXJlIHNhdGlzZmll ZCwgb3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRpYyBsaWJyYXJ5LgotKyAgICAgIGFsbG93X3VuZGVm aW5lZD15ZXMKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMK LSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGxpYnRvb2xfYXJncz0iJG5vbm9wdCIKLSsgICAg YmFzZV9jb21waWxlPSIkbm9ub3B0ICRAIgotKyAgICBjb21waWxlX2NvbW1hbmQ9IiRub25vcHQi Ci0rICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRub25vcHQiCi0rCi0rICAgIGNvbXBpbGVfcnBhdGg9 Ci0rICAgIGZpbmFsaXplX3JwYXRoPQotKyAgICBjb21waWxlX3NobGlicGF0aD0KLSsgICAgZmlu YWxpemVfc2hsaWJwYXRoPQotKyAgICBjb252ZW5pZW5jZT0KLSsgICAgb2xkX2NvbnZlbmllbmNl PQotKyAgICBkZXBsaWJzPQotKyAgICBvbGRfZGVwbGlicz0KLSsgICAgY29tcGlsZXJfZmxhZ3M9 Ci0rICAgIGxpbmtlcl9mbGFncz0KLSsgICAgZGxsc2VhcmNocGF0aD0KLSsgICAgbGliX3NlYXJj aF9wYXRoPWBwd2RgCi0rICAgIGluc3RfcHJlZml4X2Rpcj0KLSsKLSsgICAgYXZvaWRfdmVyc2lv bj1ubwotKyAgICBkbGZpbGVzPQotKyAgICBkbHByZWZpbGVzPQotKyAgICBkbHNlbGY9bm8KLSsg ICAgZXhwb3J0X2R5bmFtaWM9bm8KLSsgICAgZXhwb3J0X3N5bWJvbHM9Ci0rICAgIGV4cG9ydF9z eW1ib2xzX3JlZ2V4PQotKyAgICBnZW5lcmF0ZWQ9Ci0rICAgIGxpYm9ianM9Ci0rICAgIGx0bGli cz0KLSsgICAgbW9kdWxlPW5vCi0rICAgIG5vX2luc3RhbGw9bm8KLSsgICAgb2Jqcz0KLSsgICAg bm9uX3BpY19vYmplY3RzPQotKyAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250YWlu IG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKLSsgICAgcHJlY2lvdXNfZmlsZXNfcmVn ZXg9Ci0rICAgIHByZWZlcl9zdGF0aWNfbGlicz1ubwotKyAgICBwcmVsb2FkPW5vCi0rICAgIHBy ZXY9Ci0rICAgIHByZXZhcmc9Ci0rICAgIHJlbGVhc2U9Ci0rICAgIHJwYXRoPQotKyAgICB4cnBh dGg9Ci0rICAgIHBlcm1fcnBhdGg9Ci0rICAgIHRlbXBfcnBhdGg9Ci0rICAgIHRocmVhZF9zYWZl PW5vCi0rICAgIHZpbmZvPQotKyAgICB2aW5mb19udW1iZXI9bm8KLSsgICAgc2luZ2xlX21vZHVs ZT0iJHt3bH0tc2luZ2xlX21vZHVsZSIKLSsKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29t cGlsZQotKwotKyAgICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0 IG91dHB1dCBmaWxlbmFtZXMuCi0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRh cmcgaW4KLSsgICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGli cykKLSsJY2FzZSAkYXJnIGluCi0rCS1hbGwtc3RhdGljKQotKwkgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgLXogIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgot KwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY29tcGxldGUgc3RhdGljIGxpbmtpbmcg aXMgaW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24iIDE+JjIKLSsJICBmaQotKwkgIGlm IHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgICAgZGxvcGVuX3NlbGY9JGRs b3Blbl9zZWxmX3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcwotKwkg IDs7Ci0rCS1zdGF0aWMpCi0rCSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIk bGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9z dGF0aWMKLSsJICBmaQotKwkgIHByZWZlcl9zdGF0aWNfbGlicz1idWlsdAotKwkgIDs7Ci0rCS1z dGF0aWMtbGlidG9vbC1saWJzKQotKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAt biAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3Nl bGZfc3RhdGljCi0rCSAgZmkKLSsJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCi0rCSAgOzsKLSsJ ZXNhYwotKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KLSsJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCWJy ZWFrCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgICMgU2VlIGlmIG91ciBz aGFyZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KLSsgICAgdGVzdCAtbiAi JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcwotKwotKyAg ICAjIEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdh eS4KLSsgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbwotKyAgICAgIGFyZz0iJDEiCi0rICAg ICAgc2hpZnQKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClc e1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsJcWFyZz1cImAkZWNobyAiWCRhcmciIHwg JFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYFwiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVk IHF1b3RpbmcgdGVzdAotKwk7OwotKyAgICAgICopIHFhcmc9JGFyZyA7OwotKyAgICAgIGVzYWMK LSsgICAgICBsaWJ0b29sX2FyZ3M9IiRsaWJ0b29sX2FyZ3MgJHFhcmciCi0rCi0rICAgICAgIyBJ ZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCi0rICAg ICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCi0rCWNhc2UgJHByZXYgaW4KLSsJb3V0cHV0KQot KwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBAT1VUUFVUQCIKLSsJICBmaW5h bGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCBAT1VUUFVUQCIKLSsJICA7OwotKwllc2Fj Ci0rCi0rCWNhc2UgJHByZXYgaW4KLSsJZGxmaWxlc3xkbHByZWZpbGVzKQotKwkgIGlmIHRlc3Qg IiRwcmVsb2FkIiA9IG5vOyB0aGVuCi0rCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9iamVjdCBpbnRv IHRoZSBsaW5raW5nIGNvbW1hbmRzLgotKwkgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9j b21tYW5kIEBTWU1GSUxFQCIKLSsJICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21t YW5kIEBTWU1GSUxFQCIKLSsJICAgIHByZWxvYWQ9eWVzCi0rCSAgZmkKLSsJICBjYXNlICRhcmcg aW4KLSsJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2VzIGJlbG93Lgot KwkgIGZvcmNlKQotKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgotKwkgICAgICBk bHNlbGY9bmVlZGxlc3MKLSsJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCi0rCSAgICBmaQotKwkg ICAgcHJldj0KLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHNlbGYpCi0rCSAgICBpZiB0 ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgICAgIGRsc2VsZj15ZXMKLSsJICAg IGVsaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiICE9IHll czsgdGhlbgotKwkgICAgICBkbHNlbGY9eWVzCi0rCSAgICBlbHNlCi0rCSAgICAgIGRsc2VsZj1u ZWVkbGVzcwotKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAgIGZpCi0rCSAgICBwcmV2 PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRwcmV2 IiA9IGRsZmlsZXM7IHRoZW4KLSsJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKLSsJICAg IGVsc2UKLSsJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKLSsJICAgIGZpCi0r CSAgICBwcmV2PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0r CWV4cHN5bXMpCi0rCSAgZXhwb3J0X3N5bWJvbHM9IiRhcmciCi0rCSAgaWYgdGVzdCAhIC1mICIk YXJnIjsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogc3ltYm9sIGZpbGUgXGAkYXJnJyBk b2VzIG5vdCBleGlzdCIKLSsJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAgcHJl dj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWV4cHN5bXNfcmVnZXgpCi0rCSAgZXhwb3J0X3N5 bWJvbHNfcmVnZXg9IiRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWlu c3RfcHJlZml4KQotKwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNv bnRpbnVlCi0rCSAgOzsKLSsJcHJlY2lvdXNfcmVnZXgpCi0rCSAgcHJlY2lvdXNfZmlsZXNfcmVn ZXg9IiRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXJlbGVhc2UpCi0r CSAgcmVsZWFzZT0iLSRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCW9i amVjdGxpc3QpCi0rCSAgaWYgdGVzdCAtZiAiJGFyZyI7IHRoZW4KLSsJICAgIHNhdmVfYXJnPSRh cmcKLSsJICAgIG1vcmVhcmdzPQotKwkgICAgZm9yIGZpbCBpbiBgY2F0ICRzYXZlX2FyZ2AKLSsJ ICAgIGRvCi0rIwkgICAgICBtb3JlYXJncz0iJG1vcmVhcmdzICRmaWwiCi0rCSAgICAgIGFyZz0k ZmlsCi0rCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgotKwotKwkgICAgICAj IENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCi0rCSAg ICAgIGlmICgke1NFRH0gLWUgJzJxJyAkYXJnIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBB Q0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJCXBpY19vYmplY3Q9Ci0rCQlub25fcGlj X29iamVjdD0KLSsKLSsJCSMgUmVhZCB0aGUgLmxvIGZpbGUKLSsJCSMgSWYgdGhlcmUgaXMgbm8g ZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgotKwkJY2FzZSAkYXJnIGluCi0rCQkq LyogfCAqXFwqKSAuICRhcmcgOzsKLSsJCSopIC4gLi8kYXJnIDs7Ci0rCQllc2FjCi0rCi0rCQlp ZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgXAotKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2Jq ZWN0IiB8fAotKwkJICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJiBcCi0rCQkgICB0ZXN0 ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgotKwkJICAkZWNobyAiJG1vZGVuYW1lOiBj YW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIgMT4mMgotKwkJICBleGl0ICRF WElUX0ZBSUxVUkUKLSsJCWZpCi0rCi0rCQkjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhl IGFyZ3VtZW50LgotKwkJeGRpcj1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQl JSdgCi0rCQlpZiB0ZXN0ICJYJHhkaXIiID0gIlgkYXJnIjsgdGhlbgotKwkJICB4ZGlyPQotKwkJ ZWxzZQotKwkJICB4ZGlyPSIkeGRpci8iCi0rCQlmaQotKwotKwkJaWYgdGVzdCAiJHBpY19vYmpl Y3QiICE9IG5vbmU7IHRoZW4KLSsJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9i amVjdCBpcyBmb3VuZCBpbi4KLSsJCSAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKLSsK LSsJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotKwkJICAgIGlmIHRlc3QgIiRi dWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7 IHRoZW4KLSsJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgotKwkJICAgICAg cHJldj0KLSsJCSAgICAgIGNvbnRpbnVlCi0rCQkgICAgZWxzZQotKwkJICAgICAgIyBJZiBsaWJ0 b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJ CSAgICAgIHByZXY9ZGxwcmVmaWxlcwotKwkJICAgIGZpCi0rCQkgIGZpCi0rCi0rCQkgICMgQ0hF Q0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCi0rCQkgIGlmIHRlc3QgIiRw cmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KLSsJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBv YmplY3QuCi0rCQkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCi0rCQkg ICAgcHJldj0KLSsJCSAgZmkKLSsKLSsJCSAgIyBBIFBJQyBvYmplY3QuCi0rCQkgIGxpYm9ianM9 IiRsaWJvYmpzICRwaWNfb2JqZWN0IgotKwkJICBhcmc9IiRwaWNfb2JqZWN0IgotKwkJZmkKLSsK LSsJCSMgTm9uLVBJQyBvYmplY3QuCi0rCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5v bmU7IHRoZW4KLSsJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBm b3VuZCBpbi4KLSsJCSAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgotKwot KwkJICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKLSsJCSAgbm9uX3BpY19vYmplY3RzPSIk bm9uX3BpY19vYmplY3RzICRub25fcGljX29iamVjdCIKLSsJCSAgaWYgdGVzdCAteiAiJHBpY19v YmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCi0rCQkgICAgYXJnPSIk bm9uX3BpY19vYmplY3QiCi0rCQkgIGZpCi0rCQllbHNlCi0rCQkgICMgSWYgdGhlIFBJQyBvYmpl Y3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KLSsJCSAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRv ICRwaWNfb2JqZWN0IGFib3ZlLgotKwkJICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCi0r CQkgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCi0r CQlmaQotKwkgICAgICBlbHNlCi0rCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5 LXJ1bi4KLSsJCWlmIHRlc3QgLXogIiRydW4iOyB0aGVuCi0rCQkgICRlY2hvICIkbW9kZW5hbWU6 IFxgJGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiIDE+JjIKLSsJCSAgZXhpdCAk RVhJVF9GQUlMVVJFCi0rCQllbHNlCi0rCQkgICMgRHJ5LXJ1biBjYXNlLgotKwotKwkJICAjIEV4 dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkJICB4ZGlyPWAkZWNobyAi WCRhcmciIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKLSsJCSAgaWYgdGVzdCAiWCR4ZGlyIiA9 ICJYJGFyZyI7IHRoZW4KLSsJCSAgICB4ZGlyPQotKwkJICBlbHNlCi0rCQkgICAgeGRpcj0iJHhk aXIvIgotKwkJICBmaQotKwotKwkJICBwaWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke29iamRp cn0vJHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCi0rCQkgIG5vbl9waWNfb2JqZWN0PWAkZWNo byAiWCR7eGRpcn0ke2FyZ30iIHwgJFhzZWQgLWUgIiRsbzJvImAKLSsJCSAgbGlib2Jqcz0iJGxp Ym9ianMgJHBpY19vYmplY3QiCi0rCQkgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0 cyAkbm9uX3BpY19vYmplY3QiCi0rCQlmaQotKwkgICAgICBmaQotKwkgICAgZG9uZQotKwkgIGVs c2UKLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IGxpbmsgaW5wdXQgZmlsZSBcYCRzYXZlX2FyZycg ZG9lcyBub3QgZXhpc3QiCi0rCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICBmaQotKwkgIGFy Zz0kc2F2ZV9hcmcKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJcnBhdGggfCB4 cnBhdGgpCi0rCSAgIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCSAgY2FzZSAkYXJnIGlu Ci0rCSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKwkgICopCi0rCSAgICAkZWNobyAi JG1vZGVuYW1lOiBvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIgMT4mMgotKwkg ICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBpZiB0ZXN0ICIk cHJldiIgPSBycGF0aDsgdGhlbgotKwkgICAgY2FzZSAiJHJwYXRoICIgaW4KLSsJICAgICoiICRh cmcgIiopIDs7Ci0rCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7Ci0rCSAgICBlc2FjCi0r CSAgZWxzZQotKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCi0rCSAgICAqIiAkYXJnICIqKSA7Owot KwkgICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkKLSsJ ICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNvbXBpbGVyKQotKwkgIGNvbXBpbGVy X2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCi0rCSAgcHJldj0KLSsJICBjb21waWxlX2Nv bW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJHFhcmciCi0rCSAgZmluYWxpemVfY29tbWFuZD0iJGZp bmFsaXplX2NvbW1hbmQgJHFhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwl4bGlua2VyKQot KwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxlcl9mbGFn cz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRxYXJnIgotKwkgIHByZXY9Ci0rCSAgY29tcGlsZV9jb21t YW5kPSIkY29tcGlsZV9jb21tYW5kICR3bCRxYXJnIgotKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRm aW5hbGl6ZV9jb21tYW5kICR3bCRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNjbGlu a2VyKQotKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLSsJICBjb21waWxl cl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgY29tcGlsZV9j b21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRxYXJnIgotKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRm aW5hbGl6ZV9jb21tYW5kICRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJc2hyZXh0KQot KyAgCSAgc2hyZXh0X2NtZHM9IiRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7 Ci0rCWRhcndpbl9mcmFtZXdvcmt8ZGFyd2luX2ZyYW1ld29ya19za2lwKQotKwkgIHRlc3QgIiRw cmV2IiA9ICJkYXJ3aW5fZnJhbWV3b3JrIiAmJiBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2Zs YWdzICRhcmciCi0rCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRhcmciCi0r CSAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKLSsJICBwcmV2PQot KwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJKikKLSsJICBldmFsICIkcHJldj1cIlwkYXJnXCIiCi0r CSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaSAjIHRlc3Qg LW4gIiRwcmV2IgotKwotKyAgICAgIHByZXZhcmc9IiRhcmciCi0rCi0rICAgICAgY2FzZSAkYXJn IGluCi0rICAgICAgLWFsbC1zdGF0aWMpCi0rCWlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFn IjsgdGhlbgotKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkbGlua19zdGF0 aWNfZmxhZyIKLSsJICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkbGlua19z dGF0aWNfZmxhZyIKLSsJZmkKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtYWxsb3ctdW5k ZWZpbmVkKQotKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1 cmUuCi0rCSRlY2hvICIkbW9kZW5hbWU6IFxgLWFsbG93LXVuZGVmaW5lZCcgaXMgZGVwcmVjYXRl ZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IiAxPiYyCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0r ICAgICAgLWF2b2lkLXZlcnNpb24pCi0rCWF2b2lkX3ZlcnNpb249eWVzCi0rCWNvbnRpbnVlCi0r CTs7Ci0rCi0rICAgICAgLWRsb3BlbikKLSsJcHJldj1kbGZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLWRscHJlb3BlbikKLSsJcHJldj1kbHByZWZpbGVzCi0rCWNvbnRpbnVlCi0r CTs7Ci0rCi0rICAgICAgLWV4cG9ydC1keW5hbWljKQotKwlleHBvcnRfZHluYW1pYz15ZXMKLSsJ Y29udGludWUKLSsJOzsKLSsKLSsgICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0LXN5bWJv bHMtcmVnZXgpCi0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4 cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgotKwkgICRlY2hvICIkbW9kZW5hbWU6IG1vcmUgdGhh biBvbmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCi0rCSAgZXhp dCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWV4cG9ydC1zeW1i b2xzIjsgdGhlbgotKwkgIHByZXY9ZXhwc3ltcwotKwllbHNlCi0rCSAgcHJldj1leHBzeW1zX3Jl Z2V4Ci0rCWZpCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWZyYW1ld29ya3wtYXJjaHwt aXN5c3Jvb3QpCi0rCWNhc2UgIiAkQ0MgIiBpbgotKwkgICoiICR7YXJnfSAkezF9ICIqIHwgKiIg JHthcmd9CSR7MX0gIiopIAotKwkJcHJldj1kYXJ3aW5fZnJhbWV3b3JrX3NraXAgOzsKLSsJICAq KSBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCi0rCSAgICAgcHJldj1kYXJ3 aW5fZnJhbWV3b3JrIDs7Ci0rCWVzYWMKLSsJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21t YW5kICRhcmciCi0rCWZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCi0r CWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWluc3QtcHJlZml4LWRpcikKLSsJcHJldj1pbnN0 X3ByZWZpeAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxp bmtlciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKLSsgICAgICAjIHNv LCBpZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtl IC1MCi0rICAgICAgLUxbQS1aXVtBLVpdKjoqKQotKwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgot Kwluby8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQotKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBp bGVfY29tbWFuZCAkYXJnIgotKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5k ICRhcmciCi0rCSAgOzsKLSsJZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1MKikK LSsJZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgJ3MvXi1MLy8nYAotKwkjIFdlIG5lZWQg YW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkZGlyIGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltc XC9dKikgOzsKLSsJKikKLSsJICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCi0rCSAgaWYgdGVz dCAteiAiJGFic2RpciI7IHRoZW4KLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBkZXRl cm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIgMT4mMgotKwkgICAgYWJz ZGlyPSIkZGlyIgotKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRkaXIiCi0rCSAg ZmkKLSsJICBkaXI9IiRhYnNkaXIiCi0rCSAgOzsKLSsJZXNhYwotKwljYXNlICIkZGVwbGlicyAi IGluCi0rCSoiIC1MJGRpciAiKikgOzsKLSsJKikKLSsJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRk aXIiCi0rCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCi0rCSAgOzsK LSsJZXNhYwotKwljYXNlICRob3N0IGluCi0rCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICot Ki1wdzMyKiB8ICotKi1vczIqKQotKwkgIHRlc3RiaW5kaXI9YCRlY2hvICJYJGRpciIgfCAkWHNl ZCAtZSAncyovbGliJCovYmluKidgCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAg KiI6JGRpcjoiKikgOzsKLSsJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGly Ijs7Ci0rCSAgZXNhYwotKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgotKwkgICoiOiR0ZXN0 YmluZGlyOiIqKSA7OwotKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0 YmluZGlyIjs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtbCopCi0rCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0ICJYJGFyZyIg PSAiWC1sbSI7IHRoZW4KLSsJICBjYXNlICRob3N0IGluCi0rCSAgKi0qLWN5Z3dpbiogfCAqLSot bWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWJlb3MqKQotKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRv bid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3VjaCkKLSsJICAgIGNv bnRpbnVlCi0rCSAgICA7OwotKwkgICotKi1vczIqKQotKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRv bid0IGFjdHVhbGx5IGhhdmUgYSBDIGxpYnJhcnkgKGFzIHN1Y2gpCi0rCSAgICB0ZXN0ICJYJGFy ZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLW9wZW5ic2QqIHwgKi0q LWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCi0rCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMg ZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KLSsJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxj IiAmJiBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEu WzAxMl0pCi0rCSAgICAjIFJoYXBzb2R5IEMgYW5kIG1hdGggbGlicmFyaWVzIGFyZSBpbiB0aGUg U3lzdGVtIGZyYW1ld29yawotKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgLWZyYW1ld29yayBTeXN0 ZW0iCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNj bzV2NiopCi0rCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKLSsJICAgIHRlc3Qg IlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotc3lzdjQuMnV3 MiogfCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCi0rCSAgICAj IENvbXBpbGVyIGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFkcyB0 byB3b3JrCi0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7 Ci0rCSAgZXNhYwotKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCi0rCSBjYXNl ICRob3N0IGluCi0rCSAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5 KikKLSsJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRocmVhZCBm bGFnLgotKwkgICBjb250aW51ZQotKwkgICA7OwotKwkgZXNhYwotKwlmaQotKwlkZXBsaWJzPSIk ZGVwbGlicyAkYXJnIgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgVHJ1NjQgVU5JWCB1 c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKLSsgICAgICAj IGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFuZCBleGNlcHRpb24gaGFuZGxpbmcuCi0rICAgICAg LW1vZGVsKQotKwljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKLSsJY29t cGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgotKwlmaW5hbGl6ZV9jb21tYW5kPSIk ZmluYWxpemVfY29tbWFuZCAkYXJnIgotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7 OwotKwotKyAgICAgLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRo cmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFkcykKLSsJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxl cl9mbGFncyAkYXJnIgotKwljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIK LSsJZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKLSsJY29udGludWUK LSsJOzsKLSsKLSsgICAgICAtbXVsdGlfbW9kdWxlKQotKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1t dWx0aV9tb2R1bGUiCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW1vZHVsZSkKLSsJbW9k dWxlPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgLTY0LCAtbWlwc1swLTldIGVu YWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU0dJIGNvbXBpbGVyCi0rICAgICAgIyAtclswLTldWzAt OV0qIHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIG9uIHRoZSBTR0kgY29tcGlsZXIKLSsgICAgICAj IC14YXJjaD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU3VuIGNvbXBp bGVyCi0rICAgICAgIyArREEqLCArREQqIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29t cGlsZXIKLSsgICAgICAjIC1xKiBwYXNzIHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElC TSBjb21waWxlcgotKyAgICAgICMgLW0qIHBhc3MgdGhyb3VnaCBhcmNoaXRlY3R1cmUtc3BlY2lm aWMgY29tcGlsZXIgYXJncyBmb3IgR0NDCi0rICAgICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxl KiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCi0rICAgICAgIyBjb21waWxlciBh cmdzIGZvciBHQ0MKLSsgICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBh c3MgdGhyb3VnaCBwcm9maWxpbmcgZmxhZyBmb3IgR0NDCi0rICAgICAgIyAtRi9wYXRoIGdpdmVz IHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgotKyAgICAgICMg QGZpbGUgR0NDIHJlc3BvbnNlIGZpbGVzCi0rICAgICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVsw LTldKnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCi0rICAgICAgLXRb NDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqKQotKwot KwkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGls ZV9jb21tYW5kIG5lZWQKLSsJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRo ZXkgYXJlIGV2YWxlZCBsYXRlci4KLSsJYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRz ZWRfcXVvdGVfc3Vic3QiYAotKwljYXNlICRhcmcgaW4KLSsJKltcW1x+XCNcXlwmXCpcKFwpXHtc fVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCSAgYXJnPSJcIiRhcmdcIiIKLSsJICA7Owot Kwllc2FjCi0rICAgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIK LSsgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCi0rICAg ICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCi0rICAgICAgICBjb250 aW51ZQotKyAgICAgICAgOzsKLSsKLSsgICAgICAtc2hyZXh0KQotKwlwcmV2PXNocmV4dAotKwlj b250aW51ZQotKwk7OwotKwotKyAgICAgIC1uby1mYXN0LWluc3RhbGwpCi0rCWZhc3RfaW5zdGFs bD1ubwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1uby1pbnN0YWxsKQotKwljYXNlICRo b3N0IGluCi0rCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIq IHwgKi0qLWRhcndpbiopCi0rCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0 cyBpcyByZXF1aXJlZCBvbiBXaW5kb3dzCi0rCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0 aGUgbG9hZGVyIHRvIGZpbmQgYW55IGRsbHMgaXQgbmVlZHMuCi0rCSAgJGVjaG8gIiRtb2RlbmFt ZTogd2FybmluZzogXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiIDE+JjIKLSsJ ICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwn IGluc3RlYWQiIDE+JjIKLSsJICBmYXN0X2luc3RhbGw9bm8KLSsJICA7OwotKwkqKSBub19pbnN0 YWxsPXllcyA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW5vLXVuZGVm aW5lZCkKLSsJYWxsb3dfdW5kZWZpbmVkPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAg LW9iamVjdGxpc3QpCi0rCXByZXY9b2JqZWN0bGlzdAotKwljb250aW51ZQotKwk7OwotKwotKyAg ICAgIC1vKSBwcmV2PW91dHB1dCA7OwotKwotKyAgICAgIC1wcmVjaW91cy1maWxlcy1yZWdleCkK LSsJcHJldj1wcmVjaW91c19yZWdleAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1yZWxl YXNlKQotKwlwcmV2PXJlbGVhc2UKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcnBhdGgp Ci0rCXByZXY9cnBhdGgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtUikKLSsJcHJldj14 cnBhdGgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtUiopCi0rCWRpcj1gJGVjaG8gIlgk YXJnIiB8ICRYc2VkIC1lICdzL14tUi8vJ2AKLSsJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGgu Ci0rCWNhc2UgJGRpciBpbgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Ci0rCSopCi0r CSAgJGVjaG8gIiRtb2RlbmFtZTogb25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQi IDE+JjIKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICA7OwotKwllc2FjCi0rCWNhc2UgIiR4 cnBhdGggIiBpbgotKwkqIiAkZGlyICIqKSA7OwotKwkqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIg OzsKLSsJZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1zdGF0aWMgfCAtc3RhdGlj LWxpYnRvb2wtbGlicykKLSsJIyBUaGUgZWZmZWN0cyBvZiAtc3RhdGljIGFyZSBkZWZpbmVkIGlu IGEgcHJldmlvdXMgbG9vcC4KLSsJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3Rh dGljIG9uIHBsYXRmb3JtcyB0aGF0Ci0rCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRo ZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKLSsJIyB3b3VsZCBiZSBlcXVpdmFsZW50IHdh cyB3cm9uZy4gIEl0IHdvdWxkIGJyZWFrIG9uIGF0IGxlYXN0Ci0rCSMgRGlnaXRhbCBVbml4IGFu ZCBBSVguCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXRocmVhZC1zYWZlKQotKwl0aHJl YWRfc2FmZT15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdmVyc2lvbi1pbmZvKQot KwlwcmV2PXZpbmZvCi0rCWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgLXZlcnNpb24tbnVtYmVyKQot KwlwcmV2PXZpbmZvCi0rCXZpbmZvX251bWJlcj15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtV2MsKikKLSsJYXJncz1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3Rl X3N1YnN0IiAtZSAncy9eLVdjLC8vJ2AKLSsJYXJnPQotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0n LCcKLSsJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgY2Fz ZSAkZmxhZyBpbgotKwkgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAld KnwqXSp8IiIpCi0rCSAgICBmbGFnPSJcIiRmbGFnXCIiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJ ICBhcmc9IiRhcmcgJHdsJGZsYWciCi0rCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFn cyAkZmxhZyIKLSsJZG9uZQotKwlJRlM9IiRzYXZlX2lmcyIKLSsJYXJnPWAkZWNobyAiWCRhcmci IHwgJFhzZWQgLWUgInMvXiAvLyJgCi0rCTs7Ci0rCi0rICAgICAgLVdsLCopCi0rCWFyZ3M9YCRl Y2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCIgLWUgJ3MvXi1XbCwvLydg Ci0rCWFyZz0KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZvciBmbGFnIGluICRhcmdz OyBkbwotKwkgIElGUz0iJHNhdmVfaWZzIgotKwkgIGNhc2UgJGZsYWcgaW4KLSsJICAgICpbXFtc flwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKwkgICAgZmxhZz0i XCIkZmxhZ1wiIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgYXJnPSIkYXJnICR3bCRmbGFnIgot KwkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZsYWciCi0rCSAgbGlua2Vy X2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgot Kwlhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAicy9eIC8vImAKLSsJOzsKLSsKLSsgICAg ICAtWGNvbXBpbGVyKQotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwotKyAg ICAgIC1YbGlua2VyKQotKwlwcmV2PXhsaW5rZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAg ICAtWENDbGlua2VyKQotKwlwcmV2PXhjY2xpbmtlcgotKwljb250aW51ZQotKwk7OwotKwotKyAg ICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgotKyAgICAgIC0qIHwgKyopCi0rCSMgVW5r bm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1h bmQgbmVlZAotKwkjIHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUg ZXZhbGVkIGxhdGVyLgotKwlhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90 ZV9zdWJzdCJgCi0rCWNhc2UgJGFyZyBpbgotKwkqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8 XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsJICBhcmc9IlwiJGFyZ1wiIgotKwkgIDs7Ci0rCWVzYWMK LSsJOzsKLSsKLSsgICAgICAqLiRvYmpleHQpCi0rCSMgQSBzdGFuZGFyZCBvYmplY3QuCi0rCW9i anM9IiRvYmpzICRhcmciCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBBIGxpYnRvb2wtY29u dHJvbGxlZCBvYmplY3QuCi0rCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMg YSBsaWJ0b29sIG9iamVjdC4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRhcmcgfCBncmVwICJeIyBH ZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgIHBpY19v YmplY3Q9Ci0rCSAgbm9uX3BpY19vYmplY3Q9Ci0rCi0rCSAgIyBSZWFkIHRoZSAubG8gZmlsZQot KwkgICMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgot KwkgIGNhc2UgJGFyZyBpbgotKwkgICovKiB8ICpcXCopIC4gJGFyZyA7OwotKwkgICopIC4gLi8k YXJnIDs7Ci0rCSAgZXNhYwotKwotKwkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCBcCi0r CSAgICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAotKwkgICAgIHRlc3QgIiRwaWNfb2Jq ZWN0IiA9IG5vbmUgJiYgXAotKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0 aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBm b3IgXGAkYXJnJyIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsKLSsJ ICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgotKwkgIHhkaXI9YCRl Y2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAotKwkgIGlmIHRlc3QgIlgkeGRp ciIgPSAiWCRhcmciOyB0aGVuCi0rCSAgICB4ZGlyPQotKyAJICBlbHNlCi0rCSAgICB4ZGlyPSIk eGRpci8iCi0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhl bgotKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBp bi4KLSsJICAgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCi0rCi0rCSAgICBpZiB0ZXN0 ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KLSsJCWRs ZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgotKwkJcHJldj0KLSsJCWNvbnRpbnVlCi0rCSAg ICAgIGVsc2UKLSsJCSMgSWYgbGlidG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3 ZSBuZWVkIHRvIHByZWxvYWQuCi0rCQlwcmV2PWRscHJlZmlsZXMKLSsJICAgICAgZmkKLSsJICAg IGZpCi0rCi0rCSAgICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2Ft YQotKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgotKwkgICAgICAjIFBy ZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0rCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZp bGVzICRwaWNfb2JqZWN0IgotKwkgICAgICBwcmV2PQotKwkgICAgZmkKLSsKLSsJICAgICMgQSBQ SUMgb2JqZWN0LgotKwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJHBpY19vYmplY3QiCi0rCSAgICBh cmc9IiRwaWNfb2JqZWN0IgotKwkgIGZpCi0rCi0rCSAgIyBOb24tUElDIG9iamVjdC4KLSsJICBp ZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJICAgICMgUHJlcGVuZCB0 aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCi0rCSAgICBub25fcGljX29i amVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCi0rCi0rCSAgICAjIEEgc3RhbmRhcmQgbm9uLVBJ QyBvYmplY3QKLSsJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3Bp Y19vYmplY3QiCi0rCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19v YmplY3QiID0gbm9uZSA7IHRoZW4KLSsJICAgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCi0rCSAg ICBmaQotKwkgIGVsc2UKLSsJICAgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQg aW5zdGVhZC4KLSsJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92 ZS4KLSsJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKLSsJICAgIG5vbl9waWNfb2Jq ZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCi0rCSAgZmkKLSsJZWxzZQot KwkgICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgotKwkgIGlmIHRlc3Qg LXogIiRydW4iOyB0aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRhcmcnIGlzIG5vdCBh IHZhbGlkIGxpYnRvb2wgb2JqZWN0IiAxPiYyCi0rCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJ ICBlbHNlCi0rCSAgICAjIERyeS1ydW4gY2FzZS4KLSsKLSsJICAgICMgRXh0cmFjdCBzdWJkaXJl Y3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rCSAgICB4ZGlyPWAkZWNobyAiWCRhcmciIHwgJFhz ZWQgLWUgJ3MlL1teL10qJCUlJ2AKLSsJICAgIGlmIHRlc3QgIlgkeGRpciIgPSAiWCRhcmciOyB0 aGVuCi0rCSAgICAgIHhkaXI9Ci0rCSAgICBlbHNlCi0rCSAgICAgIHhkaXI9IiR4ZGlyLyIKLSsJ ICAgIGZpCi0rCi0rCSAgICBwaWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke29iamRpcn0vJHth cmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCi0rCSAgICBub25fcGljX29iamVjdD1gJGVjaG8gIlgk e3hkaXJ9JHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCi0rCSAgICBsaWJvYmpzPSIkbGlib2Jq cyAkcGljX29iamVjdCIKLSsJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAk bm9uX3BpY19vYmplY3QiCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLiRsaWJleHQp Ci0rCSMgQW4gYXJjaGl2ZS4KLSsJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKLSsJb2xkX2RlcGxp YnM9IiRvbGRfZGVwbGlicyAkYXJnIgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICoubGEp Ci0rCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KLSsKLSsJaWYgdGVzdCAiJHByZXYi ID0gZGxmaWxlczsgdGhlbgotKwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAt ZGxvcGVuLgotKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCi0rCSAgcHJldj0KLSsJZWxpZiB0 ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgIyBUaGUgbGlicmFyeSB3YXMgc3Bl Y2lmaWVkIHdpdGggLWRscHJlb3Blbi4KLSsJICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJn IgotKwkgIHByZXY9Ci0rCWVsc2UKLSsJICBkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgotKwlmaQot Kwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVu dC4KLSsgICAgICAqKQotKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29t bWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKLSsJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1 b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KLSsJYXJnPWAkZWNobyAiWCRhcmci IHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKwljYXNlICRhcmcgaW4KLSsJKltcW1x+ XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCi0rCSAgYXJnPSJcIiRh cmdcIiIKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYyAjIGFyZwotKwotKyAgICAg ICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRz LgotKyAgICAgIGlmIHRlc3QgLW4gIiRhcmciOyB0aGVuCi0rCWNvbXBpbGVfY29tbWFuZD0iJGNv bXBpbGVfY29tbWFuZCAkYXJnIgotKwlmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFu ZCAkYXJnIgotKyAgICAgIGZpCi0rICAgIGRvbmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKLSsK LSsgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCi0rICAgICAgJGVjaG8gIiRtb2RlbmFtZTog dGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIgMT4mMgotKyAgICAg ICRlY2hvICIkaGVscCIgMT4mMgotKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICBmaQot KwotKyAgICBpZiB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzICYmIHRlc3QgLW4gIiRleHBv cnRfZHluYW1pY19mbGFnX3NwZWMiOyB0aGVuCi0rICAgICAgZXZhbCBhcmc9XCIkZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjXCIKLSsgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1h bmQgJGFyZyIKLSsgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkYXJn IgotKyAgICBmaQotKwotKyAgICBvbGRsaWJzPQotKyAgICAjIGNhbGN1bGF0ZSB0aGUgbmFtZSBv ZiB0aGUgZmlsZSwgd2l0aG91dCBpdHMgZGlyZWN0b3J5Ci0rICAgIG91dHB1dG5hbWU9YCRlY2hv ICJYJG91dHB1dCIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAotKyAgICBsaWJvYmpzX3NhdmU9IiRs aWJvYmpzIgotKwotKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsgICAg ICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluICRzaGxpYnBhdGhfdmFyCi0rICAgICAg ZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkZWNobyBcIlhcJHskc2hsaWJwYXRoX3Zhcn1cIiBc fCBcJFhzZWQgLWUgXCdzLzovIC9nXCdcYAotKyAgICBlbHNlCi0rICAgICAgc2hsaWJfc2VhcmNo X3BhdGg9Ci0rICAgIGZpCi0rICAgIGV2YWwgc3lzX2xpYl9zZWFyY2hfcGF0aD1cIiRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWNcIgotKyAgICBldmFsIHN5c19saWJfZGxzZWFyY2hfcGF0aD1cIiRz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlY1wiCi0rCi0rICAgIG91dHB1dF9vYmpkaXI9YCRlY2hv ICJYJG91dHB1dCIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAotKyAgICBpZiB0ZXN0ICJYJG91 dHB1dF9vYmpkaXIiID0gIlgkb3V0cHV0IjsgdGhlbgotKyAgICAgIG91dHB1dF9vYmpkaXI9IiRv YmpkaXIiCi0rICAgIGVsc2UKLSsgICAgICBvdXRwdXRfb2JqZGlyPSIkb3V0cHV0X29iamRpci8k b2JqZGlyIgotKyAgICBmaQotKyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdG9yeS4KLSsg ICAgaWYgdGVzdCAhIC1kICIkb3V0cHV0X29iamRpciI7IHRoZW4KLSsgICAgICAkc2hvdyAiJG1r ZGlyICRvdXRwdXRfb2JqZGlyIgotKyAgICAgICRydW4gJG1rZGlyICRvdXRwdXRfb2JqZGlyCi0r ICAgICAgZXhpdF9zdGF0dXM9JD8KLSsgICAgICBpZiB0ZXN0ICIkZXhpdF9zdGF0dXMiIC1uZSAw ICYmIHRlc3QgISAtZCAiJG91dHB1dF9vYmpkaXIiOyB0aGVuCi0rCWV4aXQgJGV4aXRfc3RhdHVz Ci0rICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgIyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygb3V0 cHV0Ci0rICAgIGNhc2UgJG91dHB1dCBpbgotKyAgICAiIikKLSsgICAgICAkZWNobyAiJG1vZGVu YW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIiAxPiYyCi0rICAgICAgJGVjaG8g IiRoZWxwIiAxPiYyCi0rICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgICAgOzsKLSsgICAg Ki4kbGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKLSsgICAgKi5sbyB8ICouJG9iamV4dCkgbGlu a21vZGU9b2JqIDs7Ci0rICAgICoubGEpIGxpbmttb2RlPWxpYiA7OwotKyAgICAqKSBsaW5rbW9k ZT1wcm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgotKyAgICBlc2Fj Ci0rCi0rICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIq KQotKyAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5k ICRwcmVkZXBzCi0rICAgICAgZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPXllcwot KyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9k ZXBzPSRkdXBsaWNhdGVfZGVwcwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgc3BlY2lhbGRl cGxpYnM9Ci0rCi0rICAgIGxpYnM9Ci0rICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVw bGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwotKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBt b3JlIHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKLSsgICAgZm9yIGRlcGxpYiBpbiAkZGVw bGliczsgZG8KLSsgICAgICBpZiB0ZXN0ICJYJGR1cGxpY2F0ZV9kZXBzIiA9ICJYeWVzIiA7IHRo ZW4KLSsJY2FzZSAiJGxpYnMgIiBpbgotKwkqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0i JHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGxp YnM9IiRsaWJzICRkZXBsaWIiCi0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAiJGxpbmttb2Rl IiA9IGxpYjsgdGhlbgotKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21waWxlcl9saWJf c2VhcmNoX3BhdGggJHBvc3RkZXBzIgotKwotKyAgICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhh dCBhcmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCi0rICAgICAgIyAkcG9zdGRl cHMgYW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQot KyAgICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgotKyAgICAgIHByZV9wb3N0X2RlcHM9Ci0r ICAgICAgaWYgdGVzdCAiWCRkdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHMiID0gIlh5 ZXMiIDsgdGhlbgotKwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8K LSsJICBjYXNlICIkcHJlX3Bvc3RfZGVwcyAiIGluCi0rCSAgKiIgJHByZV9wb3N0X2RlcCAiKikg c3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKLSsJICBl c2FjCi0rCSAgcHJlX3Bvc3RfZGVwcz0iJHByZV9wb3N0X2RlcHMgJHByZV9wb3N0X2RlcCIKLSsJ ZG9uZQotKyAgICAgIGZpCi0rICAgICAgcHJlX3Bvc3RfZGVwcz0KLSsgICAgZmkKLSsKLSsgICAg ZGVwbGlicz0KLSsgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQotKyAgICBuZXdsaWJfc2VhcmNoX3Bh dGg9Ci0rICAgIG5lZWRfcmVsaW5rPW5vICMgd2hldGhlciB3ZSdyZSBsaW5raW5nIGFueSB1bmlu c3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwotKyAgICBub3RpbnN0X2RlcGxpYnM9ICMgbm90LWlu c3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBs aWIpCi0rCXBhc3Nlcz0iY29udiBsaW5rIgotKwlmb3IgZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVm aWxlczsgZG8KLSsJICBjYXNlICRmaWxlIGluCi0rCSAgKi5sYSkgOzsKLSsJICAqKQotKwkgICAg JGVjaG8gIiRtb2RlbmFtZTogbGlicmFyaWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBs aWJyYXJpZXM6ICRmaWxlIiAxPiYyCi0rCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICAgIDs7 Ci0rCSAgZXNhYwotKwlkb25lCi0rCTs7Ci0rICAgIHByb2cpCi0rCWNvbXBpbGVfZGVwbGlicz0K LSsJZmluYWxpemVfZGVwbGlicz0KLSsJYWxsZGVwbGlicz1ubwotKwluZXdkbGZpbGVzPQotKwlu ZXdkbHByZWZpbGVzPQotKwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsi Ci0rCTs7Ci0rICAgICopICBwYXNzZXM9ImNvbnYiCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgZm9y IHBhc3MgaW4gJHBhc3NlczsgZG8KLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0g ImxpYixsaW5rIiB8fAotKwkgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iOyB0 aGVuCi0rCWxpYnM9IiRkZXBsaWJzIgotKwlkZXBsaWJzPQotKyAgICAgIGZpCi0rICAgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJY2FzZSAkcGFzcyBpbgotKwlkbG9wZW4p IGxpYnM9IiRkbGZpbGVzIiA7OwotKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7Owot KwlsaW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKLSsJ ZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCi0r CSMgQ29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKLSsJc2F2ZV9kZXBsaWJzPSIkZGVwbGli cyIKLSsJZGVwbGlicz0KLSsgICAgICBmaQotKyAgICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7IGRv Ci0rCWxpYj0KLSsJZm91bmQ9bm8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1tdHwtbXRocmVhZHN8 LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVh ZHMpCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0r CSAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZp bmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkg ICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZGVwbGliIgotKwkgIGZpCi0rCSAg Y29udGludWUKLSsJICA7OwotKwktbCopCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIg JiYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1l OiB3YXJuaW5nOiBcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIiAxPiYyCi0r CSAgICBjb250aW51ZQotKwkgIGZpCi0rCSAgbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2Vk IC1lICdzL14tbC8vJ2AKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rCSAg ICBzZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJGNvbXBp bGVyX2xpYl9zZWFyY2hfZGlycyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3Bh dGgiCi0rCSAgZWxzZQotKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGli X3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKLSsJ ICBmaQotKwkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCi0rCSAgICBmb3Igc2Vh cmNoX2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5hOyBkbwotKwkgICAgICAjIFNlYXJjaCB0 aGUgbGlidG9vbCBsaWJyYXJ5Ci0rCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtz ZWFyY2hfZXh0fSIKLSsJICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KLSsJCWlmIHRlc3Qg IiRzZWFyY2hfZXh0IiA9ICIubGEiOyB0aGVuCi0rCQkgIGZvdW5kPXllcwotKwkJZWxzZQotKwkJ ICBmb3VuZD1ubwotKwkJZmkKLSsJCWJyZWFrIDIKLSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJ ICBkb25lCi0rCSAgaWYgdGVzdCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4KLSsJICAgICMgZGVwbGli IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGlicmFyeQotKwkgICAgaWYgdGVzdCAiJGxp bmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgICAgIGNvbXBpbGVfZGVwbGli cz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIk ZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICBkZXBsaWJzPSIk ZGVwbGliICRkZXBsaWJzIgotKwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2Rl cGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZmkKLSsJ ICAgIGNvbnRpbnVlCi0rCSAgZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQotKwkg ICAgIyBJZiAkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBs aWIgaXMgYSBzdGRsaWIsCi0rCSAgICAjIFdlIG5lZWQgdG8gZG8gc29tZSBzcGVjaWFsIHRoaW5n cyBoZXJlLCBhbmQgbm90IGxhdGVyLgotKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xp YnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgotKwkgICAgICBjYXNlICIg JHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikKLSsJCWlmICgk e1NFRH0gLWUgJzJxJyAkbGliIHwKLSsgICAgICAgICAgICAgICAgICAgIGdyZXAgIl4jIEdlbmVy YXRlZCBieSAuKiRQQUNLQUdFIikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQkgIGxpYnJhcnlf bmFtZXM9Ci0rCQkgIG9sZF9saWJyYXJ5PQotKwkJICBjYXNlICRsaWIgaW4KLSsJCSAgKi8qIHwg KlxcKikgLiAkbGliIDs7Ci0rCQkgICopIC4gLi8kbGliIDs7Ci0rCQkgIGVzYWMKLSsJCSAgZm9y IGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwotKwkJICAgIGxsPSIkbCIKLSsJ CSAgZG9uZQotKwkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBv bmx5IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQotKwkJICAgIGZvdW5kPW5vCi0rCQkgICAgbGFk aXI9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAotKwkJICAgIHRlc3Qg IlgkbGFkaXIiID0gIlgkbGliIiAmJiBsYWRpcj0iLiIKLSsJCSAgICBsaWI9JGxhZGlyLyRvbGRf bGlicmFyeQotKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsg dGhlbgotKwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMi Ci0rCQkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgot KwkJICAgIGVsc2UKLSsJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCQkgICAg ICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAk bmV3ZGVwZW5kZW5jeV9saWJzIgotKwkJICAgIGZpCi0rCQkgICAgY29udGludWUKLSsJCSAgZmkK LSsJCWZpCi0rCSAgICAgICAgOzsKLSsJICAgICAgKikgOzsKLSsJICAgICAgZXNhYwotKwkgICAg ZmkKLSsJICBmaQotKwkgIDs7ICMgLWwKLSsJLUwqKQotKwkgIGNhc2UgJGxpbmttb2RlIGluCi0r CSAgbGliKQotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIHRlc3QgIiRw YXNzIiA9IGNvbnYgJiYgY29udGludWUKLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxp YiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGli X3NlYXJjaF9wYXRoICJgJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzL14tTC8vJ2AKLSsJ ICAgIDs7Ci0rCSAgcHJvZykKLSsJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJ ICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgICAgY29udGludWUKLSsJICAg IGZpCi0rCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBzY2FuOyB0aGVuCi0rCSAgICAgIGRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0i JGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVw bGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZmkKLSsJICAgIG5ld2xpYl9zZWFyY2hfcGF0 aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAiYCRlY2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAncy9e LUwvLydgCi0rCSAgICA7OwotKwkgICopCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5n OiBcYC1MJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIiAxPiYyCi0rCSAgICA7Owot KwkgIGVzYWMgIyBsaW5rbW9kZQotKwkgIGNvbnRpbnVlCi0rCSAgOzsgIyAtTAotKwktUiopCi0r CSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgotKwkgICAgZGlyPWAkZWNobyAiWCRkZXBs aWIiIHwgJFhzZWQgLWUgJ3MvXi1SLy8nYAotKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhycGF0aCBj b250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KLSsJICAgIGNhc2UgIiR4cnBhdGggIiBp bgotKwkgICAgKiIgJGRpciAiKikgOzsKLSsJICAgICopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7 OwotKwkgICAgZXNhYwotKwkgIGZpCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJ ICBjb250aW51ZQotKwkgIDs7Ci0rCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKLSsJKi4kbGliZXh0 KQotKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkZXBs aWIgJGRlcGxpYnMiCi0rCSAgICBjb250aW51ZQotKwkgIGZpCi0rCSAgY2FzZSAkbGlua21vZGUg aW4KLSsJICBsaWIpCi0rCSAgICB2YWxpZF9hX2xpYj1ubwotKwkgICAgY2FzZSAkZGVwbGlic19j aGVja19tZXRob2QgaW4KLSsJICAgICAgbWF0Y2hfcGF0dGVybiopCi0rCQlzZXQgZHVtbXkgJGRl cGxpYnNfY2hlY2tfbWV0aG9kCi0rCSAgICAgICAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAi JGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMiBcKC4qXCkiYAotKwkJaWYgZXZhbCAkZWNobyBc IiRkZXBsaWJcIiAyPi9kZXYvbnVsbCBcCi0rCQkgICAgfCAkU0VEIDEwcSBcCi0rCQkgICAgfCAk RUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJICB2YWxp ZF9hX2xpYj15ZXMKLSsJCWZpCi0rCQk7OwotKwkgICAgICBwYXNzX2FsbCkKLSsJCXZhbGlkX2Ff bGliPXllcwotKwkJOzsKLSsgICAgICAgICAgICBlc2FjCi0rCSAgICBpZiB0ZXN0ICIkdmFsaWRf YV9saWIiICE9IHllczsgdGhlbgotKwkgICAgICAkZWNobwotKwkgICAgICAkZWNobyAiKioqIFdh cm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgot KwkgICAgICAkZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGli cmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLSsJICAgICAgJGVjaG8gIioqKiB5b3Ug bGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZl IGEiCi0rCSAgICAgICRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdo aWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCSAgICAgICRlY2hvICIqKiogYmVjYXVz ZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUg YmVsaWV2ZSIKLSsJICAgICAgJGVjaG8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJj aGl2ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2VkIGhlcmUuIgotKwkgICAgZWxzZQotKwkgICAgICAk ZWNobwotKwkgICAgICAkZWNobyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJy YXJ5ICRvdXRwdXQgYWdhaW5zdCB0aGUiCi0rCSAgICAgICRlY2hvICIqKiogc3RhdGljIGxpYnJh cnkgJGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRk ZXBsaWJzIgotKwkgICAgZmkKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHByb2cpCi0r CSAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVw bGliICRkZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBs aWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAk ZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJ ICBlc2FjICMgbGlua21vZGUKLSsJICA7OyAjICouJGxpYmV4dAotKwkqLmxvIHwgKi4kb2JqZXh0 KQotKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkZXBs aWIgJGRlcGxpYnMiCi0rCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkg ICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIg IT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KLSsJICAgICAg IyBJZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2Fs bHksCi0rCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgotKwkgICAgICBuZXdkbHByZWZpbGVz PSIkbmV3ZGxwcmVmaWxlcyAkZGVwbGliIgotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBs aWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAk ZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2Rs ZmlsZXMgJGRlcGxpYiIKLSsJICAgIGZpCi0rCSAgZmkKLSsJICBjb250aW51ZQotKwkgIDs7Ci0r CSVERVBMSUJTJSkKLSsJICBhbGxkZXBsaWJzPXllcwotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJ ZXNhYyAjIGNhc2UgJGRlcGxpYgotKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYg IiRsaWIiOyB0aGVuIDoKLSsJZWxzZQotKwkgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5k IHRoZSBsaWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciIDE+ JjIKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgdGhh dCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KLSsJaWYgKCR7U0VEfSAtZSAnMnEn ICRsaWIgfCBncmVwICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4m MTsgdGhlbiA6Ci0rCWVsc2UKLSsJICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBh IHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgotKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwlm aQotKwotKwlsYWRpcj1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0r CXRlc3QgIlgkbGFkaXIiID0gIlgkbGliIiAmJiBsYWRpcj0iLiIKLSsKLSsJZGxuYW1lPQotKwlk bG9wZW49Ci0rCWRscHJlb3Blbj0KLSsJbGliZGlyPQotKwlsaWJyYXJ5X25hbWVzPQotKwlvbGRf bGlicmFyeT0KLSsJIyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJl bGVhc2Ugb2YgbGlidG9vbCwKLSsJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5z dGFsbGVkLCBvciBzaG91bGRub3RsaW5rCi0rCWluc3RhbGxlZD15ZXMKLSsJc2hvdWxkbm90bGlu az1ubwotKwlhdm9pZHRlbXBycGF0aD0KLSsKLSsKLSsJIyBSZWFkIHRoZSAubGEgZmlsZQotKwlj YXNlICRsaWIgaW4KLSsJKi8qIHwgKlxcKikgLiAkbGliIDs7Ci0rCSopIC4gLi8kbGliIDs7Ci0r CWVzYWMKLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKLSsJ ICAgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8Ci0rCSAgIHsgdGVzdCAi JGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB9OyB0aGVuCi0r CSAgdGVzdCAtbiAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3BlbiIKLSsJICB0 ZXN0IC1uICIkZGxwcmVvcGVuIiAmJiBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkZGxwcmVvcGVu IgotKwlmaQotKwotKwlpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAgIyBPbmx5IGNo ZWNrIGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMKLSsJICBkZXBsaWJzPSIkbGliICRkZXBsaWJz IgotKwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkb2xk X2xpYnJhcnkiOyB0aGVuCi0rCSAgICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5kIG5h bWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIiAxPiYyCi0rCSAgICAgIGV4aXQgJEVYSVRf RkFJTFVSRQotKwkgICAgZmkKLSsJICAgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxp YnJhcnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KLSsJICAgIGNvbnZlbmllbmNlPSIkY29udmVu aWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgotKwkgICAgb2xkX2NvbnZlbmllbmNl PSIkb2xkX2NvbnZlbmllbmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgIHRt cF9saWJzPQotKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKyAgICAgICAgICAgICAgaWYgdGVzdCAiWCRk dXBsaWNhdGVfZGVwcyIgPSAiWHllcyIgOyB0aGVuCi0rCSAgICAgICAgY2FzZSAiJHRtcF9saWJz ICIgaW4KLSsJICAgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxk ZXBsaWJzICRkZXBsaWIiIDs7Ci0rCSAgICAgICAgZXNhYwotKyAgICAgICAgICAgICAgZmkKLSsJ ICAgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgotKwkgICAgZG9uZQotKwkgIGVsaWYg dGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB0aGVu Ci0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIGNvbnZlbmllbmNlIGxp YnJhcnkiIDE+JjIKLSsJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCSAgY29udGlu dWUKLSsJZmkgIyAkcGFzcyA9IGNvbnYKLSsKLSsKLSsJIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxp YnJhcnkgd2UgbGluayBhZ2FpbnN0LgotKwlsaW5rbGliPQotKwlmb3IgbCBpbiAkb2xkX2xpYnJh cnkgJGxpYnJhcnlfbmFtZXM7IGRvCi0rCSAgbGlua2xpYj0iJGwiCi0rCWRvbmUKLSsJaWYgdGVz dCAteiAiJGxpbmtsaWIiOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGZpbmQg bmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciIDE+JjIKLSsJICBleGl0ICRFWElUX0ZB SUxVUkUKLSsJZmkKLSsKLSsJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9w ZW4uCi0rCWlmIHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhlbgotKwkgIGlmIHRlc3QgLXogIiRs aWJkaXIiOyB0aGVuCi0rCSAgICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgLWRsb3BlbiBhIGNv bnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciIDE+JjIKLSsJICAgIGV4aXQgJEVYSVRfRkFJTFVS RQotKwkgIGZpCi0rCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwKLSsJICAgICB0ZXN0ICIkZGxv cGVuX3N1cHBvcnQiICE9IHllcyB8fAotKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0gbm87IHRoZW4KLSsJICAgICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBkbG9wZW4gc3Vw cG9ydCBvciB3ZSdyZSBsaW5raW5nCi0rCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJl bG9hZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQotKwkgICAgIyBkZXBlbmRlbnQgbGli cmFyaWVzIHNvIGxpYmx0ZGwncyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNuJ3QKLSsJICAgICMgYm9t YiBvdXQgaW4gdGhlIGxvYWQgZGVwbGlicyBwaGFzZS4KLSsJICAgIGRscHJlZmlsZXM9IiRkbHBy ZWZpbGVzICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKLSsJICBlbHNlCi0rCSAgICBuZXdkbGZpbGVz PSIkbmV3ZGxmaWxlcyAkbGliIgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9 IGRsb3BlbgotKwotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkbGFkaXIg aW4KLSsJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRpciIgOzsKLSsJ KikKLSsJICBhYnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKLSsJICBpZiB0ZXN0IC16ICIk YWJzX2xhZGlyIjsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90 IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciIDE+JjIKLSsJ ICAgICRlY2hvICIkbW9kZW5hbWU6IHBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRoZSBsaW5rZXIs IGFsdGhvdWdoIGl0IG1pZ2h0IGZhaWwiIDE+JjIKLSsJICAgIGFic19sYWRpcj0iJGxhZGlyIgot KwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlsYW5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAt ZSAncyVeLiovJSUnYAotKwotKwkjIEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3Rvcnkg YW5kIGxpYnJhcnkgbmFtZS4KLSsJaWYgdGVzdCAiWCRpbnN0YWxsZWQiID0gWHllczsgdGhlbgot KwkgIGlmIHRlc3QgISAtZiAiJGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRp ci8kbGlua2xpYiI7IHRoZW4KLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGxpYnJh cnkgXGAkbGliJyB3YXMgbW92ZWQuIiAxPiYyCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJICAgIGFi c2Rpcj0iJGFic19sYWRpciIKLSsJICAgIGxpYmRpcj0iJGFic19sYWRpciIKLSsJICBlbHNlCi0r CSAgICBkaXI9IiRsaWJkaXIiCi0rCSAgICBhYnNkaXI9IiRsaWJkaXIiCi0rCSAgZmkKLSsJICB0 ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVzICYmIGF2b2lkdGVtcHJwYXRoPXllcwot KwllbHNlCi0rCSAgaWYgdGVzdCAhIC1mICIkbGFkaXIvJG9iamRpci8kbGlua2xpYiIgJiYgdGVz dCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KLSsJICAgIGRpcj0iJGxhZGlyIgotKwkg ICAgYWJzZGlyPSIkYWJzX2xhZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBs YXRlcgotKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCi0rCSAg ZWxzZQotKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRp ci8kb2JqZGlyIgotKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotKwkgICAg bm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCi0rCSAgZmkKLSsJZmkgIyAk aW5zdGFsbGVkID0geWVzCi0rCW5hbWU9YCRlY2hvICJYJGxhbmFtZSIgfCAkWHNlZCAtZSAncy9c LmxhJC8vJyAtZSAncy9ebGliLy8nYAotKwotKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVk IHdpdGggLWRscHJlb3Blbi4KLSsJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCi0r CSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAgICRlY2hvICIkbW9kZW5hbWU6IGNh bm5vdCAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIgMT4mMgotKwkg ICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsJICAjIFByZWZlciB1c2luZyBhIHN0YXRp YyBsaWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKLSsJICAjIGFyZSBy ZXF1aXJlZCB0byBsaW5rKS4KLSsJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCi0r CSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRvbGRfbGlicmFyeSIKLSsJ ICAjIE90aGVyd2lzZSwgdXNlIHRoZSBkbG5hbWUsIHNvIHRoYXQgbHRfZGxvcGVuIGZpbmRzIGl0 LgotKwkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KLSsJICAgIG5ld2RscHJlZmlsZXM9 IiRuZXdkbHByZWZpbGVzICRkaXIvJGRsbmFtZSIKLSsJICBlbHNlCi0rCSAgICBuZXdkbHByZWZp bGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGliIgotKwkgIGZpCi0rCWZpICMgJHBhc3Mg PSBkbHByZW9wZW4KLSsKLSsJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAjIExpbmsg dGhlIGNvbnZlbmllbmNlIGxpYnJhcnkKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0 aGVuCi0rCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKLSsJICBlbGlm IHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgY29tcGls ZV9kZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmlu YWxpemVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAg ZWxzZQotKwkgICAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIgIyB1c2VkIGZvciBwcm9nLHNjYW4g cGFzcwotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkKLSsKLSsKLSsJaWYgdGVzdCAiJGxpbmtt b2RlIiA9IHByb2cgJiYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KLSsJICBuZXdsaWJfc2Vh cmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxhZGlyIgotKwkgIGRlcGxpYnM9IiRsaWIg JGRlcGxpYnMiCi0rCi0rCSAgbGlua2FsbGRlcGxpYnM9bm8KLSsJICBpZiB0ZXN0ICIkbGlua19h bGxfZGVwbGlicyIgIT0gbm8gfHwgdGVzdCAteiAiJGxpYnJhcnlfbmFtZXMiIHx8Ci0rCSAgICAg dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgotKwkgICAgbGlua2FsbGRlcGxp YnM9eWVzCi0rCSAgZmkKLSsKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBl bmRlbmN5X2xpYnM7IGRvCi0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikgbmV3bGli X3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICJgJGVjaG8gIlgkZGVwbGliIiB8ICRY c2VkIC1lICdzL14tTC8vJ2A7OyAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRl c3QKLSsJICAgIGVzYWMKLSsJICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVu Y3lfbGlicz8KLSsJICAgIGlmIHRlc3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KLSsJ ICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgIyBO ZWVkIHRvIGhhcmRjb2RlIHNoYXJlZCBsaWJyYXJ5IHBhdGhzCi0rCSAgICAgICMgb3IvYW5kIGxp bmsgYWdhaW5zdCBzdGF0aWMgbGlicmFyaWVzCi0rCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0i JGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIlgk ZHVwbGljYXRlX2RlcHMiID0gIlh5ZXMiIDsgdGhlbgotKwkgICAgICBjYXNlICIkdG1wX2xpYnMg IiBpbgotKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBs aWJzICRkZXBsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICB0bXBfbGlicz0i JHRtcF9saWJzICRkZXBsaWIiCi0rCSAgZG9uZSAjIGZvciBkZXBsaWIKLSsJICBjb250aW51ZQot KwlmaSAjICRsaW5rbW9kZSA9IHByb2cuLi4KLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNz IiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYm Ci0rCSAgICAgeyB7IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKLSsJCSB0ZXN0 ICIkcHJlZmVyX3N0YXRpY19saWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKLSsJ ICAgICAgIHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KLSsJICAgICMgV2UgbmVlZCB0 byBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoCi0rCSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRo X3ZhciIgJiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4KLSsJICAgICAgIyBNYWtl IHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgICAg ICBjYXNlICIkdGVtcF9ycGF0aCAiIGluCi0rCSAgICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAg ICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoICRh YnNkaXIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCi0rCSAgICAjIEhhcmRjb2RlIHRo ZSBsaWJyYXJ5IHBhdGguCi0rCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhl IHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCi0rCSAgICAjIHNlYXJjaCBwYXRoLgotKwkgICAgY2Fz ZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGFic2RpciAiKikgOzsK LSsJICAgICopCi0rCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KLSsJICAgICAgKiIg JGFic2RpciAiKikgOzsKLSsJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGgg JGFic2RpciIKLSsJICAgICAgZXNhYwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgY2Fz ZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGxpYmRpciAiKikgOzsK LSsJICAgICopCi0rCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCi0rCSAgICAgICoi ICRsaWJkaXIgIiopIDs7Ci0rCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBh dGggJGxpYmRpciIKLSsJICAgICAgZXNhYwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGZp ICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5rLi4uCi0rCi0rCSAgaWYgdGVzdCAiJGFsbGRl cGxpYnMiID0geWVzICYmCi0rCSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiID0g cGFzc19hbGwgfHwKLSsJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMg JiYKLSsJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4KLSsJICAgICMgV2Ug b25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGljIGxpYnJhcmllcwotKwkgICAgY29udGludWUK LSsJICBmaQotKwlmaQotKwotKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3 aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5Ci0rCXVzZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRp Y19saWJzCi0rCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGlu c3RhbGxlZCIgPSB5ZXMgOyB0aGVuCi0rCSAgdXNlX3N0YXRpY19saWJzPW5vCi0rCWZpCi0rCWlm IHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgotKwkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xp YnMiID0gbm8gfHwgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgotKwkgIGlmIHRlc3Qg IiRpbnN0YWxsZWQiID0gbm87IHRoZW4KLSsJICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3Rf ZGVwbGlicyAkbGliIgotKwkgICAgbmVlZF9yZWxpbms9eWVzCi0rCSAgZmkKLSsJICAjIFRoaXMg aXMgYSBzaGFyZWQgbGlicmFyeQotKwotKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2Fu J3QgbGluayBhZ2FpbnN0IC1tb2R1bGUncyBvbgotKwkgICMgc29tZSBzeXN0ZW1zIChkYXJ3aW4p Ci0rCSAgaWYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9IGxp bmsgOyB0aGVuCi0rCSAgICAkZWNobwotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7 IHRoZW4KLSsJICAgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxl ICRvdXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZWxzZQotKwkgICAg ICAkZWNobyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQg YWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZmkKLSsJICAgICRlY2hvICIqKiog JGxpbmtsaWIgaXMgbm90IHBvcnRhYmxlISIKLSsJICBmaQotKwkgIGlmIHRlc3QgIiRsaW5rbW9k ZSIgPSBsaWIgJiYKLSsJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhl bgotKwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgotKwkgICAgIyBTa2lwIGRpcmVj dG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQotKwkgICAgIyBz ZWFyY2ggcGF0aC4KLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJ ICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkY29tcGlsZV9y cGF0aCAiIGluCi0rCSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAgICopIGNvbXBpbGVf cnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsK LSsJICAgIGVzYWMKLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJ ICAgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkZmluYWxpemVf cnBhdGggIiBpbgotKwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBmaW5hbGl6 ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiCi0rCSAgICAgIGVzYWMKLSsJICAgICAg OzsKLSsJICAgIGVzYWMKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9m cm9tX2V4cHN5bXNfY21kcyI7IHRoZW4KLSsJICAgICMgZmlndXJlIG91dCB0aGUgc29uYW1lCi0r CSAgICBzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKLSsJICAgIHJlYWxuYW1lPSIkMiIKLSsJICAg IHNoaWZ0OyBzaGlmdAotKwkgICAgbGlibmFtZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3Bl Y1wiYAotKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkgZ29v ZCwgbm8/Ci0rCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkgICAgICBzb25hbWU9 IiRkbG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJICAg ICAgIyBibGVoIHdpbmRvd3MKLSsJICAgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICAqY3lnd2lu KiB8IG1pbmd3KikKLSsJCW1ham9yPWBleHByICRjdXJyZW50IC0gJGFnZWAKLSsJCXZlcnN1ZmZp eD0iLSRtYWpvciIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgZXZhbCBzb25hbWU9XCIk c29uYW1lX3NwZWNcIgotKwkgICAgZWxzZQotKwkgICAgICBzb25hbWU9IiRyZWFsbmFtZSIKLSsJ ICAgIGZpCi0rCi0rCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhlIGV4dHJhY3RfZXhwc3lt c19jbWRzIHRvIHVzZQotKwkgICAgc29yb290PSIkc29uYW1lIgotKwkgICAgc29uYW1lPWAkZWNo byAkc29yb290IHwgJHtTRUR9IC1lICdzL14uKlwvLy8nYAotKwkgICAgbmV3bGliPSJsaWJpbXAt YCRlY2hvICRzb25hbWUgfCAke1NFRH0gJ3MvXmxpYi8vO3MvXC5kbGwkLy8nYC5hIgotKwotKwkg ICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBu b3cKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6 Ci0rCSAgICBlbHNlCi0rCSAgICAgICRzaG93ICJleHRyYWN0aW5nIGV4cG9ydGVkIHN5bWJvbCBs aXN0IGZyb20gXGAkc29uYW1lJyIKLSsJICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0r CSAgICAgIGNtZHM9JGV4dHJhY3RfZXhwc3ltc19jbWRzCi0rCSAgICAgIGZvciBjbWQgaW4gJGNt ZHM7IGRvCi0rCQlJRlM9IiRzYXZlX2lmcyIKLSsJCWV2YWwgY21kPVwiJGNtZFwiCi0rCQkkc2hv dyAiJGNtZCIKLSsJCSRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwotKwkgICAgICBkb25lCi0r CSAgICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgZmkKLSsKLSsJICAgICMgQ3JlYXRlICRuZXds aWIKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVs c2UKLSsJICAgICAgJHNob3cgImdlbmVyYXRpbmcgaW1wb3J0IGxpYnJhcnkgZm9yIFxgJHNvbmFt ZSciCi0rCSAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwotKwkgICAgICBjbWRzPSRvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcwotKwkgICAgICBmb3IgY21kIGluICRjbWRzOyBkbwot KwkJSUZTPSIkc2F2ZV9pZnMiCi0rCQlldmFsIGNtZD1cIiRjbWRcIgotKwkJJHNob3cgIiRjbWQi Ci0rCQkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KLSsJICAgICAgZG9uZQotKwkgICAgICBJ RlM9IiRzYXZlX2lmcyIKLSsJICAgIGZpCi0rCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2 YXJpYWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQotKwkgICAgZGlyPSRvdXRw dXRfb2JqZGlyCi0rCSAgICBsaW5rbGliPSRuZXdsaWIKLSsJICBmaSAjIHRlc3QgLW4gIiRvbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKLSsKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0g cHJvZyB8fCB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCi0rCSAgICBhZGRfc2hsaWJwYXRo PQotKwkgICAgYWRkX2Rpcj0KLSsJICAgIGFkZD0KLSsJICAgIGxpYl9saW5rZWQ9eWVzCi0rCSAg ICBjYXNlICRoYXJkY29kZV9hY3Rpb24gaW4KLSsJICAgIGltbWVkaWF0ZSB8IHVuc3VwcG9ydGVk KQotKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCi0rCQlhZGQ9 IiRkaXIvJGxpbmtsaWIiCi0rCQljYXNlICRob3N0IGluCi0rCQkgICotKi1zY28zLjJ2NS4wLlsw MjRdKikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0i LUwkZGlyIiA7OwotKwkJICAqLSotc3lzdjVPcGVuVU5JWCogfCAqLSotc3lzdjVVbml4V2FyZTcu WzAxXS5bMTBdKiB8IFwKLSsJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7 OwotKwkJICAqLSotZGFyd2luKiApCi0rCQkgICAgIyBpZiB0aGUgbGliIGlzIGEgbW9kdWxlIHRo ZW4gd2UgY2FuIG5vdCBsaW5rIGFnYWluc3QKLSsJCSAgICAjIGl0LCBzb21lb25lIGlzIGlnbm9y aW5nIHRoZSBuZXcgd2FybmluZ3MgSSBhZGRlZAotKwkJICAgIGlmIC91c3IvYmluL2ZpbGUgLUwg JGFkZCAyPiAvZGV2L251bGwgfAotKyAgICAgICAgICAgICAgICAgICAgICAkRUdSRVAgIjogW146 XSogYnVuZGxlIiA+L2Rldi9udWxsIDsgdGhlbgotKwkJICAgICAgJGVjaG8gIioqIFdhcm5pbmcs IGxpYiAkbGlua2xpYiBpcyBhIG1vZHVsZSwgbm90IGEgc2hhcmVkIGxpYnJhcnkiCi0rCQkgICAg ICBpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgotKwkJICAgICAgICAkZWNobwotKwkJ ICAgICAgICAkZWNobyAiKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBh cmNoaXZlIGF2YWlsYWJsZSIKLSsJCSAgICAgICAgJGVjaG8gIioqIFRoZSBsaW5rIHdpbGwgcHJv YmFibHkgZmFpbCwgc29ycnkiCi0rCQkgICAgICBlbHNlCi0rCQkgICAgICAgIGFkZD0iJGRpci8k b2xkX2xpYnJhcnkiCi0rCQkgICAgICBmaQotKwkJICAgIGZpCi0rCQllc2FjCi0rCSAgICAgIGVs aWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KLSsJCWNhc2UgJGhvc3QgaW4K LSsJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIiIDs7Ci0rCQllc2FjCi0rCQlhZGRf ZGlyPSItTCRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRj b2RlX3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KLSsJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCi0r CQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJCWxpYl9saW5rZWQ9bm8KLSsJICAgICAg ZmkKLSsJICAgICAgOzsKLSsJICAgIHJlbGluaykKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRjb2Rl X2RpcmVjdCIgPSB5ZXM7IHRoZW4KLSsJCWFkZD0iJGRpci8kbGlua2xpYiIKLSsJICAgICAgZWxp ZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KLSsJCWFkZF9kaXI9Ii1MJGRp ciIKLSsJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGlu c3RhbGxlZCB0by4KLSsJCWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCi0rCQkg IGNhc2UgJGxpYmRpciBpbgotKwkJICAgIFtcXC9dKikKLSsJCSAgICAgIGFkZF9kaXI9IiRhZGRf ZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCi0rCQkgICAgICA7OwotKwkJICBlc2FjCi0r CQlmaQotKwkJYWRkPSItbCRuYW1lIgotKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxp YnBhdGhfdmFyIiA9IHllczsgdGhlbgotKwkJYWRkX3NobGlicGF0aD0iJGRpciIKLSsJCWFkZD0i LWwkbmFtZSIKLSsJICAgICAgZWxzZQotKwkJbGliX2xpbmtlZD1ubwotKwkgICAgICBmaQotKwkg ICAgICA7OwotKwkgICAgKikgbGliX2xpbmtlZD1ubyA7OwotKwkgICAgZXNhYwotKwotKwkgICAg aWYgdGVzdCAiJGxpYl9saW5rZWQiICE9IHllczsgdGhlbgotKwkgICAgICAkZWNobyAiJG1vZGVu YW1lOiBjb25maWd1cmF0aW9uIGVycm9yOiB1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVz IgotKwkgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0 IC1uICIkYWRkX3NobGlicGF0aCI7IHRoZW4KLSsJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJw YXRoOiBpbgotKwkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsKLSsJICAgICAgKikgY29t cGlsZV9zaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKLSsJ ICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0 aGVuCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRf ZGlyICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVf ZGVwbGlicz0iJGFkZCAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICB0ZXN0 IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCi0rCSAgICAgIHRl c3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCi0rCSAgICAgIGlmIHRlc3Qg IiRoYXJkY29kZV9kaXJlY3QiICE9IHllcyAmJiBcCi0rCQkgdGVzdCAiJGhhcmRjb2RlX21pbnVz X0wiICE9IHllcyAmJiBcCi0rCQkgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVz OyB0aGVuCi0rCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgotKwkJKiI6JGxpYmRpcjoi KikgOzsKLSsJCSopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJk aXI6IiA7OwotKwkJZXNhYwotKwkgICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwotKwkgIGlm IHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgot KwkgICAgYWRkX3NobGlicGF0aD0KLSsJICAgIGFkZF9kaXI9Ci0rCSAgICBhZGQ9Ci0rCSAgICAj IEZpbmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0Lgot KwkgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgYWRk PSIkbGliZGlyLyRsaW5rbGliIgotKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIg PSB5ZXM7IHRoZW4KLSsJICAgICAgYWRkX2Rpcj0iLUwkbGliZGlyIgotKwkgICAgICBhZGQ9Ii1s JG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsg dGhlbgotKwkgICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgotKwkgICAgICAqIjok bGliZGlyOiIqKSA7OwotKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9z aGxpYnBhdGgkbGliZGlyOiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBhZGQ9Ii1sJG5hbWUi Ci0rCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCi0rCSAg ICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCi0rCQkgdGVzdCAtZiAiJGluc3Rf cHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgotKwkgICAgICAgIGFkZD0iJGluc3Rf cHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICBhZGQ9 IiRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICAgIGZpCi0rCSAgICBlbHNlCi0rCSAgICAgICMgV2Ug Y2Fubm90IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQuCi0rCSAgICAg IGFkZF9kaXI9Ii1MJGxpYmRpciIKLSsJICAgICAgIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUg bG9jYXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgotKwkgICAgICBpZiB0ZXN0IC1uICIk aW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkJY2FzZSAkbGliZGlyIGluCi0rCQkgIFtcXC9dKikK LSsJCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJ ICAgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGFkZD0iLWwkbmFtZSIKLSsJICAg IGZpCi0rCi0rCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAgICB0 ZXN0IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIgJGZpbmFsaXpl X2RlcGxpYnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRh ZGQgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRf ZGlyIiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFk ZCIgJiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgZmkKLSsJZWxpZiB0 ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBv bmUgb2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKLSsJICAjIGlzIG5vdCB1 bnN1cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBhbmQKLSsJICAj IHNoYXJlZCBwbGF0Zm9ybXMuCi0rCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5z dXBwb3J0ZWQ7IHRoZW4KLSsJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0i JG9sZF9saWJyYXJ5IgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRjb21w aWxlX2RlcGxpYnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRmaW5h bGl6ZV9kZXBsaWJzIgotKwkgIGVsc2UKLSsJICAgIGNvbXBpbGVfZGVwbGlicz0iLWwkbmFtZSAt TCRkaXIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUg LUwkZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgIGZpCi0rCWVsaWYgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIE5vdCBhIHNoYXJlZCBsaWJyYXJ5Ci0rCSAg aWYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgotKwkgICAg IyBXZSdyZSB0cnlpbmcgbGluayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWluc3QgYSBzdGF0aWMgb25l Ci0rCSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KLSsKLSsJICAgICMg SnVzdCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBlbmRlbmN5X2xp YnMgc28KLSsJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhl IHN0YXRpYyBsaWJyYXJ5LgotKwkgICAgJGVjaG8KLSsJICAgICRlY2hvICIqKiogV2FybmluZzog VGhpcyBzeXN0ZW0gY2FuIG5vdCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAkbGliLiIKLSsJ ICAgICRlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5 IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkgICAgJGVjaG8gIioqKiB5b3UgbGluayB0 byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0r CSAgICAkZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3Ug ZG8gbm90IGFwcGVhciB0byBoYXZlLiIKLSsJICAgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0 aGVuCi0rCSAgICAgICRlY2hvICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUg bGlicmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCi0rCSAgICAgICRlY2hvICIqKiog YSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3Blbmlu ZyBhcHBsaWNhdGlvbiIKLSsJICAgICAgJGVjaG8gIioqKiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRs b3BlbiBmbGFnIHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIKLSsJICAgICAgaWYgdGVz dCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJCSRlY2hvCi0rCQkkZWNobyAiKioq IEhvd2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0 cmFjdCBzeW1ib2wiCi0rCQkkZWNobyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBc YG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKLSsJCSRlY2hvICIqKiogbm90 IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVz cy4iCi0rCQkkZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVi dWlsZCBtYXkgaGVscC4iCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRf bGlicyIgPSBubzsgdGhlbgotKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRf b2xkX2xpYnM9eWVzCi0rCSAgICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkg ICAgICBmaQotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGli cmFyeSAkZGVwbGlicyIKLSsJICAgIGxpbmtfc3RhdGljPXllcwotKwkgIGZpCi0rCWZpICMgbGlu ayBzaGFyZWQvc3RhdGljIGxpYnJhcnk/Ci0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7 IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgotKwkgICAgIHsgdGVz dCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8Ci0rCSAgICAgICB0ZXN0ICIkYnVpbGRf b2xkX2xpYnMiID0geWVzIHx8Ci0rCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9 OyB0aGVuCi0rCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMKLSsJICAgIHRl bXBfZGVwbGlicz0KLSsJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJ ICAgICAgY2FzZSAkbGliZGlyIGluCi0rCSAgICAgIC1SKikgdGVtcF94cnBhdGg9YCRlY2hvICJY JGxpYmRpciIgfCAkWHNlZCAtZSAncy9eLVIvLydgCi0rCQkgICBjYXNlICIgJHhycGF0aCAiIGlu Ci0rCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7Ci0rCQkgICAqKSB4cnBhdGg9IiR4cnBhdGgg JHRlbXBfeHJwYXRoIjs7Ci0rCQkgICBlc2FjOzsKLSsJICAgICAgKikgdGVtcF9kZXBsaWJzPSIk dGVtcF9kZXBsaWJzICRsaWJkaXIiOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAg ZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJzIgotKwkgIGZpCi0rCi0rCSAgbmV3bGliX3Nl YXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRhYnNkaXIiCi0rCSAgIyBMaW5rIGFnYWlu c3QgdGhpcyBsaWJyYXJ5Ci0rCSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVu ZGVuY3lfbGlicz0iJGFic19sYWRpci8kbGFuYW1lICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAg IyAuLi4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVw bGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRk ZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIGlmIHRlc3QgIlgkZHVwbGljYXRlX2Rl cHMiID0gIlh5ZXMiIDsgdGhlbgotKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgotKwkgICAg ICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIi IDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRk ZXBsaWIiCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBu bzsgdGhlbgotKwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBs aWJyYXJpZXMKLSsJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAg ICAgY2FzZSAkZGVwbGliIGluCi0rCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKLSsJICAg ICAgKi5sYSkKLSsJCWRpcj1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQl JSdgCi0rCQl0ZXN0ICJYJGRpciIgPSAiWCRkZXBsaWIiICYmIGRpcj0iLiIKLSsJCSMgV2UgbmVl ZCBhbiBhYnNvbHV0ZSBwYXRoLgotKwkJY2FzZSAkZGlyIGluCi0rCQlbXFwvXSogfCBbQS1aYS16 XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsKLSsJCSopCi0rCQkgIGFic2Rpcj1gY2QgIiRkaXIi ICYmIHB3ZGAKLSsJCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KLSsJCSAgICAkZWNobyAi JG1vZGVuYW1lOiB3YXJuaW5nOiBjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBu YW1lIG9mIFxgJGRpciciIDE+JjIKLSsJCSAgICBhYnNkaXI9IiRkaXIiCi0rCQkgIGZpCi0rCQkg IDs7Ci0rCQllc2FjCi0rCQlpZiBncmVwICJeaW5zdGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9u dWxsOyB0aGVuCi0rCQkgIHBhdGg9IiRhYnNkaXIvJG9iamRpciIKLSsJCWVsc2UKLSsJCSAgZXZh bCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAK LSsJCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJCSAgICAkZWNobyAiJG1vZGVuYW1l OiBcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgotKwkJICAg IGV4aXQgJEVYSVRfRkFJTFVSRQotKwkJICBmaQotKwkJICBpZiB0ZXN0ICIkYWJzZGlyIiAhPSAi JGxpYmRpciI7IHRoZW4KLSsJCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYCRkZXBs aWInIHNlZW1zIHRvIGJlIG1vdmVkIiAxPiYyCi0rCQkgIGZpCi0rCQkgIHBhdGg9IiRhYnNkaXIi Ci0rCQlmaQotKwkJZGVwZGVwbD0KLSsJCWNhc2UgJGhvc3QgaW4KLSsJCSotKi1kYXJ3aW4qKQot KwkJICAjIHdlIGRvIG5vdCB3YW50IHRvIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicywKLSsJCSAg IyBidXQgbmVlZCB0byBsaW5rIGFnYWluc3Qgc2hhcmVkCi0rCQkgIGV2YWwgZGVwbGlicmFyeV9u YW1lcz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxp YmAKLSsJCSAgZXZhbCBkZXBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQv XDEvcCcgJGRlcGxpYmAKLSsJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhl bgotKwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbwotKwkJICAgICAgZGVw ZGVwbD0kdG1wCi0rCQkgICAgZG9uZQotKwkJICAgIGlmIHRlc3QgLWYgIiRkZXBsaWJkaXIvJGRl cGRlcGwiIDsgdGhlbgotKwkJICAgICAgZGVwZGVwbD0iJGRlcGxpYmRpci8kZGVwZGVwbCIKLSsJ ICAgICAgCSAgICBlbGlmIHRlc3QgLWYgIiRwYXRoLyRkZXBkZXBsIiA7IHRoZW4KLSsJCSAgICAg IGRlcGRlcGw9IiRwYXRoLyRkZXBkZXBsIgotKwkJICAgIGVsc2UKLSsJCSAgICAgICMgQ2FuJ3Qg ZmluZCBpdCwgb2ggd2VsbC4uLgotKwkJICAgICAgZGVwZGVwbD0KLSsJCSAgICBmaQotKwkJICAg ICMgZG8gbm90IGFkZCBwYXRocyB3aGljaCBhcmUgYWxyZWFkeSB0aGVyZQotKwkJICAgIGNhc2Ug IiAkbmV3bGliX3NlYXJjaF9wYXRoICIgaW4KLSsJCSAgICAqIiAkcGF0aCAiKikgOzsKLSsJCSAg ICAqKSBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJHBhdGgiOzsKLSsJ CSAgICBlc2FjCi0rCQkgIGZpCi0rCQkgIHBhdGg9IiIKLSsJCSAgOzsKLSsJCSopCi0rCQkgIHBh dGg9Ii1MJHBhdGgiCi0rCQkgIDs7Ci0rCQllc2FjCi0rCQk7OwotKwkgICAgICAtbCopCi0rCQlj YXNlICRob3N0IGluCi0rCQkqLSotZGFyd2luKikKLSsJCSAgIyBBZ2Fpbiwgd2Ugb25seSB3YW50 IHRvIGxpbmsgYWdhaW5zdCBzaGFyZWQgbGlicmFyaWVzCi0rCQkgIGV2YWwgdG1wX2xpYnM9YCRl Y2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAicyxeXC1sLCwiYAotKwkJICBmb3IgdG1wIGluICRu ZXdsaWJfc2VhcmNoX3BhdGggOyBkbwotKwkJICAgIGlmIHRlc3QgLWYgIiR0bXAvbGliJHRtcF9s aWJzLmR5bGliIiA7IHRoZW4KLSsJCSAgICAgIGV2YWwgZGVwZGVwbD0iJHRtcC9saWIkdG1wX2xp YnMuZHlsaWIiCi0rCQkgICAgICBicmVhawotKwkJICAgIGZpCi0rCQkgIGRvbmUKLSsJCSAgcGF0 aD0iIgotKwkJICA7OwotKwkJKikgY29udGludWUgOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCSAgICAg ICopIGNvbnRpbnVlIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgY2FzZSAiICRkZXBsaWJzICIg aW4KLSsJICAgICAgKiIgJHBhdGggIiopIDs7Ci0rCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRk ZXBsaWJzIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGNhc2UgIiAkZGVwbGlicyAiIGluCi0r CSAgICAgICoiICRkZXBkZXBsICIqKSA7OwotKwkgICAgICAqKSBkZXBsaWJzPSIkZGVwZGVwbCAk ZGVwbGlicyIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGZpICMgbGlua19hbGxf ZGVwbGlicyAhPSBubwotKwlmaSAjIGxpbmttb2RlID0gbGliCi0rICAgICAgZG9uZSAjIGZvciBk ZXBsaWIgaW4gJGxpYnMKLSsgICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xp YnMiCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCi0rCSMgTGluayB0 aGUgZGxwcmVvcGVuZWQgbGlicmFyaWVzIGJlZm9yZSBvdGhlciBsaWJyYXJpZXMKLSsJZm9yIGRl cGxpYiBpbiAkc2F2ZV9kZXBsaWJzOyBkbwotKwkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi Ci0rCWRvbmUKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBkbG9wZW47IHRo ZW4KLSsJaWYgdGVzdCAiJHBhc3MiICE9IGNvbnY7IHRoZW4KLSsJICAjIE1ha2Ugc3VyZSBsaWJf c2VhcmNoX3BhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgbGliX3Nl YXJjaF9wYXRoPQotKwkgIGZvciBkaXIgaW4gJG5ld2xpYl9zZWFyY2hfcGF0aDsgZG8KLSsJICAg IGNhc2UgIiRsaWJfc2VhcmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGRpciAiKikgOzsKLSsJICAg ICopIGxpYl9zZWFyY2hfcGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIiA7OwotKwkgICAgZXNh YwotKwkgIGRvbmUKLSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9Ci0rCWZpCi0rCi0rCWlmIHRlc3Qg IiRsaW5rbW9kZSwkcGFzcyIgIT0gInByb2csbGluayI7IHRoZW4KLSsJICB2YXJzPSJkZXBsaWJz IgotKwllbHNlCi0rCSAgdmFycz0iY29tcGlsZV9kZXBsaWJzIGZpbmFsaXplX2RlcGxpYnMiCi0r CWZpCi0rCWZvciB2YXIgaW4gJHZhcnMgZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICMgQWRkIGxp YnJhcmllcyB0byAkdmFyIGluIHJldmVyc2Ugb3JkZXIKLSsJICBldmFsIHRtcF9saWJzPVwiXCQk dmFyXCIKLSsJICBuZXdfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICR0bXBfbGliczsgZG8KLSsJ ICAgICMgRklYTUU6IFBlZGFudGljYWxseSwgdGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8s IHNvCi0rCSAgICAjICAgICAgICB0aGF0IHNvbWUgbmFzdHkgZGVwZW5kZW5jeSBsb29wIGlzbid0 IGFjY2lkZW50YWxseQotKwkgICAgIyAgICAgICAgYnJva2VuOgotKwkgICAgI25ld19saWJzPSIk ZGVwbGliICRuZXdfbGlicyIKLSsJICAgICMgUHJhZ21hdGljYWxseSwgdGhpcyBzZWVtcyB0byBj YXVzZSB2ZXJ5IGZldyBwcm9ibGVtcyBpbgotKwkgICAgIyBwcmFjdGljZToKLSsJICAgIGNhc2Ug JGRlcGxpYiBpbgotKwkgICAgLUwqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0r CSAgICAtUiopIDs7Ci0rCSAgICAqKQotKwkgICAgICAjIEFuZCBoZXJlIGlzIHRoZSByZWFzb246 IHdoZW4gYSBsaWJyYXJ5IGFwcGVhcnMgbW9yZQotKwkgICAgICAjIHRoYW4gb25jZSBhcyBhbiBl eHBsaWNpdCBkZXBlbmRlbmNlIG9mIGEgbGlicmFyeSwgb3IKLSsJICAgICAgIyBpcyBpbXBsaWNp dGx5IGxpbmtlZCBpbiBtb3JlIHRoYW4gb25jZSBieSB0aGUKLSsJICAgICAgIyBjb21waWxlciwg aXQgaXMgY29uc2lkZXJlZCBzcGVjaWFsLCBhbmQgbXVsdGlwbGUKLSsJICAgICAgIyBvY2N1cnJl bmNlcyB0aGVyZW9mIGFyZSBub3QgcmVtb3ZlZC4gIENvbXBhcmUgdGhpcwotKwkgICAgICAjIHdp dGggaGF2aW5nIHRoZSBzYW1lIGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFzIGEKLSsJICAgICAgIyBk ZXBlbmRlbmN5IG9mIG11bHRpcGxlIG90aGVyIGxpYnJhcmllczogaW4gdGhpcyBjYXNlLAotKwkg ICAgICAjIHdlIGtub3cgKHBlZGFudGljYWxseSwgd2UgYXNzdW1lKSB0aGUgbGlicmFyeSBkb2Vz IG5vdAotKwkgICAgICAjIG5lZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBr ZWVwIG9ubHkgdGhlCi0rCSAgICAgICMgbGFzdCBjb3B5LiAgVGhpcyBpcyBub3QgYWx3YXlzIHJp Z2h0LCBidXQgaXQgaXMgcmFyZQotKwkgICAgICAjIGVub3VnaCB0aGF0IHdlIHJlcXVpcmUgdXNl cnMgdGhhdCByZWFsbHkgbWVhbiB0byBwbGF5Ci0rCSAgICAgICMgc3VjaCB1bnBvcnRhYmxlIGxp bmtpbmcgdHJpY2tzIHRvIGxpbmsgdGhlIGxpYnJhcnkKLSsJICAgICAgIyB1c2luZyAtV2wsLWxu YW1lLCBzbyB0aGF0IGxpYnRvb2wgZG9lcyBub3QgY29uc2lkZXIgaXQKLSsJICAgICAgIyBmb3Ig ZHVwbGljYXRlIHJlbW92YWwuCi0rCSAgICAgIGNhc2UgIiAkc3BlY2lhbGRlcGxpYnMgIiBpbgot KwkgICAgICAqIiAkZGVwbGliICIqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0r CSAgICAgICopCi0rCQljYXNlICIgJG5ld19saWJzICIgaW4KLSsJCSoiICRkZXBsaWIgIiopIDs7 Ci0rCQkqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7Ci0rCQllc2FjCi0rCQk7Owot KwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwkgIHRtcF9s aWJzPQotKwkgIGZvciBkZXBsaWIgaW4gJG5ld19saWJzOyBkbwotKwkgICAgY2FzZSAkZGVwbGli IGluCi0rCSAgICAtTCopCi0rCSAgICAgIGNhc2UgIiAkdG1wX2xpYnMgIiBpbgotKwkgICAgICAq IiAkZGVwbGliICIqKSA7OwotKwkgICAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIi IDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgICopIHRtcF9saWJzPSIkdG1wX2xp YnMgJGRlcGxpYiIgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lCi0rCSAgZXZhbCAkdmFyPVwiJHRt cF9saWJzXCIKLSsJZG9uZSAjIGZvciB2YXIKLSsgICAgICBmaQotKyAgICAgICMgTGFzdCBzdGVw OiByZW1vdmUgcnVudGltZSBsaWJzIGZyb20gZGVwZW5kZW5jeV9saWJzCi0rICAgICAgIyAodGhl eSBzdGF5IGluIGRlcGxpYnMpCi0rICAgICAgdG1wX2xpYnM9Ci0rICAgICAgZm9yIGkgaW4gJGRl cGVuZGVuY3lfbGlicyA7IGRvCi0rCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgJGNvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aCAiIGluCi0rCSoiICRpICIqKQotKwkgIGk9IiIKLSsJICA7OwotKwll c2FjCi0rCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KLSsJICB0bXBfbGlicz0iJHRtcF9saWJzICRp IgotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBkZXBlbmRlbmN5X2xpYnM9JHRtcF9saWJzCi0r ICAgIGRvbmUgIyBmb3IgcGFzcwotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhl bgotKyAgICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgotKyAgICAgIGRscHJlZmlsZXM9IiRuZXdk bHByZWZpbGVzIgotKyAgICBmaQotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBvbGRs aWIpCi0rICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAgICAgICpcIC1sKiB8ICpcIC1MKikK LSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVk IGZvciBhcmNoaXZlcyIgMT4mMiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBpZiB0ZXN0IC1u ICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKwkk ZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFyY2hp dmVzIiAxPiYyCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVu Ci0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBh cmNoaXZlcyIgMT4mMgotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7 IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtUicgaXMgaWdub3JlZCBmb3Ig YXJjaGl2ZXMiIDE+JjIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7 IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZvLy12ZXJz aW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIKLSsgICAgICBmaQotKwot KyAgICAgIGlmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiB3 YXJuaW5nOiBcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgotKyAgICAg IGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIk ZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6 IFxgLWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgotKyAgICAg IGZpCi0rCi0rICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBs aWJyYXJpZXMuCi0rICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rICAgICAgb2xkbGlicz0i JG91dHB1dCIKLSsgICAgICBvYmpzPSIkb2JqcyRvbGRfZGVwbGlicyIKLSsgICAgICA7OwotKwot KyAgICBsaWIpCi0rICAgICAgIyBNYWtlIHN1cmUgd2Ugb25seSBnZW5lcmF0ZSBsaWJyYXJpZXMg b2YgdGhlIGZvcm0gYGxpYk5BTUUubGEnLgotKyAgICAgIGNhc2UgJG91dHB1dG5hbWUgaW4KLSsg ICAgICBsaWIqKQotKwluYW1lPWAkZWNobyAiWCRvdXRwdXRuYW1lIiB8ICRYc2VkIC1lICdzL1wu bGEkLy8nIC1lICdzL15saWIvLydgCi0rCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wi Ci0rCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgotKwk7OwotKyAgICAgICopCi0rCWlm IHRlc3QgIiRtb2R1bGUiID0gbm87IHRoZW4KLSsJICAkZWNobyAiJG1vZGVuYW1lOiBsaWJ0b29s IGxpYnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJlZ2luIHdpdGggXGBsaWInIiAxPiYyCi0rCSAgJGVj aG8gIiRoZWxwIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCWlmIHRlc3Qg IiRuZWVkX2xpYl9wcmVmaXgiICE9IG5vOyB0aGVuCi0rCSAgIyBBZGQgdGhlICJsaWIiIHByZWZp eCBmb3IgbW9kdWxlcyBpZiByZXF1aXJlZAotKwkgIG5hbWU9YCRlY2hvICJYJG91dHB1dG5hbWUi IHwgJFhzZWQgLWUgJ3MvXC5sYSQvLydgCi0rCSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9j bWRzXCIKLSsJICBldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIKLSsJZWxzZQotKwkgIGxp Ym5hbWU9YCRlY2hvICJYJG91dHB1dG5hbWUiIHwgJFhzZWQgLWUgJ3MvXC5sYSQvLydgCi0rCWZp Ci0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgot KwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rCSAg JGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQn IGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiIDI+JjEKLSsJICBl eGl0ICRFWElUX0ZBSUxVUkUKLSsJZWxzZQotKwkgICRlY2hvCi0rCSAgJGVjaG8gIioqKiBXYXJu aW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1s aWJ0b29sIgotKwkgICRlY2hvICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgot KwkgIGxpYm9ianM9IiRsaWJvYmpzICRvYmpzIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAg aWYgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2Fybmlu ZzogXGAtZGxvcGVuIHNlbGYnIGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wgbGlicmFyaWVzIiAxPiYy Ci0rICAgICAgZmkKLSsKLSsgICAgICBzZXQgZHVtbXkgJHJwYXRoCi0rICAgICAgaWYgdGVzdCAi JCMiIC1ndCAyOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGlnbm9yaW5nIG11 bHRpcGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IiAxPiYyCi0rICAgICAgZmkK LSsgICAgICBpbnN0YWxsX2xpYmRpcj0iJDIiCi0rCi0rICAgICAgb2xkbGlicz0KLSsgICAgICBp ZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVuCi0rCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0geWVzOyB0aGVuCi0rCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFy eS4KLSsJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVu c2lvbiBzbwotKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1l IGV4dGVuc2lvbiBhbgotKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4KLSsJICBvbGRsaWJz PSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgotKwkgIGJ1aWxkX2xp YnRvb2xfbGlicz1jb252ZW5pZW5jZQotKwkgIGJ1aWxkX29sZF9saWJzPXllcwotKwlmaQotKwot KwlpZiB0ZXN0IC1uICIkdmluZm8iOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2Fybmlu ZzogXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgY29udmVu aWVuY2UgbGlicmFyaWVzIiAxPiYyCi0rCWZpCi0rCi0rCWlmIHRlc3QgLW4gIiRyZWxlYXNlIjsg dGhlbgotKwkgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9y ZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIgMT4mMgotKwlmaQotKyAgICAgIGVsc2UKLSsK LSsJIyBQYXJzZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVudC4KLSsJc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JzonCi0rCXNldCBkdW1teSAkdmluZm8gMCAwIDAKLSsJSUZTPSIkc2F2ZV9p ZnMiCi0rCi0rCWlmIHRlc3QgLW4gIiQ4IjsgdGhlbgotKwkgICRlY2hvICIkbW9kZW5hbWU6IHRv byBtYW55IHBhcmFtZXRlcnMgdG8gXGAtdmVyc2lvbi1pbmZvJyIgMT4mMgotKwkgICRlY2hvICIk aGVscCIgMT4mMgotKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwlmaQotKwotKwkjIGNvbnZlcnQg YWJzb2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcwotKwkjIHRoaXMgcmV0YWlu cyBjb21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0cwotKwkjIHRvIG1ha2Ug dGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJsZQotKwotKwljYXNlICR2aW5m b19udW1iZXIgaW4KLSsJeWVzKQotKwkgIG51bWJlcl9tYWpvcj0iJDIiCi0rCSAgbnVtYmVyX21p bm9yPSIkMyIKLSsJICBudW1iZXJfcmV2aXNpb249IiQ0IgotKwkgICMKLSsJICAjIFRoZXJlIGFy ZSByZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAotKwkgICMgdXNlIHRoZSBjdXJy ZW50IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCi0rCSAgIyBhbmQgdGhvc2UgdGhhdCBz dWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKLSsJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwg dGhlbiB0aGVyZSBpcyBpcml4Ci0rCSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0 IGZvciBmdW4KLSsJICAjCi0rCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgZGFyd2lufGxp bnV4fG9zZnx3aW5kb3dzfG5vbmUpCi0rCSAgICBjdXJyZW50PWBleHByICRudW1iZXJfbWFqb3Ig KyAkbnVtYmVyX21pbm9yYAotKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgotKwkgICAgcmV2aXNp b249IiRudW1iZXJfcmV2aXNpb24iCi0rCSAgICA7OwotKwkgIGZyZWVic2QtYW91dHxmcmVlYnNk LWVsZnxzdW5vcykKLSsJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCi0rCSAgICByZXZpc2lv bj0iJG51bWJlcl9taW5vciIKLSsJICAgIGFnZT0iMCIKLSsJICAgIDs7Ci0rCSAgaXJpeHxub25z dG9wdXgpCi0rCSAgICBjdXJyZW50PWBleHByICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9y YAotKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgotKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlu b3IiCi0rCSAgICBsdF9pcml4X2luY3JlbWVudD1ubwotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAg OzsKLSsJbm8pCi0rCSAgY3VycmVudD0iJDIiCi0rCSAgcmV2aXNpb249IiQzIgotKwkgIGFnZT0i JDQiCi0rCSAgOzsKLSsJZXNhYwotKwotKwkjIENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhpbmdz IGFyZSB2YWxpZCBudW1iZXJzLgotKwljYXNlICRjdXJyZW50IGluCi0rCTB8WzEtOV18WzEtOV1b MC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTld WzAtOV1bMC05XSkgOzsKLSsJKikKLSsJICAkZWNobyAiJG1vZGVuYW1lOiBDVVJSRU5UIFxgJGN1 cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCi0rCSAgJGVjaG8gIiRt b2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYy Ci0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNlICRyZXZp c2lvbiBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1b MC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgJGVjaG8g IiRtb2RlbmFtZTogUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBp bnRlZ2VyIiAxPiYyCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxp ZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAg OzsKLSsJZXNhYwotKwotKwljYXNlICRhZ2UgaW4KLSsJMHxbMS05XXxbMS05XVswLTldfFsxLTld WzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTld KSA7OwotKwkqKQotKwkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIG11c3QgYmUgYSBu b25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8n IGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9G QUlMVVJFCi0rCSAgOzsKLSsJZXNhYwotKwotKwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50 IjsgdGhlbgotKwkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhh biB0aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIiAxPiYyCi0rCSAgJGVj aG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9u IiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCi0rCSMgQ2FsY3VsYXRlIHRo ZSB2ZXJzaW9uIHZhcmlhYmxlcy4KLSsJbWFqb3I9Ci0rCXZlcnN1ZmZpeD0KLSsJdmVyc3RyaW5n PQotKwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJbm9uZSkgOzsKLSsKLSsJZGFyd2luKQotKwkg ICMgTGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBhdmFpbGFibGUgaW4K LSsJICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCi0r CSAgbWFqb3I9LmBleHByICRjdXJyZW50IC0gJGFnZWAKLSsJICB2ZXJzdWZmaXg9IiRtYWpvci4k YWdlLiRyZXZpc2lvbiIKLSsJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ug b3B0aW9ucy4uLgotKwkgIG1pbm9yX2N1cnJlbnQ9YGV4cHIgJGN1cnJlbnQgKyAxYAotKwkgIHhs Y3ZlcnN0cmluZz0iJHt3bH0tY29tcGF0aWJpbGl0eV92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJl bnQgJHt3bH0tY3VycmVudF92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgot KwkgIHZlcnN0cmluZz0iLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkbWlub3JfY3VycmVudCAtY3Vy cmVudF92ZXJzaW9uICRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlmcmVl YnNkLWFvdXQpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVu dC4kcmV2aXNpb24iOwotKwkgIDs7Ci0rCi0rCWZyZWVic2QtZWxmKQotKwkgIG1ham9yPSIuJGN1 cnJlbnQiCi0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiOwotKwkgIDs7Ci0rCi0rCWlyaXggfCBu b25zdG9wdXgpCi0rCSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhl bgotKwkgICAgbWFqb3I9YGV4cHIgJGN1cnJlbnQgLSAkYWdlYAotKwkgIGVsc2UKLSsJICAgIG1h am9yPWBleHByICRjdXJyZW50IC0gJGFnZSArIDFgCi0rCSAgZmkKLSsJICBjYXNlICR2ZXJzaW9u X3R5cGUgaW4KLSsJICAgIG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1ub25zdG9wdXggOzsK LSsJICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKLSsJICBlc2FjCi0rCSAg dmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kcmV2aXNpb24iCi0rCi0rCSAgIyBB ZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJ ICBsb29wPSRyZXZpc2lvbgotKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAg IGlmYWNlPWBleHByICRyZXZpc2lvbiAtICRsb29wYAotKwkgICAgbG9vcD1gZXhwciAkbG9vcCAt IDFgCi0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVy c3RyaW5nIgotKwkgIGRvbmUKLSsKLSsJICAjIEJlZm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVz dCBub3QgY29udGFpbiBgLicuCi0rCSAgbWFqb3I9LiRtYWpvcgotKwkgIHZlcnN1ZmZpeD0iJG1h am9yLiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlsaW51eCkKLSsJICBtYWpvcj0uYGV4cHIgJGN1 cnJlbnQgLSAkYWdlYAotKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgotKwkg IDs7Ci0rCi0rCW9zZikKLSsJICBtYWpvcj0uYGV4cHIgJGN1cnJlbnQgLSAkYWdlYAotKwkgIHZl cnN1ZmZpeD0iLiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgotKwkgIHZlcnN0cmluZz0iJGN1cnJl bnQuJGFnZS4kcmV2aXNpb24iCi0rCi0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRo YXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJICBsb29wPSRhZ2UKLSsJICB3aGlsZSB0ZXN0 ICIkbG9vcCIgLW5lIDA7IGRvCi0rCSAgICBpZmFjZT1gZXhwciAkY3VycmVudCAtICRsb29wYAot KwkgICAgbG9vcD1gZXhwciAkbG9vcCAtIDFgCi0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6 JHtpZmFjZX0uMCIKLSsJICBkb25lCi0rCi0rCSAgIyBNYWtlIGV4ZWN1dGFibGVzIGRlcGVuZCBv biBvdXIgY3VycmVudCB2ZXJzaW9uLgotKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2N1cnJl bnR9LjAiCi0rCSAgOzsKLSsKLSsJc3Vub3MpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2 ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCi0rCSAgOzsKLSsKLSsJd2luZG93cykKLSsJ ICAjIFVzZSAnLScgcmF0aGVyIHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5IHdhbnQgb25lCi0rCSAg IyBleHRlbnNpb24gb24gRE9TIDguMyBmaWxlc3lzdGVtcy4KLSsJICBtYWpvcj1gZXhwciAkY3Vy cmVudCAtICRhZ2VgCi0rCSAgdmVyc3VmZml4PSItJG1ham9yIgotKwkgIDs7Ci0rCi0rCSopCi0r CSAgJGVjaG8gIiRtb2RlbmFtZTogdW5rbm93biBsaWJyYXJ5IHZlcnNpb24gdHlwZSBcYCR2ZXJz aW9uX3R5cGUnIiAxPiYyCi0rCSAgJGVjaG8gIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJyb3IuICBT ZWUgdGhlICRQQUNLQUdFIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCi0rCSAgZXhp dCAkRVhJVF9GQUlMVVJFCi0rCSAgOzsKLSsJZXNhYwotKwotKwkjIENsZWFyIHRoZSB2ZXJzaW9u IGluZm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZpZWQgYSByZWxlYXNlLgotKwlp ZiB0ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgotKwkgIG1ham9y PQotKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKwkgIGRhcndpbikKLSsJICAgICMgd2UgY2Fu J3QgY2hlY2sgZm9yICIwLjAiIGluIGFyY2hpdmVfY21kcyBkdWUgdG8gcXVvdGluZwotKwkgICAg IyBwcm9ibGVtcywgc28gd2UgcmVzZXQgaXQgY29tcGxldGVseQotKwkgICAgdmVyc3RyaW5nPQot KwkgICAgOzsKLSsJICAqKQotKwkgICAgdmVyc3RyaW5nPSIwLjAiCi0rCSAgICA7OwotKwkgIGVz YWMKLSsJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCi0rCSAgICB2ZXJzdWZm aXg9Ci0rCSAgZWxzZQotKwkgICAgdmVyc3VmZml4PSIuMC4wIgotKwkgIGZpCi0rCWZpCi0rCi0r CSMgUmVtb3ZlIHZlcnNpb24gaW5mbyBmcm9tIG5hbWUgaWYgdmVyc2lvbmluZyBzaG91bGQgYmUg YXZvaWRlZAotKwlpZiB0ZXN0ICIkYXZvaWRfdmVyc2lvbiIgPSB5ZXMgJiYgdGVzdCAiJG5lZWRf dmVyc2lvbiIgPSBubzsgdGhlbgotKwkgIG1ham9yPQotKwkgIHZlcnN1ZmZpeD0KLSsJICB2ZXJz dHJpbmc9IiIKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgaWYgdGhlIGFyY2hpdmUgd2lsbCBo YXZlIHVuZGVmaW5lZCBzeW1ib2xzLgotKwlpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IHll czsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWRfZmxhZyIgPSB1bnN1cHBvcnRl ZDsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogdW5kZWZpbmVkIHN5bWJv bHMgbm90IGFsbG93ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIgMT4mMgotKwkgICAgYnVp bGRfbGlidG9vbF9saWJzPW5vCi0rCSAgICBidWlsZF9vbGRfbGlicz15ZXMKLSsJICBmaQotKwll bHNlCi0rCSAgIyBEb24ndCBhbGxvdyB1bmRlZmluZWQgc3ltYm9scy4KLSsJICBhbGxvd191bmRl ZmluZWRfZmxhZz0iJG5vX3VuZGVmaW5lZF9mbGFnIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAg ICAgaWYgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgotKwkjIFJlbW92ZSBvdXIgb3V0cHV0 cywgYnV0IGRvbid0IHJlbW92ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhleQotKwkjIG1heSBoYXZl IGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KLSsJcmVtb3ZlbGlzdD0K LSsJdGVtcHJlbW92ZWxpc3Q9YCRlY2hvICIkb3V0cHV0X29iamRpci8qImAKLSsJZm9yIHAgaW4g JHRlbXByZW1vdmVsaXN0OyBkbwotKwkgIGNhc2UgJHAgaW4KLSsJICAgICouJG9iamV4dCkKLSsJ ICAgICAgIDs7Ci0rCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQot KwkgICAgICAgaWYgdGVzdCAiWCRwcmVjaW91c19maWxlc19yZWdleCIgIT0gIlgiOyB0aGVuCi0r CSAgICAgICAgIGlmIGVjaG8gJHAgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIg Pi9kZXYvbnVsbCAyPiYxCi0rCSAgICAgICAgIHRoZW4KLSsJCSAgIGNvbnRpbnVlCi0rCQkgZmkK LSsJICAgICAgIGZpCi0rCSAgICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkcCIKLSsJICAg ICAgIDs7Ci0rCSAgICAqKSA7OwotKwkgIGVzYWMKLSsJZG9uZQotKwlpZiB0ZXN0IC1uICIkcmVt b3ZlbGlzdCI7IHRoZW4KLSsJICAkc2hvdyAiJHtybX1yICRyZW1vdmVsaXN0IgotKwkgICRydW4g JHtybX1yICRyZW1vdmVsaXN0Ci0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE5vdyBzZXQg dGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KLSsgICAgICBpZiB0ZXN0 ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9 IGNvbnZlbmllbmNlIDsgdGhlbgotKwlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8k bGlibmFtZS4kbGliZXh0IgotKwotKwkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMu Ci0rCW9sZG9ianM9IiRvYmpzICJgJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAt ZSAnL1wuJyR7bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rICAgICAgZmkKLSsK LSsgICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgotKyAgICAgICNm b3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbwotKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAk ZWNobyAiJGxpYl9zZWFyY2hfcGF0aCAiIHwgJHtTRUR9IC1lICJzJSAkcGF0aCAlICVnImAKLSsg ICAgICAjCWRlcGxpYnM9YCRlY2hvICIkZGVwbGlicyAiIHwgJHtTRUR9IC1lICJzJSAtTCRwYXRo ICUgJWciYAotKyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkZWNobyAiJGRlcGVuZGVuY3lfbGli cyAiIHwgJHtTRUR9IC1lICJzJSAtTCRwYXRoICUgJWciYAotKyAgICAgICNkb25lCi0rCi0rICAg ICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KLSsJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQg YW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgotKwl0ZW1wX3hycGF0aD0KLSsJZm9yIGxp YmRpciBpbiAkeHJwYXRoOyBkbwotKwkgIHRlbXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGli ZGlyIgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikg OzsKLSsJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7Ci0r CSAgZXNhYwotKwlkb25lCi0rCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8 fCB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCi0rCSAgZGVwZW5kZW5jeV9saWJz PSIkdGVtcF94cnBhdGggJGRlcGVuZGVuY3lfbGlicyIKLSsJZmkKLSsgICAgICBmaQotKwotKyAg ICAgICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3 b24ndCBiZSBkbHByZW9wZW5lZAotKyAgICAgIG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKLSsgICAg ICBkbGZpbGVzPQotKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVzOyBkbwotKwljYXNlICIg JGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgotKwkqIiAkbGliICIqKSA7OwotKwkqKSBkbGZpbGVz PSIkZGxmaWxlcyAkbGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKwotKyAgICAgICMgTWFr ZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKLSsgICAgICBvbGRf ZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMiCi0rICAgICAgZGxwcmVmaWxlcz0KLSsgICAgICBmb3Ig bGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8KLSsJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgotKwkq IiAkbGliICIqKSA7OwotKwkqKSBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OwotKwll c2FjCi0rICAgICAgZG9uZQotKwotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ID0geWVzOyB0aGVuCi0rCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KLSsJICBjYXNlICRob3N0 IGluCi0rCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiog fCAqLSotYmVvcyopCi0rCSAgICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBh IGMgbGlicmFyeSAoYXMgc3VjaCkhCi0rCSAgICA7OwotKwkgICotKi1yaGFwc29keSogfCAqLSot ZGFyd2luMS5bMDEyXSkKLSsJICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5IGlzIGluIHRoZSBTeXN0 ZW0gZnJhbWV3b3JrCi0rCSAgICBkZXBsaWJzPSIkZGVwbGlicyAtZnJhbWV3b3JrIFN5c3RlbSIK LSsJICAgIDs7Ci0rCSAgKi0qLW5ldGJzZCopCi0rCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJj IHVudGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhlZC4KLSsJICAgIDs7Ci0rCSAgKi0qLW9wZW5i c2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCi0rCSAgICAjIERvIG5vdCBpbmNs dWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KLSsJICAgIDs7Ci0rCSAgKi0q LXNjbzMuMnY1KiB8ICotKi1zY281djYqKQotKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBf X2N0eXBlCi0rCSAgICA7OwotKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSot dW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKLSsJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJj IGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKLSsJICAgIDs7Ci0rIAkg ICopCi0rCSAgICAjIEFkZCBsaWJjIHRvIGRlcGxpYnMgb24gYWxsIG90aGVyIHN5c3RlbXMgaWYg bmVjZXNzYXJ5LgotKwkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVz IjsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGlicyAtbGMiCi0rCSAgICBmaQotKwkgICAg OzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCSMgVHJhbnNmb3JtIGRlcGxpYnMgaW50byBvbmx5IGRl cGxpYnMgdGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4KLSsJbmFtZV9zYXZlPSRuYW1lCi0r CWxpYm5hbWVfc2F2ZT0kbGlibmFtZQotKwlyZWxlYXNlX3NhdmU9JHJlbGVhc2UKLSsJdmVyc3Vm Zml4X3NhdmU9JHZlcnN1ZmZpeAotKwltYWpvcl9zYXZlPSRtYWpvcgotKwkjIEknbSBub3Qgc3Vy ZSBpZiBJJ20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0aGluawotKwkjIHJl bGVhc2Ugc2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNvIHdlIGRvbid0IHdh bnQgdG8KLSsJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/Ci0rCXJlbGVhc2U9 IiIKLSsJdmVyc3VmZml4PSIiCi0rCW1ham9yPSIiCi0rCW5ld2RlcGxpYnM9Ci0rCWRyb3BwZWRk ZXBzPW5vCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCXBhc3NfYWxsKQotKwkg ICMgRG9uJ3QgY2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgotKwkg ICMgVGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sK LSsJICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1dCB0aGlzIGlzIG9u Ci0rCSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZS4uLiBKdXN0Ci0rCSAg IyBpbXBsZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3IuCi0rCSAgbmV3ZGVw bGlicz0kZGVwbGlicwotKwkgIDs7Ci0rCXRlc3RfY29tcGlsZSkKLSsJICAjIFRoaXMgY29kZSBz dHJlc3NlcyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdtIHRvIGl0cwotKwkg ICMgbGltaXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUgYSBwcm9ncmFtLCBs aW5raW5nIGl0Ci0rCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9yIHRoZSBs aWJyYXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhleSBsaW5rZWQgaW4g c3RhdGljYWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4KLSsJICAkcm0gY29uZnRlc3QuYwot KwkgIGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKLSsJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0K LStFT0YKLSsJICAkcm0gY29uZnRlc3QKLSsJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRl c3QgY29uZnRlc3QuYyAkZGVwbGliczsgdGhlbgotKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0 ZXN0YAotKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICAgIG5hbWU9YGV4cHIgJGkg OiAnLWxcKC4qXCknYAotKwkgICAgICAjIElmICRuYW1lIGlzIGVtcHR5IHdlIGFyZSBvcGVyYXRp bmcgb24gYSAtTCBhcmd1bWVudC4KLSsgICAgICAgICAgICAgIGlmIHRlc3QgIiRuYW1lIiAhPSAi IiAmJiB0ZXN0ICIkbmFtZSIgIT0gIjAiOyB0aGVuCi0rCQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRv b2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQkgIGNhc2Ug IiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkJICAqIiAkaSAiKikKLSsJCSAgICBuZXdkZXBs aWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCSAgICBpPSIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwot KwkgICAgICAgIGZpCi0rCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0rCQkgIGxpYm5hbWU9YGV2 YWwgXFwkZWNobyBcIiRsaWJuYW1lX3NwZWNcImAKLSsJCSAgZGVwbGliX21hdGNoZXM9YGV2YWwg XFwkZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcImAKLSsJCSAgc2V0IGR1bW15ICRkZXBsaWJf bWF0Y2hlcwotKwkJICBkZXBsaWJfbWF0Y2g9JDIKLSsJCSAgaWYgdGVzdCBgZXhwciAiJGxkZF9v dXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgotKwkJICAgIG5ld2RlcGxp YnM9IiRuZXdkZXBsaWJzICRpIgotKwkJICBlbHNlCi0rCQkgICAgZHJvcHBlZGRlcHM9eWVzCi0r CQkgICAgJGVjaG8KLSsJCSAgICAkZWNobyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRv ZXMgbm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCi0rCQkgICAgJGVjaG8gIioqKiBJIGhh dmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5r IGluIHdoZW4iCi0rCQkgICAgJGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBC dXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkgICAgJGVjaG8gIioqKiBz aGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3Qg aGF2ZSIKLSsJCSAgICAkZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVh bCB0aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgotKwkJICAgICRlY2hvICIqKiog aXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdp dGggYXQgcnVudGltZS4iCi0rCQkgIGZpCi0rCQlmaQotKwkgICAgICBlbHNlCi0rCQluZXdkZXBs aWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJICBlbHNlCi0r CSAgICAjIEVycm9yIG9jY3VycmVkIGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRv IHNhbHZhZ2UKLSsJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dy YW0gZm9yIGVhY2ggbGlicmFyeS4KLSsJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbwotKwkgICAg ICBuYW1lPWBleHByICRpIDogJy1sXCguKlwpJ2AKLSsJICAgICAgIyBJZiAkbmFtZSBpcyBlbXB0 eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCi0rICAgICAgICAgICAgICBpZiB0 ZXN0ICIkbmFtZSIgIT0gIiIgJiYgdGVzdCAiJG5hbWUiICE9ICIwIjsgdGhlbgotKwkJJHJtIGNv bmZ0ZXN0Ci0rCQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsg dGhlbgotKwkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCi0rCQkgIGlmIHRlc3QgIlgkYWxs b3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJ CSAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSAgICAqIiAkaSAiKikKLSsJ CSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJICAgICAgaT0iIgotKwkJICAg ICAgOzsKLSsJCSAgICBlc2FjCi0rCQkgIGZpCi0rCQkgIGlmIHRlc3QgLW4gIiRpIiA7IHRoZW4K LSsJCSAgICBsaWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCi0rCQkgICAg ZGVwbGliX21hdGNoZXM9YGV2YWwgXFwkZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcImAKLSsJ CSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzCi0rCQkgICAgZGVwbGliX21hdGNoPSQyCi0r CQkgICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1u ZSAwIDsgdGhlbgotKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCi0rCQkgICAg ZWxzZQotKwkJICAgICAgZHJvcHBlZGRlcHM9eWVzCi0rCQkgICAgICAkZWNobwotKwkJICAgICAg JGVjaG8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVk IGxpYnJhcnkgJGkuIgotKwkJICAgICAgJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkg dG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkgICAg ICAkZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRv IHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSAgICAgICRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24g b2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkgICAg ICAkZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBs aW5rZXIgZGlkIG5vdCB1c2UgdGhpcyBvbmUiCi0rCQkgICAgICAkZWNobyAiKioqIGFzIGEgZHlu YW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1 bnRpbWUuIgotKwkJICAgIGZpCi0rCQkgIGZpCi0rCQllbHNlCi0rCQkgIGRyb3BwZWRkZXBzPXll cwotKwkJICAkZWNobwotKwkJICAkZWNobyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlzIG5l ZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgotKwkJICAkZWNobyAi KioqIG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBp dCBvciBzb21lIgotKwkJICAkZWNobyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBlbmRzIG9uIGJl Zm9yZSB0aGlzIGxpYnJhcnkgd2lsbCBiZSBmdWxseSIKLSsJCSAgJGVjaG8gIioqKiBmdW5jdGlv bmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRl ci4iCi0rCQlmaQotKwkgICAgICBlbHNlCi0rCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIK LSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJICBmaQotKwkgIDs7Ci0rCWZpbGVfbWFnaWMqKQot KwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2QKLSsJICBmaWxlX21hZ2ljX3JlZ2V4 PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipcKSJgCi0rCSAgZm9yIGFf ZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwkgICAgbmFtZT1gZXhwciAkYV9kZXBsaWIgOiAnLWxc KC4qXCknYAotKwkgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEg LUwgYXJndW1lbnQuCi0rICAgICAgICAgICAgaWYgdGVzdCAiJG5hbWUiICE9ICIiICYmIHRlc3Qg ICIkbmFtZSIgIT0gIjAiOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9s aWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCWNhc2UgIiAkcHJl ZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkJKiIgJGFfZGVwbGliICIqKQotKwkJICBuZXdkZXBsaWJz PSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCi0rCQkgIGFfZGVwbGliPSIiCi0rCQkgIDs7Ci0rCQll c2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCi0r CQlsaWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCi0rCQlmb3IgaSBpbiAk bGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsg ZG8KLSsJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxg Ci0rCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KLSsJCSAgICAgICMg Rm9sbG93IHNvZnQgbGlua3MuCi0rCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4v ZGV2L251bGwgXAotKwkJCSB8IGdyZXAgIiAtPiAiID4vZGV2L251bGw7IHRoZW4KLSsJCQljb250 aW51ZQotKwkJICAgICAgZmkKLSsJCSAgICAgICMgVGhlIHN0YXRlbWVudCBhYm92ZSB0cmllcyB0 byBhdm9pZCBlbnRlcmluZyBhbgotKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNh c2Ugb2YgY3ljbGljIGxpbmtzLgotKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBl bmRsZXNzIGxvb3AsIHNpbmNlIGEgbGluawotKwkJICAgICAgIyBsb29wIGNhbiBiZSBjbG9zZWQg d2hpbGUgd2UgZm9sbG93IGxpbmtzLAotKwkJICAgICAgIyBidXQgc28gd2hhdD8KLSsJCSAgICAg IHBvdGxpYj0iJHBvdGVudF9saWIiCi0rCQkgICAgICB3aGlsZSB0ZXN0IC1oICIkcG90bGliIiAy Pi9kZXYvbnVsbDsgZG8KLSsJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAn cy8uKiAtPiAvLydgCi0rCQkJY2FzZSAkcG90bGlibGluayBpbgotKwkJCVtcXC9dKiB8IFtBLVph LXpdOltcXC9dKikgcG90bGliPSIkcG90bGlibGluayI7OwotKwkJCSopIHBvdGxpYj1gJGVjaG8g IlgkcG90bGliIiB8ICRYc2VkIC1lICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsiOzsKLSsJCQll c2FjCi0rCQkgICAgICBkb25lCi0rCQkgICAgICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwk cG90bGliXCIgMj4vZGV2L251bGwgXAotKwkJCSB8ICR7U0VEfSAxMHEgXAotKwkJCSB8ICRFR1JF UCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCQkJbmV3ZGVwbGlicz0i JG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkJCWFfZGVwbGliPSIiCi0rCQkJYnJlYWsgMgotKwkJ ICAgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0 IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQkkZWNobwotKwkJ JGVjaG8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBm b3IgbGlicmFyeSAkYV9kZXBsaWIuIgotKwkJJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxp dHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkk ZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRo aXMgaWYgeW91IGhhdmUgYSIKLSsJCSRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxp YnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkkZWNobyAiKioqIGJl Y2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFy dGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkZWNobyAiKioqIHdp dGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1h Z2ljIHRlc3QpIgotKwkJZWxzZQotKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5v bmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKLSsJCSAgJGVj aG8gIioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgot KwkJZmkKLSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVu dC4KLSsJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkgICAgZmkK LSsJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgotKwkgIDs7Ci0rCW1hdGNoX3Bh dHRlcm4qKQotKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2QKLSsJICBtYXRjaF9w YXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipcKSJg Ci0rCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwkgICAgbmFtZT1gZXhwciAkYV9k ZXBsaWIgOiAnLWxcKC4qXCknYAotKwkgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3Bl cmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCi0rCSAgICBpZiB0ZXN0IC1uICIkbmFtZSIgJiYgdGVz dCAiJG5hbWUiICE9ICIwIjsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQljYXNlICIgJHBy ZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSoiICRhX2RlcGxpYiAiKikKLSsJCSAgbmV3ZGVwbGli cz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgotKwkJICBhX2RlcGxpYj0iIgotKwkJICA7OwotKwkJ ZXNhYwotKwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgot KwkJbGlibmFtZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wiYAotKwkJZm9yIGkgaW4g JGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7 IGRvCi0rCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxs YAotKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCi0rCQkgICAgcG90 bGliPSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBpbiBmaWxlX21hZ2lj IHRlc3QKLSsJCSAgICBpZiBldmFsICRlY2hvIFwiJHBvdGVudF9saWJcIiAyPi9kZXYvbnVsbCBc Ci0rCQkgICAgICAgIHwgJHtTRUR9IDEwcSBcCi0rCQkgICAgICAgIHwgJEVHUkVQICIkbWF0Y2hf cGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICAgIG5ld2RlcGxpYnM9IiRu ZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCSAgICAgIGFfZGVwbGliPSIiCi0rCQkgICAgICBicmVh ayAyCi0rCQkgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBp ZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQkkZWNo bwotKwkJJGVjaG8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwg ZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgotKwkJJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNh cGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4i Ci0rCQkkZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5 IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkkZWNobyAi KioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmls ZSBzdGFydGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkZWNobyAi KioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBy ZWdleCBwYXR0ZXJuIHRlc3QpIgotKwkJZWxzZQotKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5h bWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIK LSsJCSAgJGVjaG8gIioqKiB1c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExhc3QgZmlsZSBjaGVja2Vk OiAkcG90bGliIgotKwkJZmkKLSsJICAgICAgZmkKLSsJICAgIGVsc2UKLSsJICAgICAgIyBBZGQg YSAtTCBhcmd1bWVudC4KLSsJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGli IgotKwkgICAgZmkKLSsJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgotKwkgIDs7 Ci0rCW5vbmUgfCB1bmtub3duIHwgKikKLSsJICBuZXdkZXBsaWJzPSIiCi0rCSAgdG1wX2RlcGxp YnM9YCRlY2hvICJYICRkZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMkLy8nIFwKLSsJICAgIC1l ICdzLyAtW0xSXVteIF0qLy9nJ2AKLSsJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCSAgICBmb3IgaSBpbiAkcHJl ZGVwcyAkcG9zdGRlcHMgOyBkbwotKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93LCBiZWNh dXNlICRpIG1pZ2h0IGNvbnRhaW4gJy8nCi0rCSAgICAgIHRtcF9kZXBsaWJzPWAkZWNobyAiWCAk dG1wX2RlcGxpYnMiIHwgJHtTRUR9IC1lICIxcyxeWCwsIiAtZSAicywkaSwsImAKLSsJICAgIGRv bmUKLSsJICBmaQotKwkgIGlmICRlY2hvICJYICR0bXBfZGVwbGlicyIgfCAkWHNlZCAtZSAncy9b IAldLy9nJyBcCi0rCSAgICB8IGdyZXAgLiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgICAkZWNobwot KwkgICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAiWG5vbmUiOyB0aGVuCi0r CSAgICAgICRlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJl IG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCi0rCSAgICBlbHNlCi0rCSAgICAgICRl Y2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93 biB0byBiZSBzdXBwb3J0ZWQuIgotKwkgICAgZmkKLSsJICAgICRlY2hvICIqKiogQWxsIGRlY2xh cmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIKLSsJICAg IGRyb3BwZWRkZXBzPXllcwotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwl2ZXJzdWZmaXg9JHZl cnN1ZmZpeF9zYXZlCi0rCW1ham9yPSRtYWpvcl9zYXZlCi0rCXJlbGVhc2U9JHJlbGVhc2Vfc2F2 ZQotKwlsaWJuYW1lPSRsaWJuYW1lX3NhdmUKLSsJbmFtZT0kbmFtZV9zYXZlCi0rCi0rCWNhc2Ug JGhvc3QgaW4KLSsJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkgICMgT24g UmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0r CSAgbmV3ZGVwbGlicz1gJGVjaG8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAv IC1mcmFtZXdvcmsgU3lzdGVtIC8nYAotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJaWYgdGVzdCAiJGRy b3BwZWRkZXBzIiA9IHllczsgdGhlbgotKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVu Ci0rCSAgICAkZWNobwotKwkgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBsaWJ0b29sIGNvdWxkIG5v dCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgotKwkgICAgJGVjaG8gIioqKiBk ZXBlbmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3JlLCBsaWJ0b29sIHdpbGwg Y3JlYXRlIgotKwkgICAgJGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdv cmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgotKwkgICAgJGVjaG8gIioqKiBhcHBsaWNhdGlv biBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnLiIKLSsJICAgIGlmIHRlc3QgLXogIiRn bG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rCSAgICAgICRlY2hvCi0rCSAgICAgICRlY2hvICIq KiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBl eHRyYWN0IHN5bWJvbCIKLSsJICAgICAgJGVjaG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwg dXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCi0rCSAgICAgICRl Y2hvICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJv YmFibHkgdXNlbGVzcy4iCi0rCSAgICAgICRlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRp bHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0 ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KLSsJICAgICAgb2xkbGlicz0iJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKLSsJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW1vZHVs ZQotKwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMKLSsJICAgIGVsc2UKLSsJICAgICAgYnVpbGRf bGlidG9vbF9saWJzPW5vCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgICRlY2hvICIqKiogVGhl IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVyZSB3 aWxsIGJlIgotKwkgICAgJGVjaG8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEg cHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCi0rCSAgICAkZWNobyAiKioqIG9y IGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgotKwotKwkgICAgaWYgdGVzdCAiJGFsbG93X3Vu ZGVmaW5lZCIgPSBubzsgdGhlbgotKwkgICAgICAkZWNobwotKwkgICAgICAkZWNobyAiKioqIFNp bmNlIHRoaXMgbGlicmFyeSBtdXN0IG5vdCBjb250YWluIHVuZGVmaW5lZCBzeW1ib2xzLCIKLSsJ ICAgICAgJGVjaG8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3Vw cG9ydCB0aGVtIG9yIgotKwkgICAgICAkZWNobyAiKioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVl c3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgotKwkgICAgICAkZWNobyAiKioqIGxpYnRvb2wgd2ls bCBvbmx5IGNyZWF0ZSBhIHN0YXRpYyB2ZXJzaW9uIG9mIGl0LiIKLSsJICAgICAgaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCi0rCQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8k bGlibmFtZS4kbGliZXh0IgotKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRf b2xkX2xpYnM9eWVzCi0rCSAgICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkg ICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwlmaQotKwkjIERvbmUgY2hlY2tpbmcgZGVwbGli cyEKLSsJZGVwbGlicz0kbmV3ZGVwbGlicwotKyAgICAgIGZpCi0rCi0rCi0rICAgICAgIyBtb3Zl IGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0 Ci0rICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxp YnJhcnkgc2VhcmNoIGxpc3QKLSsgICAgICBuZXdfbGlicz0KLSsgICAgICBmb3IgcGF0aCBpbiAk bm90aW5zdF9wYXRoOyBkbwotKwljYXNlICIgJG5ld19saWJzICIgaW4KLSsJKiIgLUwkcGF0aC8k b2JqZGlyICIqKSA7OwotKwkqKQotKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCi0rCSAgKiIgLUwk cGF0aC8kb2JqZGlyICIqKQotKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpk aXIiIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZm9y IGRlcGxpYiBpbiAkZGVwbGliczsgZG8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1MKikKLSsJICBj YXNlICIgJG5ld19saWJzICIgaW4KLSsJICAqIiAkZGVwbGliICIqKSA7OwotKwkgICopIG5ld19s aWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJKikgbmV3X2xp YnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGRl cGxpYnM9IiRuZXdfbGlicyIKLSsKLSsKLSsgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZp YyB2YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCi0rICAgICAgbGlicmFy eV9uYW1lcz0KLSsgICAgICBvbGRfbGlicmFyeT0KLSsgICAgICBkbG5hbWU9Ci0rCi0rICAgICAg IyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9y ZQotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rCWlm IHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCi0rCSAgIyBIYXJkY29kZSB0 aGUgbGlicmFyeSBwYXRocwotKwkgIGhhcmRjb2RlX2xpYmRpcnM9Ci0rCSAgZGVwX3JwYXRoPQot KwkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCi0rCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAm JiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCi0rCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7 IGRvCi0rCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4K LSsJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0r CQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KLSsJCSAgaGFyZGNvZGVfbGli ZGlycz0iJGxpYmRpciIKLSsJCWVsc2UKLSsJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1 ZSBsaWJkaXJzLgotKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2Rl X2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgotKwkJICAqIiRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCi0rCQkg ICAgOzsKLSsJCSAgKikKLSsJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGly cyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKLSsJCSAgICA7OwotKwkJICBlc2Fj Ci0rCQlmaQotKwkgICAgICBlbHNlCi0rCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY1wiCi0rCQlkZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCi0rCSAgICAgIGZpCi0r CSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICAgICAgY2FzZSAiJHBl cm1fcnBhdGggIiBpbgotKwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBwZXJt X3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQot KwkgIGRvbmUKLSsJICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhl IHJwYXRoLgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgot KwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgbGliZGlyPSIk aGFyZGNvZGVfbGliZGlycyIKLSsJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX2xkIjsgdGhlbgotKwkgICAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KLSsJICAgICAg KlwkTEQqKSBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkXCIg OzsKLSsJICAgICAgKikgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjXCIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZWxzZQotKwkgICAgICBldmFsIGRlcF9y cGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsJICAgIGZpCi0rCSAgZmkKLSsJ ICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiICYmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhl bgotKwkgICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJICAgIHJwYXRoPQot KwkgICAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KLSsJICAgICAgcnBhdGg9IiRycGF0aCRk aXI6IgotKwkgICAgZG9uZQotKwkgICAgZXZhbCAiJHJ1bnBhdGhfdmFyPSckcnBhdGhcJCRydW5w YXRoX3Zhcic7IGV4cG9ydCAkcnVucGF0aF92YXIiCi0rCSAgZmkKLSsJICB0ZXN0IC1uICIkZGVw X3JwYXRoIiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgotKwlmaQotKwotKwlzaGxp YnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCi0rCXRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYg c2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgotKwlpZiB0ZXN0IC1uICIk c2hsaWJwYXRoIjsgdGhlbgotKwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFyPSckc2hsaWJwYXRoXCQk c2hsaWJwYXRoX3Zhcic7IGV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsJZmkKLSsKLSsJIyBHZXQg dGhlIHJlYWwgYW5kIGxpbmsgbmFtZXMgb2YgdGhlIGxpYnJhcnkuCi0rCWV2YWwgc2hhcmVkX2V4 dD1cIiRzaHJleHRfY21kc1wiCi0rCWV2YWwgbGlicmFyeV9uYW1lcz1cIiRsaWJyYXJ5X25hbWVz X3NwZWNcIgotKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKLSsJcmVhbG5hbWU9IiQyIgotKwlz aGlmdDsgc2hpZnQKLSsKLSsJaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgotKwkgIGV2 YWwgc29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKLSsJZWxzZQotKwkgIHNvbmFtZT0iJHJlYWxuYW1l IgotKwlmaQotKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgotKwkgIGRsbmFtZT0kc29uYW1l Ci0rCWZpCi0rCi0rCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgotKwlsaW5rbmFtZXM9 Ci0rCWZvciBsaW5rCi0rCWRvCi0rCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgotKwlk b25lCi0rCi0rCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCi0rCXRlc3Qg LXogIiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAk WHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAotKwotKwkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhw b3J0ZWQgc3ltYm9scwotKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCi0rCSAg aWYgdGVzdCAiJGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgotKwkgICAgJHNob3cgImdlbmVyYXRpbmcgc3ltYm9sIGxp c3QgZm9yIFxgJGxpYm5hbWUubGEnIgotKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmV4cCIKLSsJICAgICRydW4gJHJtICRleHBvcnRfc3ltYm9scwotKwkgICAg Y21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcwotKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34n Ci0rCSAgICBmb3IgY21kIGluICRjbWRzOyBkbwotKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKLSsJ ICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKLSsJICAgICAgaWYgbGVuPWBleHByICJYJGNtZCIgOiAi LioiYCAmJgotKwkgICAgICAgdGVzdCAiJGxlbiIgLWxlICIkbWF4X2NtZF9sZW4iIHx8IHRlc3Qg IiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCi0rCSAgICAgICAgJHNob3cgIiRjbWQiCi0rCSAg ICAgICAgJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/Ci0rCSAgICAgICAgc2tpcHBlZF9leHBv cnQ9ZmFsc2UKLSsJICAgICAgZWxzZQotKwkgICAgICAgICMgVGhlIGNvbW1hbmQgbGluZSBpcyB0 b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgotKwkgICAgICAgICRzaG93ICJ1c2luZyBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIKLSsJICAgICAgICBza2lw cGVkX2V4cG9ydD06Ci0rCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBwZWRfZXhw b3J0IG1heSBiZQotKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hvcnRlciBjbWQu Ci0rCQlicmVhawotKwkgICAgICBmaQotKwkgICAgZG9uZQotKwkgICAgSUZTPSIkc2F2ZV9pZnMi Ci0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAg ICRzaG93ICIkRUdSRVAgLWUgXCIkZXhwb3J0X3N5bWJvbHNfcmVnZXhcIiBcIiRleHBvcnRfc3lt Ym9sc1wiID4gXCIke2V4cG9ydF9zeW1ib2xzfVRcIiIKLSsJICAgICAgJHJ1biBldmFsICckRUdS RVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBv cnRfc3ltYm9sc31UIicKLSsJICAgICAgJHNob3cgIiRtdiBcIiR7ZXhwb3J0X3N5bWJvbHN9VFwi IFwiJGV4cG9ydF9zeW1ib2xzXCIiCi0rCSAgICAgICRydW4gZXZhbCAnJG12ICIke2V4cG9ydF9z eW1ib2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgZmkKLSsJICBmaQotKwlmaQotKwot KwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5 bXMiOyB0aGVuCi0rCSAgJHJ1biBldmFsICckZWNobyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQ Mk5MID4+ICIkZXhwb3J0X3N5bWJvbHMiJwotKwlmaQotKwotKwl0bXBfZGVwbGlicz0KLSsJZm9y IHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwkJY2FzZSAiICRjb252ZW5pZW5jZSAiIGlu Ci0rCQkqIiAkdGVzdF9kZXBsaWIgIiopIDs7Ci0rCQkqKQotKwkJCXRtcF9kZXBsaWJzPSIkdG1w X2RlcGxpYnMgJHRlc3RfZGVwbGliIgotKwkJCTs7Ci0rCQllc2FjCi0rCWRvbmUKLSsJZGVwbGli cz0iJHRtcF9kZXBsaWJzIgotKwotKwlpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCi0r CSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgc2F2 ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICBlbHNlCi0rCSAgICBnZW50b3A9IiRvdXRwdXRfb2Jq ZGlyLyR7b3V0cHV0bmFtZX14IgotKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3Ai Ci0rCi0rCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKLSsJ ICAgIGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwkg IGZpCi0rCWZpCi0rCQotKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVzICYmIHRlc3QgLW4g IiR0aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9z YWZlX2ZsYWdfc3BlY1wiCi0rCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgot KwlmaQotKwotKwkjIE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hl biByZWxpbmtpbmcKLSsJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCi0rCSAgJHJ1biBl dmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9VSAmJiAkbXYgJHJlYWxu YW1lICR7cmVhbG5hbWV9VSknIHx8IGV4aXQgJD8KLSsJZmkKLSsKLSsJIyBEbyBlYWNoIG9mIHRo ZSBhcmNoaXZlIGNvbW1hbmRzLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1u ICIkbW9kdWxlX2NtZHMiIDsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIg JiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgIGV2YWwgdGVzdF9j bWRzPVwiJG1vZHVsZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2Nt ZHMKLSsJICBlbHNlCi0rCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfY21kc1wiCi0rCSAg ICBjbWRzPSRtb2R1bGVfY21kcwotKwkgIGZpCi0rCWVsc2UKLSsJaWYgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICBl dmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRzXCIKLSsJICBjbWRzPSRhcmNoaXZl X2V4cHN5bV9jbWRzCi0rCWVsc2UKLSsJICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNc IgotKwkgIGNtZHM9JGFyY2hpdmVfY21kcwotKwkgIGZpCi0rCWZpCi0rCi0rCWlmIHRlc3QgIlgk c2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYKLSsJICAgbGVuPWBleHByICJYJHRlc3RfY21kcyIg OiAiLioiIDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICIkbGVuIiAtbGUgIiRtYXhfY21kX2xl biIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KLSsJICA6Ci0rCWVsc2UKLSsJ ICAjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGlu ayBwaWVjZXdpc2UuCi0rCSAgJGVjaG8gImNyZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVz Li4uIgotKwotKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBhbmQgJGxpYm9ianMgYmVj YXVzZSB3ZSB3YW50IHRvCi0rCSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdlIGhhdmUgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsIHdlCi0rCSAgIyB3YW50IHRvIHVzZSBzYXZlX2xpYm9ianMgYXMg aXQgd2FzIGJlZm9yZQotKwkgICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgd2FzIGV4cGFuZGVk LCBiZWNhdXNlIHdlIGNhbid0Ci0rCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYy4KLSsJICAjIFRoaXMgbWF5IGhhdmUgdG8gYmUgcmV2aXNp dGVkLCBpbiBjYXNlIHRvbyBtYW55Ci0rCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgZ2V0IGxp bmtlZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZwotKwkgICMgdGhlIHNwZWMuCi0rCSAgaWYgdGVz dCAteiAiJGNvbnZlbmllbmNlIiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMi OyB0aGVuCi0rCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKLSsJICBmaQotKwkgIHNhdmVfb3V0 cHV0PSRvdXRwdXQKLSsJICBvdXRwdXRfbGE9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNlZCAtZSAi JGJhc2VuYW1lImAKLSsKLSsJICAjIENsZWFyIHRoZSByZWxvYWRhYmxlIG9iamVjdCBjcmVhdGlv biBjb21tYW5kIHF1ZXVlIGFuZAotKwkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KLSsJICB0ZXN0 X2NtZHM9Ci0rCSAgY29uY2F0X2NtZHM9Ci0rCSAgb2JqbGlzdD0KLSsJICBkZWxmaWxlcz0KLSsJ ICBsYXN0X3JvYmo9Ci0rCSAgaz0xCi0rCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRf bGEtJHtrfS4kb2JqZXh0Ci0rCSAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBi ZSBsaW5rZWQuCi0rCSAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCi0rCSAgZG8KLSsJICAgIGV2 YWwgdGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgotKwkgICAg aWYgdGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKLSsJICAgICAgIHsgbGVuPWBleHByICJYJHRlc3Rf Y21kcyIgOiAiLioiIDI+L2Rldi9udWxsYCAmJgotKwkJIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9j bWRfbGVuIjsgfTsgdGhlbgotKwkgICAgICBvYmpsaXN0PSIkb2JqbGlzdCAkb2JqIgotKwkgICAg ZWxzZQotKwkgICAgICAjIFRoZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25n LCBhZGQgYQotKwkgICAgICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgotKwkgICAgICBpZiB0ZXN0 ICIkayIgLWVxIDEgOyB0aGVuCi0rCQkjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHBy ZXZpb3VzIGNvbW1hbmQgdG8gYWRkLgotKwkJZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRfY21k cyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKLSsJICAgICAgZWxzZQotKwkJIyBBbGwgc3Vic2VxdWVu dCByZWxvYWRhYmxlIG9iamVjdCBmaWxlcyB3aWxsIGxpbmsgaW4KLSsJCSMgdGhlIGxhc3Qgb25l IGNyZWF0ZWQuCi0rCQlldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2Nt ZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCi0rCSAgICAgIGZpCi0rCSAgICAgIGxhc3Rfcm9iaj0k b3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAotKwkgICAgICBrPWBleHByICRr ICsgMWAKLSsJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2Jq ZXh0Ci0rCSAgICAgIG9iamxpc3Q9JG9iagotKwkgICAgICBsZW49MQotKwkgICAgZmkKLSsJICBk b25lCi0rCSAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBs YXN0Ci0rCSAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1YnNlcXVlbnQgcmVsb2Fk YWJsZSBvYmplY3QKLSsJICAjIGZpbGVzIHdpbGwgbGluayBpbiB0aGUgbGFzdCBvbmUgY3JlYXRl ZC4KLSsJICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21k c34KLSsJICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JHJlbG9hZF9jbWRzICRv YmpsaXN0ICRsYXN0X3JvYmpcIgotKwotKwkgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0 aGVuCi0rCSAgICAkc2hvdyAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5s YSciCi0rCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgot KwkgICAgJHJ1biAkcm0gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICBsaWJvYmpzPSRvdXRwdXQKLSsJ ICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUuCi0rCSAg ICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kZXhwb3J0X3N5bWJvbHNfY21kc1wi Ci0rICAgICAgICAgIGZpCi0rCi0rCSAgIyBTZXQgdXAgYSBjb21tYW5kIHRvIHJlbW92ZSB0aGUg cmVsb2FkYWJsZSBvYmplY3QgZmlsZXMKLSsJICAjIGFmdGVyIHRoZXkgYXJlIHVzZWQuCi0rCSAg aT0wCi0rCSAgd2hpbGUgdGVzdCAiJGkiIC1sdCAiJGsiCi0rCSAgZG8KLSsJICAgIGk9YGV4cHIg JGkgKyAxYAotKwkgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0X29iamRpci8kb3V0cHV0 X2xhLSR7aX0uJG9iamV4dCIKLSsJICBkb25lCi0rCi0rCSAgJGVjaG8gImNyZWF0aW5nIGEgdGVt cG9yYXJ5IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRvdXRwdXQiCi0rCi0rCSAgIyBMb29wIHRo cm91Z2ggdGhlIGNvbW1hbmRzIGdlbmVyYXRlZCBhYm92ZSBhbmQgZXhlY3V0ZSB0aGVtLgotKwkg IHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwotKwkgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBk bwotKwkgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICAkc2hvdyAiJGNtZCIKLSsJICAgICRydW4g ZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwotKwkgIGRvbmUKLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsK LSsJICBsaWJvYmpzPSRvdXRwdXQKLSsJICAjIFJlc3RvcmUgdGhlIHZhbHVlIG9mIG91dHB1dC4K LSsJICBvdXRwdXQ9JHNhdmVfb3V0cHV0Ci0rCi0rCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNl IiAmJiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgICBldmFs IGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICBmaQot KwkgICMgRXhwYW5kIHRoZSBsaWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4gdG8gcmVzZXQg dGhlCi0rCSAgIyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCi0rCi0r CSAgIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgotKwkgIGlmIHRlc3QgIiRtb2R1 bGUiID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCi0rCSAgICBpZiB0ZXN0 IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0 aGVuCi0rCSAgICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcwotKwkgICAgZWxzZQotKwkgICAg ICBjbWRzPSRtb2R1bGVfY21kcwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgaWYgdGVzdCAtbiAi JGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4K LSsJICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKLSsJICBlbHNlCi0rCSAgICBjbWRzPSRh cmNoaXZlX2NtZHMKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsJICAjIEFwcGVuZCB0aGUgY29tbWFu ZCB0byByZW1vdmUgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzCi0rCSAgIyB0byB0aGUganVz dC1yZXNldCAkY21kcy4KLSsJICBldmFsIGNtZHM9XCJcJGNtZHN+XCRybSAkZGVsZmlsZXNcIgot KwlmaQotKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJZm9yIGNtZCBpbiAkY21kczsgZG8K LSsJICBJRlM9IiRzYXZlX2lmcyIKLSsJICBldmFsIGNtZD1cIiRjbWRcIgotKwkgICRzaG93ICIk Y21kIgotKwkgICRydW4gZXZhbCAiJGNtZCIgfHwgewotKwkgICAgbHRfZXhpdD0kPwotKwotKwkg ICAgIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0Ci0rCSAgICBpZiB0 ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAgICAgJHJ1biBldmFsICcoY2QgJG91dHB1 dF9vYmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9VCAmJiAkbXYgJHtyZWFsbmFtZX1VICRyZWFsbmFt ZSknCi0rCSAgICBmaQotKwotKwkgICAgZXhpdCAkbHRfZXhpdAotKwkgIH0KLSsJZG9uZQotKwlJ RlM9IiRzYXZlX2lmcyIKLSsKLSsJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFu ZCBleGl0Ci0rCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICRydW4gZXZhbCAn KGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAke3JlYWxuYW1lfVQgJiYgJG12ICRyZWFsbmFtZSAk e3JlYWxuYW1lfVQgJiYgJG12ICIkcmVhbG5hbWUiVSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/Ci0r Ci0rCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAi JHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgICAkc2hvdyAiJHtybX1yICRn ZW50b3AiCi0rCSAgICAgICRydW4gJHtybX1yICIkZ2VudG9wIgotKwkgICAgZmkKLSsJICBmaQot KwotKwkgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKwlmaQotKwotKwkjIENyZWF0ZSBsaW5rcyB0byB0 aGUgcmVhbCBsaWJyYXJ5LgotKwlmb3IgbGlua25hbWUgaW4gJGxpbmtuYW1lczsgZG8KLSsJICBp ZiB0ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUiOyB0aGVuCi0rCSAgICAkc2hvdyAiKGNk ICRvdXRwdXRfb2JqZGlyICYmICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5r bmFtZSkiCi0rCSAgICAkcnVuIGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkcm0gJGxpbmtu YW1lICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25hbWUpJyB8fCBleGl0ICQ/Ci0rCSAgZmkKLSsJ ZG9uZQotKwotKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdhcyBzcGVjaWZpZWQs IHNldCB0aGUgZGxuYW1lLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8fCB0ZXN0ICIkZXhw b3J0X2R5bmFtaWMiID0geWVzOyB0aGVuCi0rCSAgIyBPbiBhbGwga25vd24gb3BlcmF0aW5nIHN5 c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCi0rCSAgZGxuYW1lPSIkc29uYW1lIgotKwlmaQot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb2JqKQotKyAgICAgIGNhc2UgIiAkZGVwbGli cyIgaW4KLSsgICAgICAqXCAtbCogfCAqXCAtTCopCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5p bmc6IFxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4mMiA7OwotKyAg ICAgIGVzYWMKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0 ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBc YC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKLSsgICAgICBmaQotKwotKyAg ICAgIGlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2Fybmlu ZzogXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKLSsgICAgICBmaQotKwot KyAgICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdh cm5pbmc6IFxgLVInIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKLSsgICAgICBmaQotKwot KyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2Fy bmluZzogXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIiAxPiYyCi0rICAg ICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRoZW4KLSsJJGVjaG8gIiRt b2RlbmFtZTogd2FybmluZzogXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4m MgotKyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICAgKi5sbykKLSsJ aWYgdGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiOyB0aGVuCi0rCSAgJGVjaG8gIiRtb2RlbmFt ZTogY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9v bCBvYmplY3RzIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCWxpYm9iaj0i JG91dHB1dCIKLSsJb2JqPWAkZWNobyAiWCRvdXRwdXQiIHwgJFhzZWQgLWUgIiRsbzJvImAKLSsJ OzsKLSsgICAgICAqKQotKwlsaWJvYmo9Ci0rCW9iaj0iJG91dHB1dCIKLSsJOzsKLSsgICAgICBl c2FjCi0rCi0rICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgotKyAgICAgICRydW4gJHJt ICRvYmogJGxpYm9iagotKwotKyAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJh cmllcy4gIFRoaXMgYXNzdW1lcwotKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2Ug bGlicmFyaWVzLiAgV2hlbmV2ZXIgd2UgY3JlYXRlCi0rICAgICAgIyBkaWZmZXJlbnQgb25lcyBm b3IgUElDL25vbi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKLSsgICAgICAjIHRo ZSBleHRyYWN0aW9uLgotKyAgICAgIHJlbG9hZF9jb252X29ianM9Ci0rICAgICAgZ2VudG9wPQot KyAgICAgICMgcmVsb2FkX2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQgcmlk IG9mCi0rICAgICAgIyAtV2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3 ZSBjYW4gZ2V0IGJ5IHdpdGgKLSsgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCi0r ICAgICAgd2w9Ci0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwlp ZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCB0bXBf d2hvbGVfYXJjaGl2ZV9mbGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgcmVs b2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkZWNobyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9m bGFncyIgfCAkWHNlZCAtZSAnc3wsfCB8ZydgCi0rCWVsc2UKLSsJICBnZW50b3A9IiRvdXRwdXRf b2JqZGlyLyR7b2JqfXgiCi0rCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0r CSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgcmVsb2Fk X2NvbnZfb2Jqcz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0Igot KwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBDcmVhdGUgdGhlIG9sZC1zdHlsZSBvYmplY3Qu Ci0rICAgICAgcmVsb2FkX29ianM9IiRvYmpzJG9sZF9kZXBsaWJzICJgJGVjaG8gIlgkbGlib2Jq cyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2Qn IC1lICIkbG8ybyIgfCAkTkwyU1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTog c2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0Ci0rCi0rICAgICAgb3V0cHV0PSIkb2JqIgotKyAgICAg IGNtZHM9JHJlbG9hZF9jbWRzCi0rICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rICAg ICAgZm9yIGNtZCBpbiAkY21kczsgZG8KLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCWV2YWwgY21kPVwi JGNtZFwiCi0rCSRzaG93ICIkY21kIgotKwkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KLSsg ICAgICBkb25lCi0rICAgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCi0rICAgICAgIyBFeGl0IGlmIHdl IGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCi0rICAgICAgaWYgdGVzdCAteiAi JGxpYm9iaiI7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJICAkc2hvdyAi JHtybX1yICRnZW50b3AiCi0rCSAgJHJ1biAke3JtfXIgJGdlbnRvcAotKwlmaQotKwotKwlleGl0 ICRFWElUX1NVQ0NFU1MKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiICE9IHllczsgdGhlbgotKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgotKwkg ICRzaG93ICIke3JtfXIgJGdlbnRvcCIKLSsJICAkcnVuICR7cm19ciAkZ2VudG9wCi0rCWZpCi0r Ci0rCSMgQ3JlYXRlIGFuIGludmFsaWQgbGlidG9vbCBvYmplY3QgaWYgbm8gUElDLCBzbyB0aGF0 IHdlIGRvbid0Ci0rCSMgYWNjaWRlbnRhbGx5IGxpbmsgaXQgaW50byBhIHByb2dyYW0uCi0rCSMg JHNob3cgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIKLSsJIyAkcnVuIGV2YWwgImVjaG8gdGlt ZXN0YW1wID4gJGxpYm9iaiIgfHwgZXhpdCAkPwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAg ICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2Rl IiAhPSBkZWZhdWx0OyB0aGVuCi0rCSMgT25seSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2 ZSBkaWZmZXJlbnQgUElDIG9iamVjdHMuCi0rCXJlbG9hZF9vYmpzPSIkbGlib2JqcyAkcmVsb2Fk X2NvbnZfb2JqcyIKLSsJb3V0cHV0PSIkbGlib2JqIgotKwljbWRzPSRyZWxvYWRfY21kcwotKwlz YXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJZm9yIGNtZCBpbiAkY21kczsgZG8KLSsJICBJRlM9 IiRzYXZlX2lmcyIKLSsJICBldmFsIGNtZD1cIiRjbWRcIgotKwkgICRzaG93ICIkY21kIgotKwkg ICRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgot KyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJJHNob3cg IiR7cm19ciAkZ2VudG9wIgotKwkkcnVuICR7cm19ciAkZ2VudG9wCi0rICAgICAgZmkKLSsKLSsg ICAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICA7OwotKwotKyAgICBwcm9nKQotKyAgICAg IGNhc2UgJGhvc3QgaW4KLSsJKmN5Z3dpbiopIG91dHB1dD1gJGVjaG8gJG91dHB1dCB8ICR7U0VE fSAtZSAncywuZXhlJCwsO3MsJCwuZXhlLCdgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGlmIHRl c3QgLW4gIiR2aW5mbyI7IHRoZW4KLSsJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVy c2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIgMT4mMgotKyAgICAgIGZpCi0rCi0r ICAgICAgaWYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCi0rCSRlY2hvICIkbW9kZW5hbWU6IHdh cm5pbmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIiAxPiYyCi0rICAgICAg ZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAi JGRsb3Blbl9zdXBwb3J0IiA9IHVua25vd24gJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiA9IHVua25v d24gJiYKLSsJICAgdGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duOyB0aGVuCi0r CSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGBBQ19MSUJUT09MX0RMT1BFTicgbm90IHVz ZWQuIEFzc3VtaW5nIG5vIGRsb3BlbiBzdXBwb3J0LiIKLSsJZmkKLSsgICAgICBmaQotKwotKyAg ICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAx Ml0pCi0rCSMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0g ZnJhbWV3b3JrCi0rCWNvbXBpbGVfZGVwbGlicz1gJGVjaG8gIlggJGNvbXBpbGVfZGVwbGlicyIg fCAkWHNlZCAtZSAncy8gLWxjIC8gLWZyYW1ld29yayBTeXN0ZW0gLydgCi0rCWZpbmFsaXplX2Rl cGxpYnM9YCRlY2hvICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyAt ZnJhbWV3b3JrIFN5c3RlbSAvJ2AKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgY2FzZSAk aG9zdCBpbgotKyAgICAgICpkYXJ3aW4qKQotKyAgICAgICAgIyBEb24ndCBhbGxvdyBsYXp5IGxp bmtpbmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycwotKyAgICAgICAgaWYgdGVz dCAiJHRhZ25hbWUiID0gQ1hYIDsgdGhlbgotKyAgICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29t cGlsZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKLSsgICAgICAgIGZpbmFsaXplX2NvbW1h bmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKLSsgICAgICAgIGZpCi0r ICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsKLSsKLSsgICAgICAjIG1vdmUgbGlicmFyeSBzZWFy Y2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKLSsgICAgICAjIGlu c3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2gg bGlzdAotKyAgICAgIG5ld19saWJzPQotKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7 IGRvCi0rCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7 Ci0rCSopCi0rCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgotKwkgICoiIC1MJHBhdGgv JG9iamRpciAiKikKLSsJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGlyIiA7 OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGZvciBkZXBs aWIgaW4gJGNvbXBpbGVfZGVwbGliczsgZG8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1MKikKLSsJ ICBjYXNlICIgJG5ld19saWJzICIgaW4KLSsJICAqIiAkZGVwbGliICIqKSA7OwotKwkgICopIG5l d19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJKikgbmV3 X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAg IGNvbXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgotKwotKwotKyAgICAgIGNvbXBpbGVfY29tbWFu ZD0iJGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgotKyAgICAgIGZpbmFsaXplX2Nv bW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJzIgotKwotKyAgICAgIGlm IHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCi0rCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVk IGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KLSsJZm9yIGxpYmRpciBpbiAkcnBhdGgg JHhycGF0aDsgZG8KLSsJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCi0rCSAg Y2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICop IGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKLSsJICBlc2FjCi0r CWRvbmUKLSsgICAgICBmaQotKwotKyAgICAgICMgTm93IGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBh dGhzCi0rICAgICAgcnBhdGg9Ci0rICAgICAgaGFyZGNvZGVfbGliZGlycz0KLSsgICAgICBmb3Ig bGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8KLSsJaWYgdGVzdCAt biAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgaWYgdGVzdCAtbiAiJGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNv ZGVfbGliZGlycyI7IHRoZW4KLSsJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKLSsJ ICAgIGVsc2UKLSsJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgot KwkgICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgotKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCi0rCQk7OwotKwkg ICAgICAqKQotKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQot KwkgIGVsc2UKLSsJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIK LSsJICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCi0rCSAgZmkKLSsJZWxpZiB0ZXN0IC1uICIkcnVu cGF0aF92YXIiOyB0aGVuCi0rCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgotKwkgICoiICRsaWJk aXIgIiopIDs7Ci0rCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKLSsJ ICBlc2FjCi0rCWZpCi0rCWNhc2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cq IHwgKi0qLXB3MzIqIHwgKi0qLW9zMiopCi0rCSAgdGVzdGJpbmRpcj1gJGVjaG8gIlgkbGliZGly IiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDog aW4KLSsJICAqIjokbGliZGlyOiIqKSA7OwotKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFy Y2hwYXRoOiRsaWJkaXIiOzsKLSsJICBlc2FjCi0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGlu Ci0rCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7Ci0rCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNl YXJjaHBhdGg6JHRlc3RiaW5kaXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhl IHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAm JgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRpcj0iJGhhcmRj b2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNc IgotKyAgICAgIGZpCi0rICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgotKwotKyAgICAgIHJw YXRoPQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkZmlu YWxpemVfcnBhdGg7IGRvCi0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj IjsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhl bgotKwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICAgIGhh cmRjb2RlX2xpYmRpcnM9IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgSnVzdCBhY2N1 bXVsYXRlIHRoZSB1bmlxdWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4K LSsJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciIqKQotKwkJOzsKLSsJICAgICAgKikKLSsJCWhhcmRjb2RlX2xpYmRpcnM9 IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgotKwkJ OzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBldmFsIGZsYWc9XCIk aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgot KwkgIGZpCi0rCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwkgIGNhc2UgIiRm aW5hbGl6ZV9wZXJtX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZp bmFsaXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAg ZXNhYwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2Rl ZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVu Ci0rCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNcIgotKyAgICAgIGZpCi0rICAgICAgZmluYWxpemVfcnBhdGg9IiRy cGF0aCIKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29s ZF9saWJzIiA9IHllczsgdGhlbgotKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0 cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCi0rCWNvbXBpbGVfY29tbWFuZD1gJGVjaG8gIlgkY29t cGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rCWZp bmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhz ZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgIGRsc3ltcz0KLSsg ICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAh PSBubzsgdGhlbgotKwlpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9s X3BpcGUiOyB0aGVuCi0rCSAgZGxzeW1zPSIke291dHB1dG5hbWV9Uy5jIgotKwllbHNlCi0rCSAg JGVjaG8gIiRtb2RlbmFtZTogbm90IGNvbmZpZ3VyZWQgdG8gZXh0cmFjdCBnbG9iYWwgc3ltYm9s cyBmcm9tIGRscHJlb3BlbmVkIGZpbGVzIiAxPiYyCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAg ICBpZiB0ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgotKwljYXNlICRkbHN5bXMgaW4KLSsJIiIpIDs7 Ci0rCSouYykKLSsJICAjIERpc2NvdmVyIHRoZSBubGlzdCBvZiBlYWNoIG9mIHRoZSBkbGZpbGVz LgotKwkgIG5saXN0PSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Lm5tIgotKwotKwkgICRz aG93ICIkcm0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCi0rCSAgJHJ1biAkcm0gIiRubGlz dCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKLSsKLSsJICAjIFBhcnNlIHRoZSBuYW1lIGxpc3Qg aW50byBhIHNvdXJjZSBmaWxlLgotKwkgICRzaG93ICJjcmVhdGluZyAkb3V0cHV0X29iamRpci8k ZGxzeW1zIgotKwotKwkgIHRlc3QgLXogIiRydW4iICYmICRlY2hvID4gIiRvdXRwdXRfb2JqZGly LyRkbHN5bXMiICJcCi0rLyogJGRsc3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBc YCRvdXRwdXRuYW1lJyBkbHN5bSBlbXVsYXRpb24uICovCi0rLyogR2VuZXJhdGVkIGJ5ICRQUk9H UkFNIC0gR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCAqLwotKwotKyNpZmRlZiBfX2Nw bHVzcGx1cwotK2V4dGVybiBcIkNcIiB7Ci0rI2VuZGlmCi0rCi0rLyogUHJldmVudCB0aGUgb25s eSBraW5kIG9mIGRlY2xhcmF0aW9uIGNvbmZsaWN0cyB3ZSBjYW4gbWFrZS4gKi8KLSsjZGVmaW5l IGx0X3ByZWxvYWRlZF9zeW1ib2xzIHNvbWVfb3RoZXJfc3ltYm9sCi0rCi0rLyogRXh0ZXJuYWwg c3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wKLSsiCi0rCi0rCSAgaWYg dGVzdCAiJGRsc2VsZiIgPSB5ZXM7IHRoZW4KLSsJICAgICRzaG93ICJnZW5lcmF0aW5nIHN5bWJv bCBsaXN0IGZvciBcYCRvdXRwdXQnIgotKwotKwkgICAgdGVzdCAteiAiJHJ1biIgJiYgJGVjaG8g JzogQFBST0dSQU1AICcgPiAiJG5saXN0IgotKwotKwkgICAgIyBBZGQgb3VyIG93biBwcm9ncmFt IG9iamVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgotKwkgICAgcHJvZ2ZpbGVzPWAkZWNobyAiWCRv YmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCi0r CSAgICBmb3IgYXJnIGluICRwcm9nZmlsZXM7IGRvCi0rCSAgICAgICRzaG93ICJleHRyYWN0aW5n IGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRhcmcnIgotKwkgICAgICAkcnVuIGV2YWwgIiROTSAk YXJnIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKLSsJICAgIGRvbmUKLSsKLSsJ ICAgIGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgICAgICRydW4gZXZh bCAnJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQn Ci0rCSAgICAgICRydW4gZXZhbCAnJG12ICIkbmxpc3QiVCAiJG5saXN0IicKLSsJICAgIGZpCi0r Ci0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAg ICRydW4gZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4g IiRubGlzdCJUJwotKwkgICAgICAkcnVuIGV2YWwgJyRtdiAiJG5saXN0IlQgIiRubGlzdCInCi0r CSAgICBmaQotKwotKwkgICAgIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMK LSsJICAgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgICAgZXhwb3J0 X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIKLSsJICAgICAgJHJ1biAk cm0gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICAgICRydW4gZXZhbCAiJHtTRUR9IC1uIC1lICcvXjog QFBST0dSQU1AICQvZCcgLWUgJ3MvXi4qIFwoLipcKSQvXDEvcCcgIic8ICIkbmxpc3QiID4gIiRl eHBvcnRfc3ltYm9scyInCi0rICAgICAgICAgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgICAg ICAgICAqY3lnd2luKiB8ICptaW5ndyogKQotKwkgICAgICAgICRydW4gZXZhbCAiZWNobyBFWFBP UlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKLSsJCSRydW4gZXZhbCAn Y2F0ICIkZXhwb3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYi JwotKyAgICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAgICAgZXNhYwotKwkgICAgZWxzZQot KwkgICAgICAkcnVuIGV2YWwgIiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1l ICdzL14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29i amRpci8kb3V0cHV0bmFtZS5leHAiJwotKwkgICAgICAkcnVuIGV2YWwgJ2dyZXAgLWYgIiRvdXRw dXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKLSsJICAg ICAgJHJ1biBldmFsICdtdiAiJG5saXN0IlQgIiRubGlzdCInCi0rICAgICAgICAgICAgICBjYXNl ICRob3N0IGluCi0rICAgICAgICAgICAgICAqY3lnd2luKiB8ICptaW5ndyogKQotKwkgICAgICAg ICRydW4gZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUu ZGVmIicKLSsJCSRydW4gZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZS5kZWYiJwotKyAgICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAgICAgZXNhYwot KwkgICAgZmkKLSsJICBmaQotKwotKwkgIGZvciBhcmcgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAg ICAkc2hvdyAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkYXJnJyIKLSsJICAg IG5hbWU9YCRlY2hvICIkYXJnIiB8ICR7U0VEfSAtZSAncyVeLiovJSUnYAotKwkgICAgJHJ1biBl dmFsICckZWNobyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwotKwkgICAgJHJ1biBldmFsICIkTk0g JGFyZyB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCi0rCSAgZG9uZQotKwotKwkg IGlmIHRlc3QgLXogIiRydW4iOyB0aGVuCi0rCSAgICAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxl YXN0IGFuIGVtcHR5IGZpbGUuCi0rCSAgICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0 IgotKwotKwkgICAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAgICAg JEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQKLSsJ ICAgICAgJG12ICIkbmxpc3QiVCAiJG5saXN0IgotKwkgICAgZmkKLSsKLSsJICAgICMgVHJ5IHNv cnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCi0rCSAgICBpZiBncmVwIC12ICJeOiAi IDwgIiRubGlzdCIgfAotKwkJaWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rCQkgIHNvcnQgLWsgMwotKwkJZWxzZQotKwkJICBzb3J0ICsyCi0rCQlmaSB8Ci0r CQl1bmlxID4gIiRubGlzdCJTOyB0aGVuCi0rCSAgICAgIDoKLSsJICAgIGVsc2UKLSsJICAgICAg Z3JlcCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCi0rCSAgICBmaQotKwotKwkgICAg aWYgdGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KLSsJICAgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xf dG9fY2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyInCi0rCSAg ICBlbHNlCi0rCSAgICAgICRlY2hvICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJGRs c3ltcyIKLSsJICAgIGZpCi0rCi0rCSAgICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3lt cyIgIlwKLSsKLSsjdW5kZWYgbHRfcHJlbG9hZGVkX3N5bWJvbHMKLSsKLSsjaWYgZGVmaW5lZCAo X19TVERDX18pICYmIF9fU1REQ19fCi0rIyBkZWZpbmUgbHRfcHRyIHZvaWQgKgotKyNlbHNlCi0r IyBkZWZpbmUgbHRfcHRyIGNoYXIgKgotKyMgZGVmaW5lIGNvbnN0Ci0rI2VuZGlmCi0rCi0rLyog VGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICovCi0rIgotKwot KwkgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKLSsJICAkZWNo byA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKLSsvKiBEQVRBIGltcG9ydHMgZnJvbSBE TExzIG9uIFdJTjMyIGNhbid0IGJlIGNvbnN0LCBiZWNhdXNlCi0rICAgcnVudGltZSByZWxvY2F0 aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KLSsgICBvbiBwc2V1 ZG8tcmVsb2NzICovCi0rc3RydWN0IHsKLSsiCi0rCSAgICAgIDs7Ci0rCSAgICAqICkKLSsJICAk ZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKLStjb25zdCBzdHJ1Y3QgewotKyIK LSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsKLSsJICAkZWNobyA+PiAiJG91dHB1dF9vYmpk aXIvJGRsc3ltcyIgIlwKLSsgIGNvbnN0IGNoYXIgKm5hbWU7Ci0rICBsdF9wdHIgYWRkcmVzczsK LSt9Ci0rbHRfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Ci0re1wKLSsiCi0rCi0rCSAgICBldmFsICIk Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9v YmpkaXIvJGRsc3ltcyIKLSsKLSsJICAgICRlY2hvID4+ICIkb3V0cHV0X29iamRpci8kZGxzeW1z IiAiXAotKyAgezAsIChsdF9wdHIpIDB9Ci0rfTsKLSsKLSsvKiBUaGlzIHdvcmtzIGFyb3VuZCBh IHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5E Ci0rc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKLSsgIHJldHVybiBs dF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVz Ci0rfQotKyNlbmRpZlwKLSsiCi0rCSAgZmkKLSsKLSsJICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9 Ci0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICMgY29tcGlsaW5nIHRoZSBzeW1ib2wgdGFibGUgZmls ZSB3aXRoIHBpY19mbGFnIHdvcmtzIGFyb3VuZAotKwkgICMgYSBGcmVlQlNEIGJ1ZyB0aGF0IGNh dXNlcyBwcm9ncmFtcyB0byBjcmFzaCB3aGVuIC1sbSBpcwotKwkgICMgbGlua2VkIGJlZm9yZSBh bnkgb3RoZXIgUElDIG9iamVjdC4gIEJ1dCB3ZSBtdXN0IG5vdCB1c2UKLSsJICAjIHBpY19mbGFn IHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJvYmxlbSBleGlzdHMgaW4KLSsJICAj IEZyZWVCU0QgMi4yLjYgYW5kIGlzIGZpeGVkIGluIEZyZWVCU0QgMy4xLgotKwkgICotKi1mcmVl YnNkMip8Ki0qLWZyZWVic2QzLjAqfCotKi1mcmVlYnNkZWxmMy4wKikKLSsJICAgIGNhc2UgIiRj b21waWxlX2NvbW1hbmQgIiBpbgotKwkgICAgKiIgLXN0YXRpYyAiKikgOzsKLSsJICAgICopIHBp Y19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyAtREZSRUVCU0RfV09SS0FST1VORCI7Owot KwkgICAgZXNhYzs7Ci0rCSAgKi0qLWhwdXgqKQotKwkgICAgY2FzZSAiJGNvbXBpbGVfY29tbWFu ZCAiIGluCi0rCSAgICAqIiAtc3RhdGljICIqKSA7OwotKwkgICAgKikgcGljX2ZsYWdfZm9yX3N5 bXRhYmxlPSIgJHBpY19mbGFnIjs7Ci0rCSAgICBlc2FjCi0rCSAgZXNhYwotKwotKwkgICMgTm93 IGNvbXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9sIGZpbGUuCi0rCSAgJHNob3cgIihjZCAkb3V0cHV0 X29iamRpciAmJiAkTFRDQyAgJExUQ0ZMQUdTIC1jJG5vX2J1aWx0aW5fZmxhZyRwaWNfZmxhZ19m b3Jfc3ltdGFibGUgXCIkZGxzeW1zXCIpIgotKwkgICRydW4gZXZhbCAnKGNkICRvdXRwdXRfb2Jq ZGlyICYmICRMVENDICAkTFRDRkxBR1MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9z eW10YWJsZSAiJGRsc3ltcyIpJyB8fCBleGl0ICQ/Ci0rCi0rCSAgIyBDbGVhbiB1cCB0aGUgZ2Vu ZXJhdGVkIGZpbGVzLgotKwkgICRzaG93ICIkcm0gJG91dHB1dF9vYmpkaXIvJGRsc3ltcyAkbmxp c3QgJHtubGlzdH1TICR7bmxpc3R9VCIKLSsJICAkcnVuICRybSAiJG91dHB1dF9vYmpkaXIvJGRs c3ltcyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKLSsKLSsJICAjIFRyYW5zZm9y bSB0aGUgc3ltYm9sIGZpbGUgaW50byB0aGUgY29ycmVjdCBuYW1lLgotKyAgICAgICAgICBjYXNl ICRob3N0IGluCi0rICAgICAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCi0rICAgICAgICAgICAg aWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfS5kZWYiIDsgdGhlbgotKyAg ICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwg JFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFt ZX0uZGVmICRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQ YAotKyAgICAgICAgICAgICAgZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgkZmluYWxpemVfY29t bWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJHtv dXRwdXRuYW1lfS5kZWYgJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9JSIg fCAkTkwyU1BgCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgY29tcGlsZV9jb21t YW5kPWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZ TUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQ YAotKyAgICAgICAgICAgICAgZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgkZmluYWxpemVfY29t bWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJHtv dXRwdXRuYW1lfVMuJHtvYmpleHR9JSIgfCAkTkwyU1BgCi0rICAgICAgICAgICAgIGZpCi0rICAg ICAgICAgICAgOzsKLSsgICAgICAgICAgKiApCi0rICAgICAgICAgICAgY29tcGlsZV9jb21tYW5k PWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJ TEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAot KyAgICAgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQi IHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0 bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAg IGVzYWMKLSsJICA7OwotKwkqKQotKwkgICRlY2hvICIkbW9kZW5hbWU6IHVua25vd24gc3VmZml4 IGZvciBcYCRkbHN5bXMnIiAxPiYyCi0rCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgOzsKLSsJ ZXNhYwotKyAgICAgIGVsc2UKLSsJIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0aGUgdXNl ciBkaWRuJ3QgcmVmZXIgdG8KLSsJIyBsdF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIg d2lsbCBmYWlsIGlmIGdsb2JhbF9zeW1ib2xfcGlwZQotKwkjIHJlYWxseSB3YXMgcmVxdWlyZWQu Ci0rCi0rCSMgTnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCi0rCWNvbXBpbGVfY29tbWFuZD1gJGVj aG8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAl JSIgfCAkTkwyU1BgCi0rCWZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1h bmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlIiB8ICROTDJTUGAKLSsgICAg ICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRuZWVkX3JlbGluayIgPSBubyB8fCB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmls ZSBzcGVjaWZpY2F0aW9uLgotKwljb21waWxlX2NvbW1hbmQ9YCRlY2hvICJYJGNvbXBpbGVfY29t bWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyB8ICRO TDJTUGAKLSsJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0r Ci0rCSMgV2UgaGF2ZSBubyB1bmluc3RhbGxlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcywgc28gZmlu YWxpemUgcmlnaHQgbm93LgotKwkkc2hvdyAiJGxpbmtfY29tbWFuZCIKLSsJJHJ1biBldmFsICIk bGlua19jb21tYW5kIgotKwlleGl0X3N0YXR1cz0kPwotKwotKwkjIERlbGV0ZSB0aGUgZ2VuZXJh dGVkIGZpbGVzLgotKwlpZiB0ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgotKwkgICRzaG93ICIkcm0g JG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IgotKwkgICRydW4gJHJtICIk b3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iCi0rCWZpCi0rCi0rCWV4aXQg JGV4aXRfc3RhdHVzCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRo X3ZhciI7IHRoZW4KLSsJIyBXZSBzaG91bGQgc2V0IHRoZSBzaGxpYnBhdGhfdmFyCi0rCXJwYXRo PQotKwlmb3IgZGlyIGluICR0ZW1wX3JwYXRoOyBkbwotKwkgIGNhc2UgJGRpciBpbgotKwkgIFtc XC9dKiB8IFtBLVphLXpdOltcXC9dKikKLSsJICAgICMgQWJzb2x1dGUgcGF0aC4KLSsJICAgIHJw YXRoPSIkcnBhdGgkZGlyOiIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgICMgUmVsYXRpdmUgcGF0 aDogYWRkIGEgdGhpc2RpciBlbnRyeS4KLSsJICAgIHJwYXRoPSIkcnBhdGhcJHRoaXNkaXIvJGRp cjoiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJZG9uZQotKwl0ZW1wX3JwYXRoPSIkcnBhdGgiCi0r ICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxp emVfc2hsaWJwYXRoIjsgdGhlbgotKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwi JGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAk Y29tcGlsZV9jb21tYW5kIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAtbiAiJGZpbmFsaXpl X3NobGlicGF0aCI7IHRoZW4KLSsJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIk ZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5kIgot KyAgICAgIGZpCi0rCi0rICAgICAgY29tcGlsZV92YXI9Ci0rICAgICAgZmluYWxpemVfdmFyPQot KyAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJHBl cm1fcnBhdGgiOyB0aGVuCi0rCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJ ICBycGF0aD0KLSsJICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbwotKwkgICAgcnBhdGg9IiRy cGF0aCRkaXI6IgotKwkgIGRvbmUKLSsJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJw YXRoXCQkcnVucGF0aF92YXJcIiAiCi0rCWZpCi0rCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJt X3JwYXRoIjsgdGhlbgotKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAg cnBhdGg9Ci0rCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KLSsJICAgIHJw YXRoPSIkcnBhdGgkZGlyOiIKLSsJICBkb25lCi0rCSAgZmluYWxpemVfdmFyPSIkcnVucGF0aF92 YXI9XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAg IGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgotKwkjIFdlIGRvbid0IG5lZWQgdG8g Y3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCi0rCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNv bXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgotKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxl IHNwZWNpZmljYXRpb24uCi0rCWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkbGlua19jb21tYW5kIiB8 ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAotKwkjIERlbGV0ZSB0aGUgb2xk IG91dHB1dCBmaWxlLgotKwkkcnVuICRybSAkb3V0cHV0Ci0rCSMgTGluayB0aGUgZXhlY3V0YWJs ZSBhbmQgZXhpdAotKwkkc2hvdyAiJGxpbmtfY29tbWFuZCIKLSsJJHJ1biBldmFsICIkbGlua19j b21tYW5kIiB8fCBleGl0ICQ/Ci0rCWV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIGZpCi0rCi0r ICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KLSsJIyBGYXN0 IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVf dmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgotKwlyZWxpbmtfY29tbWFuZD0iJGZp bmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwotKwkkZWNobyAi JG1vZGVuYW1lOiB3YXJuaW5nOiB0aGlzIHBsYXRmb3JtIGRvZXMgbm90IGxpa2UgdW5pbnN0YWxs ZWQgc2hhcmVkIGxpYnJhcmllcyIgMT4mMgotKwkkZWNobyAiJG1vZGVuYW1lOiBcYCRvdXRwdXQn IHdpbGwgYmUgcmVsaW5rZWQgZHVyaW5nIGluc3RhbGxhdGlvbiIgMT4mMgotKyAgICAgIGVsc2UK LSsJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KLSsJICBsaW5rX2NvbW1hbmQ9 IiRmaW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwkgIGlmIHRl c3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJGVj aG8gIlgkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFNQMk5M IHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJyB8ICROTDJTUGAKLSsJ ICBlbHNlCi0rCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVlZGxlc3MKLSsJICAgIHJl bGlua19jb21tYW5kPQotKwkgIGZpCi0rCWVsc2UKLSsJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxl X3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKLSsJICByZWxpbmtfY29tbWFuZD0i JGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgotKwlmaQotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9u LgotKyAgICAgIGxpbmtfY29tbWFuZD1gJGVjaG8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1l ICdzJUBPVVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKLSsKLSsgICAg ICAjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlcy4KLSsgICAgICAkcnVuICRybSAkb3V0cHV0 ICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRwdXRuYW1l Ci0rCi0rICAgICAgJHNob3cgIiRsaW5rX2NvbW1hbmQiCi0rICAgICAgJHJ1biBldmFsICIkbGlu a19jb21tYW5kIiB8fCBleGl0ICQ/Ci0rCi0rICAgICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVy IHNjcmlwdC4KLSsgICAgICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFF1 b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCi0rICAgICAgaWYgdGVzdCAtbiAi JHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBt YXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCi0rCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rOyBkbwotKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0 aGVuCi0rCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwg dW5zZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5k IgotKwkgIGVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsg dGhlbgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19j b21tYW5kIgotKwkgIGVsc2UKLSsJICAgIHZhcl92YWx1ZT1gJGVjaG8gIlgkdmFyX3ZhbHVlIiB8 ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsJICAgIHJlbGlua19jb21tYW5kPSIkdmFy PVwiJHZhcl92YWx1ZVwiOyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwkgIGZpCi0r CWRvbmUKLSsJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIKLSsJ cmVsaW5rX2NvbW1hbmQ9YCRlY2hvICJYJHJlbGlua19jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2Vk IC1lICIkc2VkX3F1b3RlX3N1YnN0IiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgICMg UXVvdGUgJGVjaG8gZm9yIHNoaXBwaW5nLgotKyAgICAgIGlmIHRlc3QgIlgkZWNobyIgPSAiWCRT SEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgotKwljYXNlICRwcm9ncGF0aCBp bgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0t ZmFsbGJhY2stZWNobyI7OwotKwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZh bGxiYWNrLWVjaG8iOzsKLSsJZXNhYwotKwlxZWNobz1gJGVjaG8gIlgkcWVjaG8iIHwgJFhzZWQg LWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGVsc2UKLSsJcWVjaG89YCRlY2hvICJYJGVj aG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGZpCi0rCi0rICAgICAg IyBPbmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBvdXIgcnVuIGNvbW1hbmQgaXMgbm9uLW51bGwu Ci0rICAgICAgaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KLSsJIyB3aW4zMiB3aWxsIHRoaW5rIHRo ZSBzY3JpcHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFzCi0rCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ug c3RyaXAgaXQgb2ZmIGhlcmUuCi0rCWNhc2UgJG91dHB1dCBpbgotKwkgICouZXhlKSBvdXRwdXQ9 YCRlY2hvICRvdXRwdXR8JHtTRUR9ICdzLC5leGUkLCwnYCA7OwotKwllc2FjCi0rCSMgdGVzdCBm b3IgY3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucwotKwljYXNlICRo b3N0IGluCi0rCSAgKmN5Z3dpbiopCi0rCSAgICBleGVleHQ9LmV4ZQotKwkgICAgb3V0cHV0bmFt ZT1gJGVjaG8gJG91dHB1dG5hbWV8JHtTRUR9ICdzLC5leGUkLCwnYCA7OwotKwkgICopIGV4ZWV4 dD0gOzsKLSsJZXNhYwotKwljYXNlICRob3N0IGluCi0rCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkK LSsgICAgICAgICAgICBvdXRwdXRfbmFtZT1gYmFzZW5hbWUgJG91dHB1dGAKLSsgICAgICAgICAg ICBvdXRwdXRfcGF0aD1gZGlybmFtZSAkb3V0cHV0YAotKyAgICAgICAgICAgIGN3cmFwcGVyc291 cmNlPSIkb3V0cHV0X3BhdGgvJG9iamRpci9sdC0kb3V0cHV0X25hbWUuYyIKLSsgICAgICAgICAg ICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCi0rICAgICAgICAgICAg JHJtICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKLSsgICAgICAgICAgICB0cmFwICIkcm0gJGN3 cmFwcGVyc291cmNlICRjd3JhcHBlcjsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKLSsKLSsJ ICAgIGNhdCA+ICRjd3JhcHBlcnNvdXJjZSA8PEVPRgotKwotKy8qICRjd3JhcHBlcnNvdXJjZSAt IHRlbXBvcmFyeSB3cmFwcGVyIGV4ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKLSsg ICBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04kVElNRVNUQU1Q Ci0rCi0rICAgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQg dW50aWwgYWxsIHRoZSBsaWJ0b29sCi0rICAgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBh cmUgaW5zdGFsbGVkLgotKwotKyAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZl ciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KLSsgICBJZiBpdCBpcywgaXQg d2lsbCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCi0rCi0rICAgQ3VycmVudGx5LCBpdCBzaW1wbHkg ZXhlY3MgdGhlIHdyYXBwZXIgKnNjcmlwdCogIi9iaW4vc2ggJG91dHB1dCIsCi0rICAgYnV0IGNv dWxkIGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2NyaXB0cyBmdW5jdGlvbmFsaXR5IGFu ZAotKyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3RseS4KLSsqLwotK0VPRgotKwkg ICAgY2F0ID4+ICRjd3JhcHBlcnNvdXJjZTw8IkVPRiIKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsj aW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxtYWxs b2MuaD4KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPGFzc2VydC5oPgotKyNpbmNs dWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8Y3R5cGUuaD4KLSsjaW5jbHVkZSA8c3lzL3N0YXQu aD4KLSsKLSsjaWYgZGVmaW5lZChQQVRIX01BWCkKLSsjIGRlZmluZSBMVF9QQVRITUFYIFBBVEhf TUFYCi0rI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQotKyMgZGVmaW5lIExUX1BBVEhNQVggTUFY UEFUSExFTgotKyNlbHNlCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCAxMDI0Ci0rI2VuZGlmCi0rCi0r I2lmbmRlZiBESVJfU0VQQVJBVE9SCi0rIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKLSsjIGRl ZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX1dJTjMy KSB8fCBkZWZpbmVkIChfX01TRE9TX18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAotKyAg ZGVmaW5lZCAoX19PUzJfXykKLSsjIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQot KyMgaWZuZGVmIERJUl9TRVBBUkFUT1JfMgotKyMgIGRlZmluZSBESVJfU0VQQVJBVE9SXzIgJ1xc JwotKyMgZW5kaWYKLSsjIGlmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCi0rIyAgZGVmaW5lIFBBVEhf U0VQQVJBVE9SXzIgJzsnCi0rIyBlbmRpZgotKyNlbmRpZgotKwotKyNpZm5kZWYgRElSX1NFUEFS QVRPUl8yCi0rIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gRElSX1NFUEFS QVRPUikKLSsjZWxzZSAvKiBESVJfU0VQQVJBVE9SXzIgKi8KLSsjIGRlZmluZSBJU19ESVJfU0VQ QVJBVE9SKGNoKSBcCi0rICAgICAgICAoKChjaCkgPT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkg PT0gRElSX1NFUEFSQVRPUl8yKSkKLSsjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCi0rCi0r I2lmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCi0rIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gp ICgoY2gpID09IFBBVEhfU0VQQVJBVE9SKQotKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8K LSsjIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1Jf MikKLSsjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLwotKwotKyNkZWZpbmUgWE1BTExPQyh0 eXBlLCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkK LSsjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKLSsgIGlmIChzdGFsZSkgeyBmcmVlICgodm9p ZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCi0rfSB3aGlsZSAoMCkKLSsKLSsvKiAtRERFQlVH IGlzIGZhaXJseSBjb21tb24gaW4gQ0ZMQUdTLiAgKi8KLSsjdW5kZWYgREVCVUcKLSsjaWYgZGVm aW5lZCBERUJVR1dSQVBQRVIKLSsjIGRlZmluZSBERUJVRyhmb3JtYXQsIC4uLikgZnByaW50Zihz dGRlcnIsIGZvcm1hdCwgX19WQV9BUkdTX18pCi0rI2Vsc2UKLSsjIGRlZmluZSBERUJVRyhmb3Jt YXQsIC4uLikKLSsjZW5kaWYKLSsKLStjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOwot KwotK3ZvaWQgKiB4bWFsbG9jIChzaXplX3QgbnVtKTsKLStjaGFyICogeHN0cmR1cCAoY29uc3Qg Y2hhciAqc3RyaW5nKTsKLStjb25zdCBjaGFyICogYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1l KTsKLStjaGFyICogZmluZF9leGVjdXRhYmxlKGNvbnN0IGNoYXIgKndyYXBwZXIpOwotK2ludCAg ICBjaGVja19leGVjdXRhYmxlKGNvbnN0IGNoYXIgKnBhdGgpOwotK2NoYXIgKiBzdHJlbmR6YXAo Y2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOwotK3ZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIg Km1lc3NhZ2UsIC4uLik7Ci0rCi0raW50Ci0rbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK LSt7Ci0rICBjaGFyICoqbmV3YXJnejsKLSsgIGludCBpOwotKwotKyAgcHJvZ3JhbV9uYW1lID0g KGNoYXIgKikgeHN0cmR1cCAoYmFzZV9uYW1lIChhcmd2WzBdKSk7Ci0rICBERUJVRygiKG1haW4p IGFyZ3ZbMF0gICAgICA6ICVzXG4iLGFyZ3ZbMF0pOwotKyAgREVCVUcoIihtYWluKSBwcm9ncmFt X25hbWUgOiAlc1xuIixwcm9ncmFtX25hbWUpOwotKyAgbmV3YXJneiA9IFhNQUxMT0MoY2hhciAq LCBhcmdjKzIpOwotK0VPRgotKwotKyAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2Ug PDxFT0YKLSsgIG5ld2FyZ3pbMF0gPSAoY2hhciAqKSB4c3RyZHVwKCIkU0hFTEwiKTsKLStFT0YK LSsKLSsgICAgICAgICAgICBjYXQgPj4gJGN3cmFwcGVyc291cmNlIDw8IkVPRiIKLSsgIG5ld2Fy Z3pbMV0gPSBmaW5kX2V4ZWN1dGFibGUoYXJndlswXSk7Ci0rICBpZiAobmV3YXJnelsxXSA9PSBO VUxMKQotKyAgICBsdF9mYXRhbCgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOwotKyAgREVC VUcoIihtYWluKSBmb3VuZCBleGUgYXQgOiAlc1xuIixuZXdhcmd6WzFdKTsKLSsgIC8qIHdlIGtu b3cgdGhlIHNjcmlwdCBoYXMgdGhlIHNhbWUgbmFtZSwgd2l0aG91dCB0aGUgLmV4ZSAqLwotKyAg Lyogc28gbWFrZSBzdXJlIG5ld2FyZ3pbMV0gZG9lc24ndCBlbmQgaW4gLmV4ZSAqLwotKyAgc3Ry ZW5kemFwKG5ld2FyZ3pbMV0sIi5leGUiKTsKLSsgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKysp Ci0rICAgIG5ld2FyZ3pbaSsxXSA9IHhzdHJkdXAoYXJndltpXSk7Ci0rICBuZXdhcmd6W2FyZ2Mr MV0gPSBOVUxMOwotKwotKyAgZm9yIChpPTA7IGk8YXJnYysxOyBpKyspCi0rICB7Ci0rICAgIERF QlVHKCIobWFpbikgbmV3YXJnelslZF0gICA6ICVzXG4iLGksbmV3YXJneltpXSk7Ci0rICAgIDsK LSsgIH0KLSsKLStFT0YKLSsKLSsgICAgICAgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg ICAgICAgICBtaW5ndyopCi0rICAgICAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2Ug PDxFT0YKLSsgIGV4ZWN2KCIkU0hFTEwiLChjaGFyIGNvbnN0ICoqKW5ld2FyZ3opOwotK0VPRgot KyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgICAgICopCi0rICAgICAgICAgICAgICAgIGNh dCA+PiAkY3dyYXBwZXJzb3VyY2UgPDxFT0YKLSsgIGV4ZWN2KCIkU0hFTEwiLG5ld2FyZ3opOwot K0VPRgotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAg ICAgY2F0ID4+ICRjd3JhcHBlcnNvdXJjZSA8PCJFT0YiCi0rICByZXR1cm4gMTI3OwotK30KLSsK LSt2b2lkICoKLSt4bWFsbG9jIChzaXplX3QgbnVtKQotK3sKLSsgIHZvaWQgKiBwID0gKHZvaWQg KikgbWFsbG9jIChudW0pOwotKyAgaWYgKCFwKQotKyAgICBsdF9mYXRhbCAoIk1lbW9yeSBleGhh dXN0ZWQiKTsKLSsKLSsgIHJldHVybiBwOwotK30KLSsKLStjaGFyICoKLSt4c3RyZHVwIChjb25z dCBjaGFyICpzdHJpbmcpCi0rewotKyAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAoKGNoYXIgKikg eG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksIHN0cmluZykgOiBOVUxMCi0rOwotK30KLSsK LStjb25zdCBjaGFyICoKLStiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCi0rewotKyAgY29u c3QgY2hhciAqYmFzZTsKLSsKLSsjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNU RU0pCi0rICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICov Ci0rICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpbmFtZVswXSkgJiYgbmFtZVsxXSA9PSAn OicpCi0rICAgIG5hbWUgKz0gMjsKLSsjZW5kaWYKLSsKLSsgIGZvciAoYmFzZSA9IG5hbWU7ICpu YW1lOyBuYW1lKyspCi0rICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICgqbmFtZSkpCi0rICAgICAg YmFzZSA9IG5hbWUgKyAxOwotKyAgcmV0dXJuIGJhc2U7Ci0rfQotKwotK2ludAotK2NoZWNrX2V4 ZWN1dGFibGUoY29uc3QgY2hhciAqIHBhdGgpCi0rewotKyAgc3RydWN0IHN0YXQgc3Q7Ci0rCi0r ICBERUJVRygiKGNoZWNrX2V4ZWN1dGFibGUpICA6ICVzXG4iLCBwYXRoID8gKCpwYXRoID8gcGF0 aCA6ICJFTVBUWSEiKSA6ICJOVUxMISIpOwotKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCi0r ICAgIHJldHVybiAwOwotKwotKyAgaWYgKChzdGF0IChwYXRoLCAmc3QpID49IDApICYmCi0rICAg ICAgKAotKyAgICAgICAgLyogTWluR1cgJiBuYXRpdmUgV0lOMzIgZG8gbm90IHN1cHBvcnQgU19J WE9USCBvciBTX0lYR1JQICovCi0rI2lmIGRlZmluZWQgKFNfSVhPVEgpCi0rICAgICAgICgoc3Qu c3RfbW9kZSAmIFNfSVhPVEgpID09IFNfSVhPVEgpIHx8Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQg KFNfSVhHUlApCi0rICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhHUlApID09IFNfSVhHUlApIHx8 Ci0rI2VuZGlmCi0rICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhVU1IpID09IFNfSVhVU1IpKQot KyAgICAgICkKLSsgICAgcmV0dXJuIDE7Ci0rICBlbHNlCi0rICAgIHJldHVybiAwOwotK30KLSsK LSsvKiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBlci4gIFJldHVybnMK LSsgICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3 aXNlICovCi0rY2hhciAqCi0rZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyKiB3cmFwcGVyKQot K3sKLSsgIGludCBoYXNfc2xhc2ggPSAwOwotKyAgY29uc3QgY2hhciogcDsKLSsgIGNvbnN0IGNo YXIqIHBfbmV4dDsKLSsgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3ZCAqLwotKyAgY2hhciB0 bXBbTFRfUEFUSE1BWCArIDFdOwotKyAgaW50IHRtcF9sZW47Ci0rICBjaGFyKiBjb25jYXRfbmFt ZTsKLSsKLSsgIERFQlVHKCIoZmluZF9leGVjdXRhYmxlKSAgOiAlc1xuIiwgd3JhcHBlciA/ICgq d3JhcHBlciA/IHdyYXBwZXIgOiAiRU1QVFkhIikgOiAiTlVMTCEiKTsKLSsKLSsgIGlmICgod3Jh cHBlciA9PSBOVUxMKSB8fCAoKndyYXBwZXIgPT0gJ1wwJykpCi0rICAgIHJldHVybiBOVUxMOwot KwotKyAgLyogQWJzb2x1dGUgcGF0aD8gKi8KLSsjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURf RklMRV9TWVNURU0pCi0rICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpd3JhcHBlclswXSkg JiYgd3JhcHBlclsxXSA9PSAnOicpCi0rICB7Ci0rICAgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAo d3JhcHBlcik7Ci0rICAgIGlmIChjaGVja19leGVjdXRhYmxlKGNvbmNhdF9uYW1lKSkKLSsgICAg ICByZXR1cm4gY29uY2F0X25hbWU7Ci0rICAgIFhGUkVFKGNvbmNhdF9uYW1lKTsKLSsgIH0KLSsg IGVsc2UKLSsgIHsKLSsjZW5kaWYKLSsgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJb MF0pKQotKyAgICB7Ci0rICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKLSsg ICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZShjb25jYXRfbmFtZSkpCi0rICAgICAgICByZXR1cm4g Y29uY2F0X25hbWU7Ci0rICAgICAgWEZSRUUoY29uY2F0X25hbWUpOwotKyAgICB9Ci0rI2lmIGRl ZmluZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgfQotKyNlbmRpZgotKwotKyAg Zm9yIChwID0gd3JhcHBlcjsgKnA7IHArKykKLSsgICAgaWYgKCpwID09ICcvJykKLSsgICAgewot KyAgICAgIGhhc19zbGFzaCA9IDE7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSsgIGlmICghaGFz X3NsYXNoKQotKyAgewotKyAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLwotKyAgICBj b25zdCBjaGFyKiBwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOwotKyAgICBpZiAocGF0aCAhPSBOVUxM KQotKyAgICB7Ci0rICAgICAgZm9yIChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCi0rICAgICAg ewotKyAgICAgICAgY29uc3QgY2hhciogcTsKLSsgICAgICAgIHNpemVfdCBwX2xlbjsKLSsgICAg ICAgIGZvciAocSA9IHA7ICpxOyBxKyspCi0rICAgICAgICAgIGlmIChJU19QQVRIX1NFUEFSQVRP UigqcSkpCi0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICBwX2xlbiA9IHEgLSBwOwotKyAg ICAgICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOwotKyAgICAgICAgaWYgKHBf bGVuID09IDApCi0rICAgICAgICB7Ci0rICAgICAgICAgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQg ZGlyZWN0b3J5ICovCi0rICAgICAgICAgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkgPT0g TlVMTCkKLSsgICAgICAgICAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWlsZWQiKTsKLSsgICAgICAg ICAgdG1wX2xlbiA9IHN0cmxlbih0bXApOwotKyAgICAgICAgICBjb25jYXRfbmFtZSA9IFhNQUxM T0MoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4od3JhcHBlcikgKyAxKTsKLSsgICAgICAgICAg bWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKLSsgICAgICAgICAgY29uY2F0X25h bWVbdG1wX2xlbl0gPSAnLyc7Ci0rICAgICAgICAgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBf bGVuICsgMSwgd3JhcHBlcik7Ci0rICAgICAgICB9Ci0rICAgICAgICBlbHNlCi0rICAgICAgICB7 Ci0rICAgICAgICAgIGNvbmNhdF9uYW1lID0gWE1BTExPQyhjaGFyLCBwX2xlbiArIDEgKyBzdHJs ZW4od3JhcHBlcikgKyAxKTsKLSsgICAgICAgICAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9s ZW4pOwotKyAgICAgICAgICBjb25jYXRfbmFtZVtwX2xlbl0gPSAnLyc7Ci0rICAgICAgICAgIHN0 cmNweSAoY29uY2F0X25hbWUgKyBwX2xlbiArIDEsIHdyYXBwZXIpOwotKyAgICAgICAgfQotKyAg ICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0X25hbWUpKQotKyAgICAgICAgICByZXR1 cm4gY29uY2F0X25hbWU7Ci0rICAgICAgICBYRlJFRShjb25jYXRfbmFtZSk7Ci0rICAgICAgfQot KyAgICB9Ci0rICAgIC8qIG5vdCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUgY3VyZGlyICovCi0rICB9 Ci0rICAvKiBSZWxhdGl2ZSBwYXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHByZXBlbmQgY3dkICov Ci0rICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0rICAgIGx0X2ZhdGFs ICgiZ2V0Y3dkIGZhaWxlZCIpOwotKyAgdG1wX2xlbiA9IHN0cmxlbih0bXApOwotKyAgY29uY2F0 X25hbWUgPSBYTUFMTE9DKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuKHdyYXBwZXIpICsgMSk7 Ci0rICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwotKyAgY29uY2F0X25hbWVb dG1wX2xlbl0gPSAnLyc7Ci0rICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdy YXBwZXIpOwotKwotKyAgaWYgKGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0X25hbWUpKQotKyAgICBy ZXR1cm4gY29uY2F0X25hbWU7Ci0rICBYRlJFRShjb25jYXRfbmFtZSk7Ci0rICByZXR1cm4gTlVM TDsKLSt9Ci0rCi0rY2hhciAqCi0rc3RyZW5kemFwKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0 KQotK3sKLSsgIHNpemVfdCBsZW4sIHBhdGxlbjsKLSsKLSsgIGFzc2VydChzdHIgIT0gTlVMTCk7 Ci0rICBhc3NlcnQocGF0ICE9IE5VTEwpOwotKwotKyAgbGVuID0gc3RybGVuKHN0cik7Ci0rICBw YXRsZW4gPSBzdHJsZW4ocGF0KTsKLSsKLSsgIGlmIChwYXRsZW4gPD0gbGVuKQotKyAgewotKyAg ICBzdHIgKz0gbGVuIC0gcGF0bGVuOwotKyAgICBpZiAoc3RyY21wKHN0ciwgcGF0KSA9PSAwKQot KyAgICAgICpzdHIgPSAnXDAnOwotKyAgfQotKyAgcmV0dXJuIHN0cjsKLSt9Ci0rCi0rc3RhdGlj IHZvaWQKLStsdF9lcnJvcl9jb3JlIChpbnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKiBtb2Rl LAotKyAgICAgICAgICBjb25zdCBjaGFyICogbWVzc2FnZSwgdmFfbGlzdCBhcCkKLSt7Ci0rICBm cHJpbnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwgbW9kZSk7Ci0rICB2ZnBy aW50ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7Ci0rICBmcHJpbnRmIChzdGRlcnIsICIuXG4iKTsK LSsKLSsgIGlmIChleGl0X3N0YXR1cyA+PSAwKQotKyAgICBleGl0IChleGl0X3N0YXR1cyk7Ci0r fQotKwotK3ZvaWQKLStsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQotK3sKLSsg IHZhX2xpc3QgYXA7Ci0rICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwotKyAgbHRfZXJyb3JfY29y ZSAoRVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7Ci0rICB2YV9lbmQgKGFwKTsK LSt9Ci0rRU9GCi0rICAgICAgICAgICMgd2Ugc2hvdWxkIHJlYWxseSB1c2UgYSBidWlsZC1wbGF0 Zm9ybSBzcGVjaWZpYyBjb21waWxlcgotKyAgICAgICAgICAjIGhlcmUsIGJ1dCBPVE9ILCB0aGUg d3JhcHBlcnMgKHNoZWxsIHNjcmlwdCBhbmQgdGhpcyBDIG9uZSkKLSsgICAgICAgICAgIyBhcmUg b25seSB1c2VmdWwgaWYgeW91IHdhbnQgdG8gZXhlY3V0ZSB0aGUgInJlYWwiIGJpbmFyeS4KLSsg ICAgICAgICAgIyBTaW5jZSB0aGUgInJlYWwiIGJpbmFyeSBpcyBidWlsdCBmb3IgJGhvc3QsIHRo ZW4gdGhpcwotKyAgICAgICAgICAjIHdyYXBwZXIgbWlnaHQgYXMgd2VsbCBiZSBidWlsdCBmb3Ig JGhvc3QsIHRvby4KLSsgICAgICAgICAgJHJ1biAkTFRDQyAkTFRDRkxBR1MgLXMgLW8gJGN3cmFw cGVyICRjd3JhcHBlcnNvdXJjZQotKyAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAg ICAgJHJtICRvdXRwdXQKLSsgICAgICAgIHRyYXAgIiRybSAkb3V0cHV0OyBleGl0ICRFWElUX0ZB SUxVUkUiIDEgMiAxNQotKwotKwkkZWNobyA+ICRvdXRwdXQgIlwKLSsjISAkU0hFTEwKLSsKLSsj ICRvdXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5h bWUKLSsjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1F U1RBTVAKLSsjCi0rIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVj dXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKLSsjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMg b24gYXJlIGluc3RhbGxlZC4KLSsjCi0rIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZl ciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KLSsjIElmIGl0IGlzLCBpdCB3 aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBo ZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0rIyBtZXRhY2hh cmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5n cy4KLStYc2VkPScke1NFRH0gLWUgMXMvXlgvLycKLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVv dGVfc3Vic3QnCi0rCi0rIyBCZSBCb3VybmUgY29tcGF0aWJsZSAodGFrZW4gZnJvbSBBdXRvY29u ZjpfQVNfQk9VUk5FX0NPTVBBVElCTEUpLgotK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitz ZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBz aAotKyAgTlVMTENNRD06Ci0rICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0 dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNh Z2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0n XCJcJEBcIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBcYChzZXQg LW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYwotK2ZpCi0r QklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKLStEVUFMQ0FTRT0xOyBleHBv cnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0rCi0rIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBz aGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKLSsjIGlmIENEUEFUSCBp cyBzZXQuCi0rKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAot KwotK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKLSsKLSsjIFRoaXMgZW52aXJv bm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCi0raWYgdGVzdCBc IlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCi0rICAjIGluc3Rh bGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlOgotKyAgbm90aW5zdF9kZXBsaWJz PSckbm90aW5zdF9kZXBsaWJzJwotK2Vsc2UKLSsgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBl eGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRlY2hvIGFyZSBhbHJlYWR5IHNldC4KLSsgIGlmIHRl c3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAg ZWNobz1cIiRxZWNob1wiCi0rICAgIGZpbGU9XCJcJDBcIgotKyAgICAjIE1ha2Ugc3VyZSBlY2hv IHdvcmtzLgotKyAgICBpZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0rICAg ICAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCi0rICAgICAg c2hpZnQKLSsgICAgZWxpZiB0ZXN0IFwiWFxgKFwkZWNobyAnXHQnKSAyPi9kZXYvbnVsbFxgXCIg PSAnWFx0JzsgdGhlbgotKyAgICAgICMgWWlwcGVlLCBcJGVjaG8gd29ya3MhCi0rICAgICAgOgot KyAgICBlbHNlCi0rICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQg dGhlbiBtYXliZSBcJGVjaG8gd2lsbCB3b3JrLgotKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIg LS1uby1yZWV4ZWMgXCR7MStcIlwkQFwifQotKyAgICBmaQotKyAgZmlcCi0rIgotKwkkZWNobyA+ PiAkb3V0cHV0ICJcCi0rCi0rICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IHRoaXMgc2NyaXB0 IGxpdmVzIGluLgotKyAgdGhpc2Rpcj1cYFwkZWNobyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAn cyUvW14vXSokJSUnXGAKLSsgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0 aGlzZGlyPS4KLSsKLSsgICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGlsIHdlIGdldCB0byB0 aGUgcmVhbCB0aGlzZGlyLgotKyAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJHtTRUR9IC1u ICdzLy4qLT4gLy9wJ1xgCi0rICB3aGlsZSB0ZXN0IC1uIFwiXCRmaWxlXCI7IGRvCi0rICAgIGRl c3RkaXI9XGBcJGVjaG8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAot KwotKyAgICAjIElmIHRoZXJlIHdhcyBhIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gY2hhbmdl IHRoaXNkaXIuCi0rICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRo ZW4KLSsgICAgICBjYXNlIFwiXCRkZXN0ZGlyXCIgaW4KLSsgICAgICBbXFxcXC9dKiB8IFtBLVph LXpdOltcXFxcL10qKSB0aGlzZGlyPVwiXCRkZXN0ZGlyXCIgOzsKLSsgICAgICAqKSB0aGlzZGly PVwiXCR0aGlzZGlyL1wkZGVzdGRpclwiIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKwotKyAg ICBmaWxlPVxgXCRlY2hvIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJV4uKi8lJSdcYAotKyAg ICBmaWxlPVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4g Ly9wJ1xgCi0rICBkb25lCi0rCi0rICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9y eSBuYW1lLgotKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAotKyAgdGVzdCAt biBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKLSsiCi0rCi0rCWlmIHRlc3Qg IiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCi0rCSAgJGVjaG8gPj4gJG91dHB1dCAiXAotKyAg cHJvZ3JhbT1sdC0nJG91dHB1dG5hbWUnJGV4ZWV4dAotKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8k b2JqZGlyXCIKLSsKLSsgIGlmIHRlc3QgISAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiB8fCBc XAotKyAgICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcIlwkcHJv Z2Rpci8uLi9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAxcVxgOyBcXAotKyAgICAg ICB0ZXN0IFwiWFwkZmlsZVwiICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfTsgdGhlbgot KwotKyAgICBmaWxlPVwiXCRcJC1cJHByb2dyYW1cIgotKwotKyAgICBpZiB0ZXN0ICEgLWQgXCJc JHByb2dkaXJcIjsgdGhlbgotKyAgICAgICRta2RpciBcIlwkcHJvZ2RpclwiCi0rICAgIGVsc2UK LSsgICAgICAkcm0gXCJcJHByb2dkaXIvXCRmaWxlXCIKLSsgICAgZmkiCi0rCi0rCSAgJGVjaG8g Pj4gJG91dHB1dCAiXAotKwotKyAgICAjIHJlbGluayBleGVjdXRhYmxlIGlmIG5lY2Vzc2FyeQot KyAgICBpZiB0ZXN0IC1uIFwiXCRyZWxpbmtfY29tbWFuZFwiOyB0aGVuCi0rICAgICAgaWYgcmVs aW5rX2NvbW1hbmRfb3V0cHV0PVxgZXZhbCBcJHJlbGlua19jb21tYW5kIDI+JjFcYDsgdGhlbiA6 Ci0rICAgICAgZWxzZQotKwkkZWNobyBcIlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCi0r CSRybSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBm aQotKyAgICBmaQotKwotKyAgICAkbXYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIv XCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfHwKLSsgICAgeyAkcm0gXCJcJHByb2dkaXIvXCRwcm9n cmFtXCI7Ci0rICAgICAgJG12IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJv Z3JhbVwiOyB9Ci0rICAgICRybSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgotKyAgZmkiCi0rCWVsc2UK LSsJICAkZWNobyA+PiAkb3V0cHV0ICJcCi0rICBwcm9ncmFtPSckb3V0cHV0bmFtZScKLSsgIHBy b2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCi0rIgotKwlmaQotKwotKwkkZWNobyA+PiAkb3V0 cHV0ICJcCi0rCi0rICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0aGVuIgot KwotKwkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4KLSsJaWYgdGVz dCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGli cGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgotKwkgICRlY2hvID4+ICRv dXRwdXQgIlwKLSsgICAgIyBBZGQgb3VyIG93biBsaWJyYXJ5IHBhdGggdG8gJHNobGlicGF0aF92 YXIKLSsgICAgJHNobGlicGF0aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNobGlicGF0aF92YXJcIgot KwotKyAgICAjIFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0ZWQg JHNobGlicGF0aF92YXIKLSsgICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlzIGEgd29ya2Fyb3VuZCBm b3IgYSBidWcgaW4gQmVPUyBSNCBzZWQKLSsgICAgJHNobGlicGF0aF92YXI9XGBcJGVjaG8gXCJY XCQkc2hsaWJwYXRoX3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKLSsKLSsgICAgZXhw b3J0ICRzaGxpYnBhdGhfdmFyCi0rIgotKwlmaQotKwotKwkjIGZpeHVwIHRoZSBkbGwgc2VhcmNo cGF0aCBpZiB3ZSBuZWVkIHRvLgotKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4K LSsJICAkZWNobyA+PiAkb3V0cHV0ICJcCi0rICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGgg Y29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICi0rICAgIFBBVEg9JGRsbHNlYXJjaHBh dGg6XCRQQVRICi0rIgotKwlmaQotKwotKwkkZWNobyA+PiAkb3V0cHV0ICJcCi0rICAgIGlmIHRl c3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAg ICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgotKyIKLSsJY2Fz ZSAkaG9zdCBpbgotKwkjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWlu IHdpbmRvd3MKLSsJKi0qLW1pbmd3IHwgKi0qLW9zMiopCi0rCSAgJGVjaG8gPj4gJG91dHB1dCAi XAotKyAgICAgIGV4ZWMgXCJcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQot KyIKLSsJICA7OwotKwotKwkqKQotKwkgICRlY2hvID4+ICRvdXRwdXQgIlwKLSsgICAgICBleGVj IFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KLSsiCi0rCSAgOzsKLSsJZXNh YwotKwkkZWNobyA+PiAkb3V0cHV0ICJcCi0rICAgICAgXCRlY2hvIFwiXCQwOiBjYW5ub3QgZXhl YyBcJHByb2dyYW0gXCQqXCIKLSsgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgZmkKLSsg IGVsc2UKLSsgICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgotKyAgICBcJGVjaG8gXCJc JDA6IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYy Ci0rICAgIFwkZWNobyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dy YW0uXCIgMT4mMgotKyAgICAkZWNobyBcIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBm b3IgbW9yZSBpbmZvcm1hdGlvbi5cIiAxPiYyCi0rICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAg ZmkKLStmaVwKLSsiCi0rCWNobW9kICt4ICRvdXRwdXQKLSsgICAgICBmaQotKyAgICAgIGV4aXQg JEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgd2Ug bmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCi0rICAgIGZvciBvbGRsaWIg aW4gJG9sZGxpYnM7IGRvCi0rCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIg PSBjb252ZW5pZW5jZTsgdGhlbgotKwlvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgotKwlhZGRsaWJz PSIkY29udmVuaWVuY2UiCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKyAgICAgIGVsc2UKLSsJ aWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBtb2R1bGU7IHRoZW4KLSsJICBvbGRvYmpz PSIkbGlib2Jqc19zYXZlIgotKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwllbHNlCi0rCSAg b2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCi0rCWZpCi0rCWFkZGxpYnM9 IiRvbGRfY29udmVuaWVuY2UiCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkYWRk bGlicyI7IHRoZW4KLSsJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJ Z2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCi0rCi0rCWZ1bmNfZXh0cmFjdF9hcmNoaXZl cyAkZ2VudG9wICRhZGRsaWJzCi0rCW9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3RfYXJj aGl2ZXNfcmVzdWx0IgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4g dGhlIGFyY2hpdmUgY29tbWFuZHMuCi0rICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0r ICAgICAgIGNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKLSsgICAgICBlbHNlCi0rCSMg UE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2 ZQotKwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1l cyBpZiB3ZQotKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4s IHdoZW4gY3JlYXRpbmcgYQotKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNl IGxpYnJhcnksIG9yIHdoZW4gbGlua2luZwotKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wg YXJjaGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQotKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGli dG9vbCkuCi0rCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCi0rCSAgICBkbwotKwkgICAgICAkZWNo byAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJwotKwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0 IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rCSAgOgotKwllbHNlCi0rCSAgJGVjaG8gImNv cHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4u LiIKLSsKLSsJICBpZiB0ZXN0IC16ICIkZ2VudG9wIjsgdGhlbgotKwkgICAgZ2VudG9wPSIkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJICAgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAk Z2VudG9wIgotKwotKwkgICAgJHNob3cgIiR7cm19ciAkZ2VudG9wIgotKwkgICAgJHJ1biAke3Jt fXIgIiRnZW50b3AiCi0rCSAgICAkc2hvdyAiJG1rZGlyICRnZW50b3AiCi0rCSAgICAkcnVuICRt a2RpciAiJGdlbnRvcCIKLSsJICAgIGV4aXRfc3RhdHVzPSQ/Ci0rCSAgICBpZiB0ZXN0ICIkZXhp dF9zdGF0dXMiIC1uZSAwICYmIHRlc3QgISAtZCAiJGdlbnRvcCI7IHRoZW4KLSsJICAgICAgZXhp dCAkZXhpdF9zdGF0dXMKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsJICBzYXZlX29sZG9ianM9JG9s ZG9ianMKLSsJICBvbGRvYmpzPQotKwkgIGNvdW50ZXI9MQotKwkgIGZvciBvYmogaW4gJHNhdmVf b2xkb2JqcwotKwkgIGRvCi0rCSAgICBvYmpiYXNlPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUg J3MlXi4qLyUlJ2AKLSsJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGluCi0rCSAgICAiICIpIG9sZG9i anM9JG9iaiA7OwotKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQotKwkgICAgICB3aGlsZSA6OyBk bwotKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFs c28KLSsJCSMgb3ZlcmxhcHMuCi0rCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQotKwkJY291 bnRlcj1gZXhwciAkY291bnRlciArIDFgCi0rCQljYXNlICIgJG9sZG9ianMgIiBpbgotKwkJKltc IC9dIiRuZXdvYmogIiopIDs7Ci0rCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7 IHRoZW4gYnJlYWs7IGZpIDs7Ci0rCQllc2FjCi0rCSAgICAgIGRvbmUKLSsJICAgICAgJHNob3cg ImxuICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgotKwkg ICAgICAkcnVuIGxuICIkb2JqIiAiJGdlbnRvcC8kbmV3b2JqIiB8fAotKwkgICAgICAkcnVuIGNw ICIkb2JqIiAiJGdlbnRvcC8kbmV3b2JqIgotKwkgICAgICBvbGRvYmpzPSIkb2xkb2JqcyAkZ2Vu dG9wLyRuZXdvYmoiCi0rCSAgICAgIDs7Ci0rCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAkb2Jq IiA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJZmkKLSsKLSsJZXZhbCBjbWRzPVwiJG9sZF9h cmNoaXZlX2NtZHNcIgotKwotKwlpZiBsZW49YGV4cHIgIlgkY21kcyIgOiAiLioiYCAmJgotKwkg ICAgIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4i IC1sZSAtMTsgdGhlbgotKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKLSsJZWxzZQotKwkgICMg dGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGlu IHBhcnRzCi0rCSAgJGVjaG8gInVzaW5nIHBpZWNld2lzZSBhcmNoaXZlIGxpbmtpbmcuLi4iCi0r CSAgc2F2ZV9SQU5MSUI9JFJBTkxJQgotKwkgIFJBTkxJQj06Ci0rCSAgb2JqbGlzdD0KLSsJICBj b25jYXRfY21kcz0KLSsJICBzYXZlX29sZG9ianM9JG9sZG9ianMKLSsKLSsJICAjIElzIHRoZXJl IGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KLSsJ ICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgbGFzdF9vbGRvYmo9JG9i agotKwkgIGRvbmUKLSsJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAg b2xkb2Jqcz0iJG9iamxpc3QgJG9iaiIKLSsJICAgIG9iamxpc3Q9IiRvYmpsaXN0ICRvYmoiCi0r CSAgICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsJICAgIGlmIGxlbj1g ZXhwciAiWCR0ZXN0X2NtZHMiIDogIi4qIiAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICAgIHRlc3Qg IiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIjsgdGhlbgotKwkgICAgICA6Ci0rCSAgICBlbHNlCi0r CSAgICAgICMgdGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGl0IGdldHMg dG9vIGxvbmcKLSsJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAotKwkgICAgICBpZiB0ZXN0ICIkb2Jq IiA9ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgotKwkgICAgICAgIFJBTkxJQj0kc2F2ZV9SQU5MSUIK LSsJICAgICAgZmkKLSsJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21k cz0kY29uY2F0X2NtZHN+Ci0rCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21k c30kb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAgICAgIG9iamxpc3Q9Ci0rCSAgICBmaQotKwkgIGRv bmUKLSsJICBSQU5MSUI9JHNhdmVfUkFOTElCCi0rCSAgb2xkb2Jqcz0kb2JqbGlzdAotKwkgIGlm IHRlc3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCi0rCSAgICBldmFsIGNtZHM9XCJcJGNvbmNh dF9jbWRzXCIKLSsJICBlbHNlCi0rCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwkb2xk X2FyY2hpdmVfY21kc1wiCi0rCSAgZmkKLSsJZmkKLSsgICAgICBmaQotKyAgICAgIHNhdmVfaWZz PSIkSUZTIjsgSUZTPSd+JwotKyAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rICAgICAgICBl dmFsIGNtZD1cIiRjbWRcIgotKwlJRlM9IiRzYXZlX2lmcyIKLSsJJHNob3cgIiRjbWQiCi0rCSRy dW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPwotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRzYXZl X2lmcyIKLSsgICAgZG9uZQotKwotKyAgICBpZiB0ZXN0IC1uICIkZ2VuZXJhdGVkIjsgdGhlbgot KyAgICAgICRzaG93ICIke3JtfXIkZ2VuZXJhdGVkIgotKyAgICAgICRydW4gJHtybX1yJGdlbmVy YXRlZAotKyAgICBmaQotKwotKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2ZS4K LSsgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICoubGEpCi0rICAgICAgb2xkX2xpYnJhcnk9Ci0r ICAgICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGlicmFyeT0iJGxpYm5h bWUuJGxpYmV4dCIKLSsgICAgICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAj IFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9y Ci0rICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCi0rCWlm IGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9 InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8IHVuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhw b3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKLSsJZWxpZiBldmFsIHZhcl92YWx1ZT1c JCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9IiR2 YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwllbHNlCi0rCSAgdmFyX3ZhbHVl PWAkZWNobyAiWCR2YXJfdmFsdWUiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKwkg IHJlbGlua19jb21tYW5kPSIkdmFyPVwiJHZhcl92YWx1ZVwiOyBleHBvcnQgJHZhcjsgJHJlbGlu a19jb21tYW5kIgotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNv bW1hbmQgZm9yIHNoaXBwaW5nLgotKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRT SEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdz IEBpbnN0X3ByZWZpeF9kaXJAKSIKLSsgICAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkcmVs aW5rX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiIHwgJE5M MlNQYAotKyAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgot KwlyZWxpbmtfY29tbWFuZD0KLSsgICAgICBmaQotKwotKwotKyAgICAgICMgT25seSBjcmVhdGUg dGhlIG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgotKyAgICAgIGlmIHRlc3QgLXogIiRydW4iOyB0 aGVuCi0rCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbwotKwkgIGlmIHRlc3QgIiRpbnN0YWxs ZWQiID0geWVzOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0aGVu Ci0rCSAgICAgIGJyZWFrCi0rCSAgICBmaQotKwkgICAgb3V0cHV0PSIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZSJpCi0rCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGli cmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCi0rCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9 Ci0rCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICAgIGNhc2Ug JGRlcGxpYiBpbgotKwkgICAgICAqLmxhKQotKwkJbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRY c2VkIC1lICdzJV4uKi8lJSdgCi0rCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJk aXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAotKwkJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4K LSsJCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29s IGFyY2hpdmUiIDE+JjIKLSsJCSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCQlmaQotKwkJbmV3ZGVw ZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCi0rCQk7Owot KwkgICAgICAqKSBuZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxp YiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIk bmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgbmV3ZGxmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4g JGRsZmlsZXM7IGRvCi0rCSAgICAgIG5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyVe LiovJSUnYAotKwkgICAgICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCgu KlwpJC9cMS9wJyAkbGliYAotKwkgICAgICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgotKwkJ JGVjaG8gIiRtb2RlbmFtZTogXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUi IDE+JjIKLSsJCWV4aXQgJEVYSVRfRkFJTFVSRQotKwkgICAgICBmaQotKwkgICAgICBuZXdkbGZp bGVzPSIkbmV3ZGxmaWxlcyAkbGliZGlyLyRuYW1lIgotKwkgICAgZG9uZQotKwkgICAgZGxmaWxl cz0iJG5ld2RsZmlsZXMiCi0rCSAgICBuZXdkbHByZWZpbGVzPQotKwkgICAgZm9yIGxpYiBpbiAk ZGxwcmVmaWxlczsgZG8KLSsJICAgICAgbmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdz JV4uKi8lJSdgCi0rCSAgICAgIGV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1c KC4qXCkkL1wxL3AnICRsaWJgCi0rCSAgICAgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0r CQkkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2 ZSIgMT4mMgotKwkJZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgICAgIGZpCi0rCSAgICAgIG5ld2Rs cHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCi0rCSAgICBkb25lCi0rCSAg ICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKLSsJICBlbHNlCi0rCSAgICBuZXdkbGZpbGVz PQotKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGluCi0r CQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKLSsJCSopIGFicz1gcHdk YCIvJGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxl cyAkYWJzIgotKwkgICAgZG9uZQotKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCi0rCSAgICBu ZXdkbHByZWZpbGVzPQotKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KLSsJICAgICAg Y2FzZSAkbGliIGluCi0rCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsK LSsJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBuZXdkbHBy ZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgotKwkgICAgZG9uZQotKwkgICAgZGxwcmVmaWxl cz0iJG5ld2RscHJlZmlsZXMiCi0rCSAgZmkKLSsJICAkcm0gJG91dHB1dAotKwkgICMgcGxhY2Ug ZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgotKwkgIHRkbG5hbWU9JGRsbmFt ZQotKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgot KwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCou ZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7Ci0rCSAgZXNhYwotKwkgICRlY2hvID4gJG91 dHB1dCAiXAotKyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCi0rIyBHZW5l cmF0ZWQgYnkgJFBST0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04kVElNRVNUQU1QCi0rIwot KyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZv ciBsaW5raW5nIHRoZSBsaWJyYXJ5LgotKwotKyMgVGhlIG5hbWUgdGhhdCB3ZSBjYW4gZGxvcGVu KDMpLgotK2RsbmFtZT0nJHRkbG5hbWUnCi0rCi0rIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCi0r bGlicmFyeV9uYW1lcz0nJGxpYnJhcnlfbmFtZXMnCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgc3Rh dGljIGFyY2hpdmUuCi0rb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScKLSsKLSsjIExpYnJhcmll cyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KLStkZXBlbmRlbmN5X2xpYnM9JyRkZXBlbmRl bmN5X2xpYnMnCi0rCi0rIyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciAkbGlibmFtZS4KLStjdXJy ZW50PSRjdXJyZW50Ci0rYWdlPSRhZ2UKLStyZXZpc2lvbj0kcmV2aXNpb24KLSsKLSsjIElzIHRo aXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8KLStpbnN0YWxsZWQ9JGluc3RhbGxlZAot KwotKyMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWlu c3QgLW1vZHVsZXM/Ci0rc2hvdWxkbm90bGluaz0kbW9kdWxlCi0rCi0rIyBGaWxlcyB0byBkbG9w ZW4vZGxwcmVvcGVuCi0rZGxvcGVuPSckZGxmaWxlcycKLStkbHByZW9wZW49JyRkbHByZWZpbGVz JwotKwotKyMgRGlyZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxl ZCBpbjoKLStsaWJkaXI9JyRpbnN0YWxsX2xpYmRpciciCi0rCSAgaWYgdGVzdCAiJGluc3RhbGxl ZCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCi0rCSAgICAkZWNobyA+ PiAkb3V0cHV0ICJcCi0rcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKLSsJICBm aQotKwlkb25lCi0rICAgICAgZmkKLSsKLSsgICAgICAjIERvIGEgc3ltYm9saWMgbGluayBzbyB0 aGF0IHRoZSBsaWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGluCi0rICAgICAgIyBMRF9MSUJS QVJZX1BBVEggYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4KLSsgICAgICAkc2hvdyAi KGNkICRvdXRwdXRfb2JqZGlyICYmICRybSAkb3V0cHV0bmFtZSAmJiAkTE5fUyAuLi8kb3V0cHV0 bmFtZSAkb3V0cHV0bmFtZSkiCi0rICAgICAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIg JiYgJHJtICRvdXRwdXRuYW1lICYmICRMTl9TIC4uLyRvdXRwdXRuYW1lICRvdXRwdXRuYW1lKScg fHwgZXhpdCAkPwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgZXhpdCAkRVhJVF9TVUNDRVNT Ci0rICAgIDs7Ci0rCi0rICAjIGxpYnRvb2wgaW5zdGFsbCBtb2RlCi0rICBpbnN0YWxsKQotKyAg ICBtb2RlbmFtZT0iJG1vZGVuYW1lOiBpbnN0YWxsIgotKwotKyAgICAjIFRoZXJlIG1heSBiZSBh biBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCi0rICAgICMgaW5z dGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgotKyAgICBpZiB0ZXN0ICIkbm9u b3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAotKyAgICAgICAj IEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KLSsgICAgICAg JGVjaG8gIlgkbm9ub3B0IiB8IGdyZXAgc2h0b29sID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAg IyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgotKyAgICAgIGFyZz1gJGVjaG8gIlgkbm9ub3B0IiB8 ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAg ICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsJYXJn PSJcIiRhcmdcIiIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgaW5zdGFsbF9wcm9nPSIkYXJn ICIKLSsgICAgICBhcmc9IiQxIgotKyAgICAgIHNoaWZ0Ci0rICAgIGVsc2UKLSsgICAgICBpbnN0 YWxsX3Byb2c9Ci0rICAgICAgYXJnPSRub25vcHQKLSsgICAgZmkKLSsKLSsgICAgIyBUaGUgcmVh bCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBw cm9ncmFtLgotKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCi0rICAgIGFyZz1gJGVjaG8g IlgkYXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsgICAgY2FzZSAkYXJnIGlu Ci0rICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQot KyAgICAgIGFyZz0iXCIkYXJnXCIiCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBpbnN0YWxs X3Byb2c9IiRpbnN0YWxsX3Byb2ckYXJnIgotKwotKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0 IGxlYXN0IGFsbCB0aGUgQlNEIGluc3RhbGwgZmxhZ3MuCi0rICAgIGRlc3Q9Ci0rICAgIGZpbGVz PQotKyAgICBvcHRzPQotKyAgICBwcmV2PQotKyAgICBpbnN0YWxsX3R5cGU9Ci0rICAgIGlzZGly PW5vCi0rICAgIHN0cmlwbWU9Ci0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBpZiB0ZXN0 IC1uICIkZGVzdCI7IHRoZW4KLSsJZmlsZXM9IiRmaWxlcyAkZGVzdCIKLSsJZGVzdD0kYXJnCi0r CWNvbnRpbnVlCi0rICAgICAgZmkKLSsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtZCkg aXNkaXI9eWVzIDs7Ci0rICAgICAgLWYpIAotKyAgICAgIAljYXNlICIgJGluc3RhbGxfcHJvZyAi IGluCi0rCSpbXFxcIC9dY3BcICopIDs7Ci0rCSopIHByZXY9JGFyZyA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgLWcgfCAtbSB8IC1vKSBwcmV2PSRhcmcgOzsKLSsgICAgICAtcykKLSsJc3RyaXBt ZT0iIC1zIgotKwljb250aW51ZQotKwk7OwotKyAgICAgIC0qKQotKwk7OwotKyAgICAgICopCi0r CSMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBp dC4KLSsJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCi0rCSAgcHJldj0KLSsJZWxzZQotKwkgIGRl c3Q9JGFyZwotKwkgIGNvbnRpbnVlCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAg ICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCi0rICAgICAgYXJnPWAkZWNobyAi WCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGNhc2UgJGFyZyBp bgotKyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIi KQotKwlhcmc9IlwiJGFyZ1wiIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBpbnN0YWxsX3By b2c9IiRpbnN0YWxsX3Byb2cgJGFyZyIKLSsgICAgZG9uZQotKwotKyAgICBpZiB0ZXN0IC16ICIk aW5zdGFsbF9wcm9nIjsgdGhlbgotKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNw ZWNpZnkgYW4gaW5zdGFsbCBwcm9ncmFtIiAxPiYyCi0rICAgICAgJGVjaG8gIiRoZWxwIiAxPiYy Ci0rICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4g IiRwcmV2IjsgdGhlbgotKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHRoZSBcYCRwcmV2JyBvcHRp b24gcmVxdWlyZXMgYW4gYXJndW1lbnQiIDE+JjIKLSsgICAgICAkZWNobyAiJGhlbHAiIDE+JjIK LSsgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAteiAi JGZpbGVzIjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgotKwkkZWNobyAi JG1vZGVuYW1lOiBubyBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIgMT4mMgotKyAgICAg IGVsc2UKLSsJJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBhIGRlc3RpbmF0aW9u IiAxPiYyCi0rICAgICAgZmkKLSsgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgICAgICBleGl0 ICRFWElUX0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xh c2ggZnJvbSB0aGUgZGVzdGluYXRpb24uCi0rICAgIGRlc3Q9YCRlY2hvICJYJGRlc3QiIHwgJFhz ZWQgLWUgJ3MlLyQlJSdgCi0rCi0rICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIGRlc3RpbmF0 aW9uIGlzIGEgZGlyZWN0b3J5LgotKyAgICB0ZXN0IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCi0r ICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRoZW4KLSsgICAgICBkZXN0ZGlyPSIkZGVzdCIK LSsgICAgICBkZXN0bmFtZT0KLSsgICAgZWxzZQotKyAgICAgIGRlc3RkaXI9YCRlY2hvICJYJGRl c3QiIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKLSsgICAgICB0ZXN0ICJYJGRlc3RkaXIiID0g IlgkZGVzdCIgJiYgZGVzdGRpcj0uCi0rICAgICAgZGVzdG5hbWU9YCRlY2hvICJYJGRlc3QiIHwg JFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsKLSsgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hl Y2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCi0rICAgICAg c2V0IGR1bW15ICRmaWxlcwotKyAgICAgIGlmIHRlc3QgIiQjIiAtZ3QgMjsgdGhlbgotKwkkZWNo byAiJG1vZGVuYW1lOiBcYCRkZXN0JyBpcyBub3QgYSBkaXJlY3RvcnkiIDE+JjIKLSsJJGVjaG8g IiRoZWxwIiAxPiYyCi0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rICAgIGZpCi0r ICAgIGNhc2UgJGRlc3RkaXIgaW4KLSsgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7Owot KyAgICAqKQotKyAgICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsJY2FzZSAkZmlsZSBpbgot KwkqLmxvKSA7OwotKwkqKQotKwkgICRlY2hvICIkbW9kZW5hbWU6IFxgJGRlc3RkaXInIG11c3Qg YmUgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUiIDE+JjIKLSsJICAkZWNobyAiJGhlbHAiIDE+ JjIKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICA7OwotKwllc2FjCi0rICAgICAgZG9uZQot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBw ZXIgc2NyaXB0cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCi0rICAgICMgdGhhbiBydW5u aW5nIHRoZWlyIHByb2dyYW1zLgotKyAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIK LSsKLSsgICAgc3RhdGljbGlicz0KLSsgICAgZnV0dXJlX2xpYmRpcnM9Ci0rICAgIGN1cnJlbnRf bGliZGlycz0KLSsgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbwotKwotKyAgICAgICMgRG8gZWFj aCBpbnN0YWxsYXRpb24uCi0rICAgICAgY2FzZSAkZmlsZSBpbgotKyAgICAgICouJGxpYmV4dCkK LSsJIyBEbyB0aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KLSsJc3RhdGljbGlicz0iJHN0YXRp Y2xpYnMgJGZpbGUiCi0rCTs7Ci0rCi0rICAgICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhh dCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KLSsJaWYgKCR7U0VEfSAtZSAnMnEn ICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4gOgotKwllbHNlCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZmlsZScgaXMgbm90 IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIiAxPiYyCi0rCSAgJGVjaG8gIiRoZWxwIiAxPiYyCi0r CSAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCWZpCi0rCi0rCWxpYnJhcnlfbmFtZXM9Ci0rCW9sZF9s aWJyYXJ5PQotKwlyZWxpbmtfY29tbWFuZD0KLSsJIyBJZiB0aGVyZSBpcyBubyBkaXJlY3Rvcnkg Y29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi8qIHwgKlxcKikg LiAkZmlsZSA7OwotKwkqKSAuIC4vJGZpbGUgOzsKLSsJZXNhYwotKwotKwkjIEFkZCB0aGUgbGli ZGlyIHRvIGN1cnJlbnRfbGliZGlycyBpZiBpdCBpcyB0aGUgZGVzdGluYXRpb24uCi0rCWlmIHRl c3QgIlgkZGVzdGRpciIgPSAiWCRsaWJkaXIiOyB0aGVuCi0rCSAgY2FzZSAiJGN1cnJlbnRfbGli ZGlycyAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBjdXJyZW50X2xpYmRpcnM9 IiRjdXJyZW50X2xpYmRpcnMgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWVsc2UKLSsJICAjIE5v dGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCi0rCSAgY2FzZSAiJGZ1dHVyZV9saWJk aXJzICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZ1dHVyZV9saWJkaXJzPSIk ZnV0dXJlX2xpYmRpcnMgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCWRpcj1gJGVj aG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYC8KLSsJdGVzdCAiWCRkaXIiID0g IlgkZmlsZS8iICYmIGRpcj0KLSsJZGlyPSIkZGlyJG9iamRpciIKLSsKLSsJaWYgdGVzdCAtbiAi JHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVz ZXIgaGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCi0rCSAgaW5zdF9wcmVmaXhfZGlyPWAk ZWNobyAiJGRlc3RkaXIiIHwgJFNFRCAicyUkbGliZGlyXCQlJSJgCi0rCi0rCSAgIyBEb24ndCBh bGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAotKwkgICMg bG9jYXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRo YXQKLSsJICAjIGFyZSBpbnN0YWxsZWQgdG8gdGhlIHNhbWUgcHJlZml4LgotKwkgICMgQXQgcHJl c2VudCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0Ci0rCSAg IyBhcmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhhdCB3b3Jr cyBmaW5lKQotKwkgICMgYnV0IGl0J3Mgc29tZXRoaW5nIHRvIGtlZXAgYW4gZXllIG9uLgotKwkg IGlmIHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0ZGlyIjsgdGhlbgotKwkgICAgJGVj aG8gIiRtb2RlbmFtZTogZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRvIGEgZGlyZWN0 b3J5IG5vdCBlbmRpbmcgaW4gJGxpYmRpciIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJF Ci0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkg ICAgIyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5k LgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRlY2hvICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNQMk5M IHwgJFNFRCAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZp eF9kaXIlIiB8ICROTDJTUGAKLSsJICBlbHNlCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8g IiRyZWxpbmtfY29tbWFuZCIgfCAkU1AyTkwgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUi IHwgJE5MMlNQYAotKwkgIGZpCi0rCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogcmVs aW5raW5nIFxgJGZpbGUnIiAxPiYyCi0rCSAgJHNob3cgIiRyZWxpbmtfY29tbWFuZCIKLSsJICBp ZiAkcnVuIGV2YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgotKwkgIGVsc2UKLSsJICAgICRl Y2hvICIkbW9kZW5hbWU6IGVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29t bWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJF Ci0rCSAgZmkKLSsJZmkKLSsKLSsJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGlicmFy eS4KLSsJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCi0rCWlmIHRlc3QgLW4gIiQyIjsgdGhlbgot KwkgIHJlYWxuYW1lPSIkMiIKLSsJICBzaGlmdAotKwkgIHNoaWZ0Ci0rCi0rCSAgc3JjbmFtZT0i JHJlYWxuYW1lIgotKwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJl YWxuYW1lIlQKLSsKLSsJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBidWlsZCB0 aGUgc3ltbGlua3MuCi0rCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVz dGRpci8kcmVhbG5hbWUiCi0rCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nICRkaXIvJHNyY25h bWUgJGRlc3RkaXIvJHJlYWxuYW1lIiB8fCBleGl0ICQ/Ci0rCSAgaWYgdGVzdCAtbiAiJHN0cmlw bWUiICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4KLSsJICAgICRzaG93ICIkc3RyaXBsaWIg JGRlc3RkaXIvJHJlYWxuYW1lIgotKwkgICAgJHJ1biBldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIv JHJlYWxuYW1lIiB8fCBleGl0ICQ/Ci0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0ICIkIyIgLWd0IDA7 IHRoZW4KLSsJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3IG9u ZXMuCi0rCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBiaW5hcnkg bWlnaHQgZGVwZW5kIG9uCi0rCSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xhcmlz IC9iaW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKLSsJICAgICMgc28gd2UgYWxzbyBuZWVk IHRvIHRyeSBybSAmJiBsbiAtcy4KLSsJICAgIGZvciBsaW5rbmFtZQotKwkgICAgZG8KLSsJICAg ICAgaWYgdGVzdCAiJGxpbmtuYW1lIiAhPSAiJHJlYWxuYW1lIjsgdGhlbgotKyAgICAgICAgICAg ICAgICAkc2hvdyAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFt ZSB8fCB7ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSki Ci0rICAgICAgICAgICAgICAgICRydW4gZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYg JHJlYWxuYW1lICRsaW5rbmFtZSB8fCB7ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1l ICRsaW5rbmFtZTsgfTsgfSkiCi0rCSAgICAgIGZpCi0rCSAgICBkb25lCi0rCSAgZmkKLSsKLSsJ ICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCi0rCSAgbGli PSIkZGVzdGRpci8kcmVhbG5hbWUiCi0rCSAgY21kcz0kcG9zdGluc3RhbGxfY21kcwotKwkgIHNh dmVfaWZzPSIkSUZTIjsgSUZTPSd+JwotKwkgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCSAgICBJ RlM9IiRzYXZlX2lmcyIKLSsJICAgIGV2YWwgY21kPVwiJGNtZFwiCi0rCSAgICAkc2hvdyAiJGNt ZCIKLSsJICAgICRydW4gZXZhbCAiJGNtZCIgfHwgewotKwkgICAgICBsdF9leGl0PSQ/Ci0rCi0r CSAgICAgICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotKwkgICAg ICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJCSRydW4gZXZhbCAnKGNkICRvdXRw dXRfb2JqZGlyICYmICRybSAke3JlYWxuYW1lfVQgJiYgJG12ICR7cmVhbG5hbWV9VSAkcmVhbG5h bWUpJwotKwkgICAgICBmaQotKwotKwkgICAgICBleGl0ICRsdF9leGl0Ci0rCSAgICB9Ci0rCSAg ZG9uZQotKwkgIElGUz0iJHNhdmVfaWZzIgotKwlmaQotKwotKwkjIEluc3RhbGwgdGhlIHBzZXVk by1saWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBwdXJwb3Nlcy4KLSsJbmFtZT1gJGVjaG8gIlgkZmls ZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAotKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCi0rCSRz aG93ICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIKLSsJJHJ1biBldmFs ICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIgfHwgZXhpdCAkPwotKwot KwkjIE1heWJlIGluc3RhbGwgdGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28uCi0rCXRlc3QgLW4gIiRv bGRfbGlicmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8kb2xkX2xpYnJhcnki Ci0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBJbnN0YWxsIChpLmUuIGNvcHkpIGEgbGlidG9v bCBvYmplY3QuCi0rCi0rCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0 IHdhc24ndCBhbHJlYWR5IHNwZWNpZmllZC4KLSsJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhl bgotKwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCi0rCWVsc2UKLSsJICBkZXN0Zmls ZT1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAotKwkgIGRlc3RmaWxlPSIk ZGVzdGRpci8kZGVzdGZpbGUiCi0rCWZpCi0rCi0rCSMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBk ZXN0aW5hdGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCi0rCWNhc2UgJGRlc3RmaWxlIGluCi0r CSoubG8pCi0rCSAgc3RhdGljZGVzdD1gJGVjaG8gIlgkZGVzdGZpbGUiIHwgJFhzZWQgLWUgIiRs bzJvImAKLSsJICA7OwotKwkqLiRvYmpleHQpCi0rCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgot KwkgIGRlc3RmaWxlPQotKwkgIDs7Ci0rCSopCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90 IGNvcHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciIDE+JjIKLSsJICAkZWNobyAi JGhlbHAiIDE+JjIKLSsJICBleGl0ICRFWElUX0ZBSUxVUkUKLSsJICA7OwotKwllc2FjCi0rCi0r CSMgSW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgotKwlpZiB0ZXN0IC1u ICIkZGVzdGZpbGUiOyB0aGVuCi0rCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJGZpbGUgJGRlc3Rm aWxlIgotKwkgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiIHx8IGV4 aXQgJD8KLSsJZmkKLSsKLSsJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQuCi0r CWlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIERlZHVjZSB0aGUg bmFtZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVjdCBmaWxlLgotKwkgIHN0YXRpY29iaj1gJGVjaG8g IlgkZmlsZSIgfCAkWHNlZCAtZSAiJGxvMm8iYAotKwotKwkgICRzaG93ICIkaW5zdGFsbF9wcm9n ICRzdGF0aWNvYmogJHN0YXRpY2Rlc3QiCi0rCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nIFwk c3RhdGljb2JqIFwkc3RhdGljZGVzdCIgfHwgZXhpdCAkPwotKwlmaQotKwlleGl0ICRFWElUX1NV Q0NFU1MKLSsJOzsKLSsKLSsgICAgICAqKQotKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmls ZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCi0rCWlmIHRlc3QgLW4gIiRk ZXN0bmFtZSI7IHRoZW4KLSsJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgotKwllbHNl Ci0rCSAgZGVzdGZpbGU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsJ ICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgotKwlmaQotKwotKwkjIElmIHRoZSBmaWxl IGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKLSsJ IyBiZWNhdXNlIGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkg d2FudCB0bwotKwkjIGluc3RhbGwKLSsJc3RyaXBwZWRfZXh0PSIiCi0rCWNhc2UgJGZpbGUgaW4K LSsJICAqLmV4ZSkKLSsJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZp bGU9YCRlY2hvICRmaWxlfCR7U0VEfSAncywuZXhlJCwsJ2AKLSsJICAgICAgc3RyaXBwZWRfZXh0 PSIuZXhlIgotKwkgICAgZmkKLSsJICAgIDs7Ci0rCWVzYWMKLSsKLSsJIyBEbyBhIHRlc3QgdG8g c2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgotKwljYXNlICRob3N0IGlu Ci0rCSpjeWd3aW4qfCptaW5ndyopCi0rCSAgICB3cmFwcGVyPWAkZWNobyAkZmlsZSB8ICR7U0VE fSAtZSAncywuZXhlJCwsJ2AKLSsJICAgIDs7Ci0rCSopCi0rCSAgICB3cmFwcGVyPSRmaWxlCi0r CSAgICA7OwotKwllc2FjCi0rCWlmICgke1NFRH0gLWUgJzRxJyAkd3JhcHBlciB8IGdyZXAgIl4j IEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIik+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICBub3Rp bnN0X2RlcGxpYnM9Ci0rCSAgcmVsaW5rX2NvbW1hbmQ9Ci0rCi0rCSAgIyBOb3RlIHRoYXQgaXQg aXMgbm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCi0rCSAg IyBmb28gZXZlbiBpZiBib3RoIGZvbyBhbmQgRklMRS5leGUgZXhpc3Q6IGF1dG9tYXRpYy1hcHBl bmQtLmV4ZQotKwkgICMgYmVoYXZpb3IgaGFwcGVucyBvbmx5IGZvciBleGVjKDMpLCBub3QgZm9y IG9wZW4oMikhICBBbHNvLCBzb3VyY2luZwotKwkgICMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9u IGN5Z3dpbiBtYW5hZ2VkIG1vdW50cy4KLSsJICAjCi0rCSAgIyBJZiB0aGVyZSBpcyBubyBkaXJl Y3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCi0rCSAgY2FzZSAkd3JhcHBlciBpbgotKwkg ICovKiB8ICpcXCopIC4gJHt3cmFwcGVyfSA7OwotKwkgICopIC4gLi8ke3dyYXBwZXJ9IDs7Ci0r CSAgZXNhYwotKwotKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJl ZW4gc2V0LgotKwkgIGlmIHRlc3QgLXogIiRub3RpbnN0X2RlcGxpYnMiOyB0aGVuCi0rCSAgICAk ZWNobyAiJG1vZGVuYW1lOiBpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3JhcHBl ciciIDE+JjIKLSsJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKwkgIGZpCi0rCi0rCSAgZmluYWxp emU9eWVzCi0rCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBsaWJzOyBkbwotKwkgICAgIyBDaGVj ayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgotKwkgICAgbGliZGlyPQot KwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KLSsJICAgICAgIyBJZiB0aGVyZSBpcyBubyBk aXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCi0rCSAgICAgIGNhc2UgJGxpYiBpbgot KwkgICAgICAqLyogfCAqXFwqKSAuICRsaWIgOzsKLSsJICAgICAgKikgLiAuLyRsaWIgOzsKLSsJ ICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkZWNobyAiWCRs aWIiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1 b3RpbmcgdGVzdAotKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAhIC1mICIkbGli ZmlsZSI7IHRoZW4KLSsJICAgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAkbGliJyBo YXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciIDE+JjIKLSsJICAgICAgZmluYWxp emU9bm8KLSsJICAgIGZpCi0rCSAgZG9uZQotKwotKwkgIHJlbGlua19jb21tYW5kPQotKwkgICMg Tm90ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVuZCBh IGRvdCB0bwotKwkgICMgZm9vIGV2ZW4gaWYgYm90aCBmb28gYW5kIEZJTEUuZXhlIGV4aXN0OiBh dXRvbWF0aWMtYXBwZW5kLS5leGUKLSsJICAjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3IgZXhl YygzKSwgbm90IGZvciBvcGVuKDIpISAgQWxzbywgc291cmNpbmcKLSsJICAjIGBGSUxFLicgZG9l cyBub3Qgd29yayBvbiBjeWd3aW4gbWFuYWdlZCBtb3VudHMuCi0rCSAgIwotKwkgICMgSWYgdGhl cmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgotKwkgIGNhc2UgJHdy YXBwZXIgaW4KLSsJICAqLyogfCAqXFwqKSAuICR7d3JhcHBlcn0gOzsKLSsJICAqKSAuIC4vJHt3 cmFwcGVyfSA7OwotKwkgIGVzYWMKLSsKLSsJICBvdXRwdXRuYW1lPQotKwkgIGlmIHRlc3QgIiRm YXN0X2luc3RhbGwiID0gbm8gJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkg ICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllcyAmJiB0ZXN0IC16ICIkcnVuIjsgdGhlbgotKwkg ICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAotKwkgICAgICBmaWxlPWAkZWNobyAiWCRmaWxl JHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAotKwkgICAgICBvdXRwdXRuYW1l PSIkdG1wZGlyLyRmaWxlIgotKwkgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNp ZmljYXRpb24uCi0rCSAgICAgIHJlbGlua19jb21tYW5kPWAkZWNobyAiWCRyZWxpbmtfY29tbWFu ZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZycgfCAk TkwyU1BgCi0rCi0rCSAgICAgICRzaG93ICIkcmVsaW5rX2NvbW1hbmQiCi0rCSAgICAgIGlmICRy dW4gZXZhbCAiJHJlbGlua19jb21tYW5kIjsgdGhlbiA6Ci0rCSAgICAgIGVsc2UKLSsJCSRlY2hv ICIkbW9kZW5hbWU6IGVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFu ZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIgMT4mMgotKwkJJHtybX1yICIkdG1wZGlyIgotKwkJY29u dGludWUKLSsJICAgICAgZmkKLSsJICAgICAgZmlsZT0iJG91dHB1dG5hbWUiCi0rCSAgICBlbHNl Ci0rCSAgICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGNhbm5vdCByZWxpbmsgXGAkZmls ZSciIDE+JjIKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgIyBJbnN0YWxsIHRoZSBiaW5hcnkg dGhhdCB3ZSBjb21waWxlZCBlYXJsaWVyLgotKwkgICAgZmlsZT1gJGVjaG8gIlgkZmlsZSRzdHJp cHBlZF9leHQiIHwgJFhzZWQgLWUgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCi0rCSAgZmkK LSsJZmkKLSsKLSsJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4vaW5zdGFsbCB3 aWxsIGFwcGVuZCBhbm90aGVyCi0rCSMgb25lIGFueXdheSAKLSsJY2FzZSAkaW5zdGFsbF9wcm9n LCRob3N0IGluCi0rCSovdXNyL2Jpbi9pbnN0YWxsKiwqY3lnd2luKikKLSsJICBjYXNlICRmaWxl OiRkZXN0ZmlsZSBpbgotKwkgICouZXhlOiouZXhlKQotKwkgICAgIyB0aGlzIGlzIG9rCi0rCSAg ICA7OwotKwkgICouZXhlOiopCi0rCSAgICBkZXN0ZmlsZT0kZGVzdGZpbGUuZXhlCi0rCSAgICA7 OwotKwkgICo6Ki5leGUpCi0rCSAgICBkZXN0ZmlsZT1gJGVjaG8gJGRlc3RmaWxlIHwgJHtTRUR9 IC1lICdzLC5leGUkLCwnYAotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwkk c2hvdyAiJGluc3RhbGxfcHJvZyRzdHJpcG1lICRmaWxlICRkZXN0ZmlsZSIKLSsJJHJ1biBldmFs ICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiB8fCBleGl0ICQ/Ci0r CXRlc3QgLW4gIiRvdXRwdXRuYW1lIiAmJiAke3JtfXIgIiR0bXBkaXIiCi0rCTs7Ci0rICAgICAg ZXNhYwotKyAgICBkb25lCi0rCi0rICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbwotKyAg ICAgIG5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKLSsKLSsgICAg ICAjIFNldCB1cCB0aGUgcmFubGliIHBhcmFtZXRlcnMuCi0rICAgICAgb2xkbGliPSIkZGVzdGRp ci8kbmFtZSIKLSsKLSsgICAgICAkc2hvdyAiJGluc3RhbGxfcHJvZyAkZmlsZSAkb2xkbGliIgot KyAgICAgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiIHx8IGV4aXQg JD8KLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVzdCAtbiAiJG9sZF9zdHJp cGxpYiI7IHRoZW4KLSsJJHNob3cgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIKLSsJJHJ1biBldmFs ICIkb2xkX3N0cmlwbGliICRvbGRsaWIiIHx8IGV4aXQgJD8KLSsgICAgICBmaQotKwotKyAgICAg ICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KLSsgICAgICBj bWRzPSRvbGRfcG9zdGluc3RhbGxfY21kcwotKyAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+ JwotKyAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCUlGUz0iJHNhdmVfaWZzIgotKwlldmFs IGNtZD1cIiRjbWRcIgotKwkkc2hvdyAiJGNtZCIKLSsJJHJ1biBldmFsICIkY21kIiB8fCBleGl0 ICQ/Ci0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJHNhdmVfaWZzIgotKyAgICBkb25lCi0rCi0r ICAgIGlmIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyI7IHRoZW4KLSsgICAgICAkZWNobyAiJG1v ZGVuYW1lOiB3YXJuaW5nOiByZW1lbWJlciB0byBydW4gXGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0 dXJlX2xpYmRpcnMnIiAxPiYyCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRjdXJyZW50 X2xpYmRpcnMiOyB0aGVuCi0rICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KLSsgICAg ICB0ZXN0IC1uICIkcnVuIiAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMi Ci0rICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5p c2gkY3VycmVudF9saWJkaXJzJwotKyAgICBlbHNlCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNT Ci0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICAjIGxpYnRvb2wgZmluaXNoIG1vZGUKLSsgIGZpbmlz aCkKLSsgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogZmluaXNoIgotKyAgICBsaWJkaXJzPSIkbm9u b3B0IgotKyAgICBhZG1pbmNtZHM9Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRm aW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0rICAgICAgZm9yIGRpcgot KyAgICAgIGRvCi0rCWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCi0rICAgICAgZG9uZQotKwotKyAg ICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCi0rCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21k cyI7IHRoZW4KLSsJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgot KwkgIGNtZHM9JGZpbmlzaF9jbWRzCi0rCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCSAg Zm9yIGNtZCBpbiAkY21kczsgZG8KLSsJICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgZXZhbCBj bWQ9XCIkY21kXCIKLSsJICAgICRzaG93ICIkY21kIgotKwkgICAgJHJ1biBldmFsICIkY21kIiB8 fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKLSsgICAgICAgJGNtZCIKLSsJICBkb25lCi0rCSAgSUZT PSIkc2F2ZV9pZnMiCi0rCWZpCi0rCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KLSsJ ICAjIERvIHRoZSBzaW5nbGUgZmluaXNoX2V2YWwuCi0rCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9l dmFsXCIKLSsJICAkcnVuIGV2YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKLSsg ICAgICAgJGNtZHMiCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBmaQotKwotKyAgICAjIEV4aXQg aGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KLSsgICAgdGVzdCAiJHNob3ciID0gOiAm JiBleGl0ICRFWElUX1NVQ0NFU1MKLSsKLSsgICAgJGVjaG8gIlgtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRY c2VkCi0rICAgICRlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCi0rICAg IGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCi0rICAgICAgJGVjaG8gIiAgICRsaWJkaXIiCi0r ICAgIGRvbmUKLSsgICAgJGVjaG8KLSsgICAgJGVjaG8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3 YW50IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgotKyAgICAkZWNobyAiaW4g YSBnaXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBh bmQiCi0rICAgICRlY2hvICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5 LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgotKyAgICAkZWNobyAiZmxhZyBkdXJpbmcgbGlua2lu ZyBhbmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgotKyAgICBpZiB0ZXN0IC1u ICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsgICAgICAkZWNobyAiICAgLSBhZGQgTElCRElSIHRv IHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSsgICAgICAkZWNo byAiICAgICBkdXJpbmcgZXhlY3V0aW9uIgotKyAgICBmaQotKyAgICBpZiB0ZXN0IC1uICIkcnVu cGF0aF92YXIiOyB0aGVuCi0rICAgICAgJGVjaG8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAk cnVucGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgotKyAgICAgICRlY2hvICIgICAgIGR1 cmluZyBsaW5raW5nIgotKyAgICBmaQotKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYyI7IHRoZW4KLSsgICAgICBsaWJkaXI9TElCRElSCi0rICAgICAgZXZhbCBmbGFn PVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwotKyAgICAgICRlY2hvICIgICAtIHVz ZSB0aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgLW4gIiRh ZG1pbmNtZHMiOyB0aGVuCi0rICAgICAgJGVjaG8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1p bmlzdHJhdG9yIHJ1biB0aGVzZSBjb21tYW5kczokYWRtaW5jbWRzIgotKyAgICBmaQotKyAgICBp ZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgotKyAgICAgICRlY2hvICIgICAtIGhhdmUg eW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25m JyIKLSsgICAgZmkKLSsgICAgJGVjaG8KLSsgICAgJGVjaG8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5 c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgotKyAgICAkZWNo byAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVh bCBwYWdlcy4iCi0rICAgICRlY2hvICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAotKyAgICBleGl0 ICRFWElUX1NVQ0NFU1MKLSsgICAgOzsKLSsKLSsgICMgbGlidG9vbCBleGVjdXRlIG1vZGUKLSsg IGV4ZWN1dGUpCi0rICAgIG1vZGVuYW1lPSIkbW9kZW5hbWU6IGV4ZWN1dGUiCi0rCi0rICAgICMg VGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCi0rICAgIGNtZD0iJG5vbm9w dCIKLSsgICAgaWYgdGVzdCAteiAiJGNtZCI7IHRoZW4KLSsgICAgICAkZWNobyAiJG1vZGVuYW1l OiB5b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIgMT4mMgotKyAgICAgICRlY2hvICIkaGVscCIK LSsgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgIyBIYW5kbGUgLWRs b3BlbiBmbGFncyBpbW1lZGlhdGVseS4KLSsgICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxl czsgZG8KLSsgICAgICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgotKwkkZWNobyAiJG1vZGVu YW1lOiBcYCRmaWxlJyBpcyBub3QgYSBmaWxlIiAxPiYyCi0rCSRlY2hvICIkaGVscCIgMT4mMgot KwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQotKwotKyAgICAgIGRpcj0KLSsgICAgICBj YXNlICRmaWxlIGluCi0rICAgICAgKi5sYSkKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJl YWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwg Z3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g OgotKwllbHNlCi0rCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkbGliJyBpcyBub3QgYSB2YWxpZCBs aWJ0b29sIGFyY2hpdmUiIDE+JjIKLSsJICAkZWNobyAiJGhlbHAiIDE+JjIKLSsJICBleGl0ICRF WElUX0ZBSUxVUkUKLSsJZmkKLSsKLSsJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCi0rCWRs bmFtZT0KLSsJbGlicmFyeV9uYW1lcz0KLSsKLSsJIyBJZiB0aGVyZSBpcyBubyBkaXJlY3Rvcnkg Y29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi8qIHwgKlxcKikg LiAkZmlsZSA7OwotKwkqKSAuIC4vJGZpbGUgOzsKLSsJZXNhYwotKwotKwkjIFNraXAgdGhpcyBs aWJyYXJ5IGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7 IHRoZW4KLSsJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgdGVzdCAt biAiJGxpYnJhcnlfbmFtZXMiICYmICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgJGZpbGUn IHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMnIgotKwkgIGNvbnRpbnVlCi0r CWZpCi0rCi0rCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAot Kwl0ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgotKwotKwlpZiB0ZXN0IC1mICIkZGly LyRvYmpkaXIvJGRsbmFtZSI7IHRoZW4KLSsJICBkaXI9IiRkaXIvJG9iamRpciIKLSsJZWxzZQot KwkgIGlmIHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgotKwkgICAgJGVjaG8gIiRtb2Rl bmFtZTogY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGly JyIgMT4mMgotKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsK LSsgICAgICAqLmxvKQotKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUg LmxvIGZpbGUuCi0rCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUn YAotKwl0ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgotKwk7OwotKwotKyAgICAgICop Ci0rCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmcgXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBu b24tbGlidG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiIDE+JjIKLSsJY29udGludWUKLSsJOzsK LSsgICAgICBlc2FjCi0rCi0rICAgICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgotKyAg ICAgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKLSsgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAm JiBkaXI9IiRhYnNkaXIiCi0rCi0rICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hs aWJwYXRoX3Zhci4KLSsgICAgICBpZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3Zhclwi IjsgdGhlbgotKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyXCIiCi0rICAgICAgZWxzZQot KwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKLSsgICAg ICBmaQotKyAgICBkb25lCi0rCi0rICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNj cmlwdHMganVzdCB0byBzZXQgc2hsaWJwYXRoX3ZhcgotKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5p bmcgdGhlaXIgcHJvZ3JhbXMuCi0rICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgot KwotKyAgICAjIENoZWNrIGlmIGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3Jp cHQuCi0rICAgIGFyZ3M9Ci0rICAgIGZvciBmaWxlCi0rICAgIGRvCi0rICAgICAgY2FzZSAkZmls ZSBpbgotKyAgICAgIC0qKSA7OwotKyAgICAgICopCi0rCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0 aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KLSsJaWYgKCR7U0VEfSAtZSAnNHEnICRm aWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsJICAjIElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gYWRk IG9uZS4KLSsJICBjYXNlICRmaWxlIGluCi0rCSAgKi8qIHwgKlxcKikgLiAkZmlsZSA7OwotKwkg ICopIC4gLi8kZmlsZSA7OwotKwkgIGVzYWMKLSsKLSsJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3Jh cHBlZCBuYW1lLgotKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgotKwlmaQotKwk7OwotKyAg ICAgIGVzYWMKLSsgICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0 YWNoYXJhY3RlcnMpLgotKyAgICAgIGZpbGU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgIiRz ZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGFyZ3M9IiRhcmdzIFwiJGZpbGVcIiIKLSsgICAgZG9u ZQotKwotKyAgICBpZiB0ZXN0IC16ICIkcnVuIjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLW4gIiRz aGxpYnBhdGhfdmFyIjsgdGhlbgotKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KLSsJZXZh bCAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBSZXN0b3Jl IHNhdmVkIGVudmlyb25tZW50IHZhcmlhYmxlcwotKyAgICAgIGZvciBsdF92YXIgaW4gTEFORyBM QU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwotKyAgICAgIGRv Ci0rCWV2YWwgImlmIHRlc3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCi0r CQkkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0X3ZhcgotKwkgICAgICBmaSIKLSsg ICAgICBkb25lCi0rCi0rICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBj b21tYW5kLgotKyAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgotKyAgICBlbHNlCi0rICAgICAg IyBEaXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJw YXRoX3ZhciI7IHRoZW4KLSsJZXZhbCAiXCRlY2hvIFwiXCRzaGxpYnBhdGhfdmFyPVwkJHNobGli cGF0aF92YXJcIiIKLSsJJGVjaG8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQot KyAgICAgICRlY2hvICIkY21kJGFyZ3MiCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAg IGZpCi0rICAgIDs7Ci0rCi0rICAjIGxpYnRvb2wgY2xlYW4gYW5kIHVuaW5zdGFsbCBtb2RlCi0r ICBjbGVhbiB8IHVuaW5zdGFsbCkKLSsgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogJG1vZGUiCi0r ICAgIHJtPSIkbm9ub3B0IgotKyAgICBmaWxlcz0KLSsgICAgcm1mb3JjZT0KLSsgICAgZXhpdF9z dGF0dXM9MAotKwotKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1 c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKLSsgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJv Z3JhbXMuCi0rICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgotKwotKyAgICBmb3Ig YXJnCi0rICAgIGRvCi0rICAgICAgY2FzZSAkYXJnIGluCi0rICAgICAgLWYpIHJtPSIkcm0gJGFy ZyI7IHJtZm9yY2U9eWVzIDs7Ci0rICAgICAgLSopIHJtPSIkcm0gJGFyZyIgOzsKLSsgICAgICAq KSBmaWxlcz0iJGZpbGVzICRhcmciIDs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAg IGlmIHRlc3QgLXogIiRybSI7IHRoZW4KLSsgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVz dCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iIDE+JjIKLSsgICAgICAkZWNobyAiJGhlbHAiIDE+JjIK LSsgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgZmkKLSsKLSsgICAgcm1kaXJzPQotKwot KyAgICBvcmlnb2JqZGlyPSIkb2JqZGlyIgotKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0r ICAgICAgZGlyPWAkZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCi0rICAg ICAgaWYgdGVzdCAiWCRkaXIiID0gIlgkZmlsZSI7IHRoZW4KLSsJZGlyPS4KLSsJb2JqZGlyPSIk b3JpZ29iamRpciIKLSsgICAgICBlbHNlCi0rCW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKLSsg ICAgICBmaQotKyAgICAgIG5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUl J2AKLSsgICAgICB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgotKwot KyAgICAgICMgUmVtZW1iZXIgb2JqZGlyIGZvciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVs IHRvIGF2b2lkIGR1cGxpY2F0ZXMKLSsgICAgICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhl bgotKwljYXNlICIgJHJtZGlycyAiIGluCi0rCSAgKiIgJG9iamRpciAiKikgOzsKLSsJICAqKSBy bWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rCi0rICAgICAg IyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNl ZC4KLSsgICAgICBpZiAodGVzdCAtTCAiJGZpbGUiKSA+L2Rldi9udWxsIDI+JjEgXAotKwl8fCAo dGVzdCAtaCAiJGZpbGUiKSA+L2Rldi9udWxsIDI+JjEgXAotKwl8fCB0ZXN0IC1mICIkZmlsZSI7 IHRoZW4KLSsJOgotKyAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCi0rCWV4aXRfc3Rh dHVzPTEKLSsJY29udGludWUKLSsgICAgICBlbGlmIHRlc3QgIiRybWZvcmNlIiA9IHllczsgdGhl bgotKwljb250aW51ZQotKyAgICAgIGZpCi0rCi0rICAgICAgcm1maWxlcz0iJGZpbGUiCi0rCi0r ICAgICAgY2FzZSAkbmFtZSBpbgotKyAgICAgICoubGEpCi0rCSMgUG9zc2libHkgYSBsaWJ0b29s IGFyY2hpdmUsIHNvIHZlcmlmeSBpdC4KLSsJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3Jl cCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJ ICAuICRkaXIvJG5hbWUKLSsKLSsJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5k IHN5bWxpbmtzLgotKwkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbwotKwkgICAgcm1maWxl cz0iJHJtZmlsZXMgJG9iamRpci8kbiIKLSsJICBkb25lCi0rCSAgdGVzdCAtbiAiJG9sZF9saWJy YXJ5IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsKLSsJICBj YXNlICIkbW9kZSIgaW4KLSsJICBjbGVhbikKLSsJICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMg IiBpbgotKwkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1l Ci0rCSAgICAqIiAkZGxuYW1lICIqKSA7OwotKwkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9i amRpci8kZGxuYW1lIiA7OwotKwkgICAgZXNhYwotKwkgICAgIHRlc3QgLW4gIiRsaWJkaXIiICYm IHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9aSIKLSsJICAg IDs7Ci0rCSAgdW5pbnN0YWxsKQotKwkgICAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB0 aGVuCi0rCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0dW5pbnN0YWxsIGNvbW1h bmRzLgotKwkgICAgICBjbWRzPSRwb3N0dW5pbnN0YWxsX2NtZHMKLSsJICAgICAgc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9J34nCi0rCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCi0rCQlJRlM9IiRz YXZlX2lmcyIKLSsJCWV2YWwgY21kPVwiJGNtZFwiCi0rCQkkc2hvdyAiJGNtZCIKLSsJCSRydW4g ZXZhbCAiJGNtZCIKLSsJCWlmIHRlc3QgIiQ/IiAtbmUgMCAmJiB0ZXN0ICIkcm1mb3JjZSIgIT0g eWVzOyB0aGVuCi0rCQkgIGV4aXRfc3RhdHVzPTEKLSsJCWZpCi0rCSAgICAgIGRvbmUKLSsJICAg ICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICBmaQotKwotKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9s aWJyYXJ5IjsgdGhlbgotKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1 bmluc3RhbGwgY29tbWFuZHMuCi0rCSAgICAgIGNtZHM9JG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMK LSsJICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCSAgICAgIGZvciBjbWQgaW4gJGNt ZHM7IGRvCi0rCQlJRlM9IiRzYXZlX2lmcyIKLSsJCWV2YWwgY21kPVwiJGNtZFwiCi0rCQkkc2hv dyAiJGNtZCIKLSsJCSRydW4gZXZhbCAiJGNtZCIKLSsJCWlmIHRlc3QgIiQ/IiAtbmUgMCAmJiB0 ZXN0ICIkcm1mb3JjZSIgIT0geWVzOyB0aGVuCi0rCQkgIGV4aXRfc3RhdHVzPTEKLSsJCWZpCi0r CSAgICAgIGRvbmUKLSsJICAgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgICBmaQotKwkgICAgIyBG SVhNRTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVzdCByZW1haW5pbmcgc2hhcmVkIGxpYnJhcnku Ci0rCSAgICA7OwotKwkgIGVzYWMKLSsJZmkKLSsJOzsKLSsKLSsgICAgICAqLmxvKQotKwkjIFBv c3NpYmx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZlcmlmeSBpdC4KLSsJaWYgKCR7U0VEfSAtZSAn MnEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4KLSsKLSsJICAjIFJlYWQgdGhlIC5sbyBmaWxlCi0rCSAgLiAkZGlyLyRuYW1l Ci0rCi0rCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUu Ci0rCSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiIFwKLSsJICAgICAmJiB0ZXN0ICIkcGljX29i amVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29i amVjdCIKLSsJICBmaQotKwotKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9m IGZpbGVzIHRvIHJlbW92ZS4KLSsJICBpZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3QiIFwKLSsJ ICAgICAmJiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJICAgIHJtZmls ZXM9IiRybWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgotKwkgIGZpCi0rCWZpCi0rCTs7Ci0r Ci0rICAgICAgKikKLSsJaWYgdGVzdCAiJG1vZGUiID0gY2xlYW4gOyB0aGVuCi0rCSAgbm9leGVu YW1lPSRuYW1lCi0rCSAgY2FzZSAkZmlsZSBpbgotKwkgICouZXhlKQotKwkgICAgZmlsZT1gJGVj aG8gJGZpbGV8JHtTRUR9ICdzLC5leGUkLCwnYAotKwkgICAgbm9leGVuYW1lPWAkZWNobyAkbmFt ZXwke1NFRH0gJ3MsLmV4ZSQsLCdgCi0rCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFk eSBiZWVuIGFkZGVkIHRvIHJtZmlsZXMsCi0rCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUK LSsJICAgIHJtZmlsZXM9IiRybWZpbGVzICRmaWxlIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAg IyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCi0rCSAgaWYg KCR7U0VEfSAtZSAnNHEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0Ui KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAgIHJlbGlua19jb21tYW5kPQotKwkgICAgLiAk ZGlyLyRub2V4ZW5hbWUKLSsKLSsJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250YWlucyAuZXhl IGlmIGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5Ci0rCSAgICAjIGFzIGRvZXMgdGhlIHZlcnNp b24gb2YgJGZpbGUgdGhhdCB3YXMgYWRkZWQgaW50byAkcm1maWxlcwotKwkgICAgcm1maWxlcz0i JHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKLSsJICAg IGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFu ZCI7IHRoZW4KLSsJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0kbmFtZSIKLSsJ ICAgIGZpCi0rCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCi0r CSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9LmMiCi0rCSAg ICBmaQotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICRzaG93ICIkcm0g JHJtZmlsZXMiCi0rICAgICAgJHJ1biAkcm0gJHJtZmlsZXMgfHwgZXhpdF9zdGF0dXM9MQotKyAg ICBkb25lCi0rICAgIG9iamRpcj0iJG9yaWdvYmpkaXIiCi0rCi0rICAgICMgVHJ5IHRvIHJlbW92 ZSB0aGUgJHtvYmpkaXJ9cyBpbiB0aGUgZGlyZWN0b3JpZXMgd2hlcmUgd2UgZGVsZXRlZCBmaWxl cwotKyAgICBmb3IgZGlyIGluICRybWRpcnM7IGRvCi0rICAgICAgaWYgdGVzdCAtZCAiJGRpciI7 IHRoZW4KLSsJJHNob3cgInJtZGlyICRkaXIiCi0rCSRydW4gcm1kaXIgJGRpciA+L2Rldi9udWxs IDI+JjEKLSsgICAgICBmaQotKyAgICBkb25lCi0rCi0rICAgIGV4aXQgJGV4aXRfc3RhdHVzCi0r ICAgIDs7Ci0rCi0rICAiIikKLSsgICAgJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lm eSBhIE1PREUiIDE+JjIKLSsgICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKLSsgICAgZXhp dCAkRVhJVF9GQUlMVVJFCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBpZiB0ZXN0IC16ICIkZXhl Y19jbWQiOyB0aGVuCi0rICAgICRlY2hvICIkbW9kZW5hbWU6IGludmFsaWQgb3BlcmF0aW9uIG1v ZGUgXGAkbW9kZSciIDE+JjIKLSsgICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKLSsgICAg ZXhpdCAkRVhJVF9GQUlMVVJFCi0rICBmaQotK2ZpICMgdGVzdCAteiAiJHNob3dfaGVscCIKLSsK LStpZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCi0rICBldmFsIGV4ZWMgJGV4ZWNfY21kCi0r ICBleGl0ICRFWElUX0ZBSUxVUkUKLStmaQotKwotKyMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAg Zm9yIGVhY2ggb2YgdGhlIG1vZGVzLgotK2Nhc2UgJG1vZGUgaW4KLSsiIikgJGVjaG8gXAotKyJV c2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KLSsKLStQcm92aWRlIGdl bmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KLSsKLSsgICAgLS1j b25maWcgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsgICAgLS1k ZWJ1ZyAgICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZwotKy1uLCAtLWRyeS1y dW4gICAgICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcwot KyAgICAtLWZlYXR1cmVzICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3Jt YXRpb24gYW5kIGV4aXQKLSsgICAgLS1maW5pc2ggICAgICAgICAgc2FtZSBhcyBcYC0tbW9kZT1m aW5pc2gnCi0rICAgIC0taGVscCAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIG1lc3NhZ2Ug YW5kIGV4aXQKLSsgICAgLS1tb2RlPU1PREUgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUg W2RlZmF1bHQ9aW5mZXJyZWQgZnJvbSBNT0RFLUFSR1NdCi0rICAgIC0tcXVpZXQgICAgICAgICAg IHNhbWUgYXMgXGAtLXNpbGVudCcKLSsgICAgLS1zaWxlbnQgICAgICAgICAgZG9uJ3QgcHJpbnQg aW5mb3JtYXRpb25hbCBtZXNzYWdlcwotKyAgICAtLXRhZz1UQUcgICAgICAgICB1c2UgY29uZmln dXJhdGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCi0rICAgIC0tdmVyc2lvbiAgICAgICAgIHBy aW50IHZlcnNpb24gaW5mb3JtYXRpb24KLSsKLStNT0RFIG11c3QgYmUgb25lIG9mIHRoZSBmb2xs b3dpbmc6Ci0rCi0rICAgICAgY2xlYW4gICAgICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBi dWlsZCBkaXJlY3RvcnkKLSsgICAgICBjb21waWxlICAgICAgICAgY29tcGlsZSBhIHNvdXJjZSBm aWxlIGludG8gYSBsaWJ0b29sIG9iamVjdAotKyAgICAgIGV4ZWN1dGUgICAgICAgICBhdXRvbWF0 aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQotKyAgICAgIGZpbmlz aCAgICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVz Ci0rICAgICAgaW5zdGFsbCAgICAgICAgIGluc3RhbGwgbGlicmFyaWVzIG9yIGV4ZWN1dGFibGVz Ci0rICAgICAgbGluayAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJs ZQotKyAgICAgIHVuaW5zdGFsbCAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFs bGVkIGRpcmVjdG9yeQotKwotK01PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9ERS4g IFRyeSBcYCRtb2RlbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvcgotK2EgbW9yZSBkZXRhaWxl ZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgotKwotK1JlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBn bnUub3JnPi4iCi0rICBleGl0ICRFWElUX1NVQ0NFU1MKLSsgIDs7Ci0rCi0rY2xlYW4pCi0rICAk ZWNobyBcCi0rIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtS TS1PUFRJT05dLi4uIEZJTEUuLi4KLSsKLStSZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGly ZWN0b3J5LgotKwotK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxl dGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3Jt JykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQK LSt0byBSTS4KLSsKLStJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJv Z3JhbSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkCi0rd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3Ro ZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgOzsKLSsK LStjb21waWxlKQotKyAgJGVjaG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0t bW9kZT1jb21waWxlIENPTVBJTEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCi0rCi0rQ29tcGlsZSBh IHNvdXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0LgotKwotK1RoaXMgbW9k ZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgotKwotKyAgLW8gT1VU UFVULUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCi0rICAt cHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGRpbmcgUElDIG9iamVjdHMgb25seQotKyAgLXBy ZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2JqZWN0cyBvbmx5Ci0rICAt c3RhdGljICAgICAgICAgICBhbHdheXMgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBz dGF0aWMgbGlua2luZwotKwotK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNl ZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCi0rZnJvbSB0aGUgZ2l2ZW4g U09VUkNFRklMRS4KLSsKLStUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJl bW92aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KLStTT1VSQ0VGSUxFLCB0aGVuIHN1 YnN0aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUKLStsaWJy YXJ5IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCi0rICA7OwotKwotK2V4ZWN1dGUpCi0rICAkZWNo byBcCi0rIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFO RCBbQVJHU10uLi4KLSsKLStBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVu IGEgcHJvZ3JhbS4KLSsKLStUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9u YWwgb3B0aW9uczoKLSsKLSsgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNv bnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRoCi0rCi0rVGhpcyBtb2RlIHNldHMgdGhl IGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVu JwotK2ZsYWdzLgotKwotK0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBleGVjdXRhYmxl IHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0ZWQKLStpbnRvIHRoZWlyIGNvcnJlc3Bv bmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJh cnkKLStkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KLSsKLStUaGVu LCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKLSsgIDs7Ci0r Ci0rZmluaXNoKQotKyAgJGVjaG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0t bW9kZT1maW5pc2ggW0xJQkRJUl0uLi4KLSsKLStDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9m IGxpYnRvb2wgbGlicmFyaWVzLgotKwotK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQg Y29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCi0rCi0rVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBt b2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCi0rdGhl IFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBi ZSBleGVjdXRlZC4iCi0rICA7OwotKwotK2luc3RhbGwpCi0rICAkZWNobyBcCi0rIlVzYWdlOiAk bW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5ELi4uCi0r Ci0rSW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCi0rCi0rSU5TVEFMTC1DT01NQU5E IGlzIHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hvdWxk IGJlCi0rZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCi0rCi0rVGhlIHJl c3Qgb2YgdGhlIGNvbXBvbmVudHMgYXJlIGludGVycHJldGVkIGFzIGFyZ3VtZW50cyB0byB0aGF0 IGNvbW1hbmQgKG9ubHkKLStCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJlY29n bml6ZWQpLiIKLSsgIDs7Ci0rCi0rbGluaykKLSsgICRlY2hvIFwKLSsiVXNhZ2U6ICRtb2RlbmFt ZSBbT1BUSU9OXS4uLiAtLW1vZGU9bGluayBMSU5LLUNPTU1BTkQuLi4KLSsKLStMaW5rIG9iamVj dCBmaWxlcyBvciBsaWJyYXJpZXMgdG9nZXRoZXIgdG8gZm9ybSBhbm90aGVyIGxpYnJhcnksIG9y IHRvCi0rY3JlYXRlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbS4KLSsKLStMSU5LLUNPTU1BTkQgaXMg YSBjb21tYW5kIHVzaW5nIHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjcmVh dGUKLSthIHByb2dyYW0gZnJvbSBzZXZlcmFsIG9iamVjdCBmaWxlcy4KLSsKLStUaGUgZm9sbG93 aW5nIGNvbXBvbmVudHMgb2YgTElOSy1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKLSsK LSsgIC1hbGwtc3RhdGljICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFs bAotKyAgLWF2b2lkLXZlcnNpb24gICAgZG8gbm90IGFkZCBhIHZlcnNpb24gc3VmZml4IGlmIHBv c3NpYmxlCi0rICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fu bm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKLSsgIC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4g RklMRSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xzCi0rICAtZXhw b3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2 ZWQgd2l0aCBkbHN5bSgzKQotKyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJTEUKLSsgICAgICAgICAg ICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklM RQotKyAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IFJFR0VYCi0rICAgICAgICAgICAgICAgICAgICB0 cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKLSsgIC1MTElCRElS ICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVkIGluc3RhbGxlZCBsaWJyYXJpZXMK LSsgIC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVzIHRoZSBpbnN0YWxsZWQg bGlicmFyeSBsaWJOQU1FCi0rICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhh dCBjYW4gZGxvcGVuZWQKLSsgIC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhlIGZhc3QtaW5z dGFsbCBtb2RlCi0rICAtbm8taW5zdGFsbCAgICAgICBsaW5rIGEgbm90LWluc3RhbGxhYmxlIGV4 ZWN1dGFibGUKLSsgIC1uby11bmRlZmluZWQgICAgIGRlY2xhcmUgdGhhdCBhIGxpYnJhcnkgZG9l cyBub3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9scwotKyAgLW8gT1VUUFVULUZJTEUgICAgY3Jl YXRlIE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNpZmllZCBvYmplY3RzCi0rICAtb2JqZWN0bGlz dCBGSUxFICBVc2UgYSBsaXN0IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBpbiBGSUxFIHRvIHNwZWNp Znkgb2JqZWN0cwotKyAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VYCi0rICAgICAgICAgICAg ICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5nIFJFR0VYCi0rICAtcmVs ZWFzZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2UgcmVsZWFzZSBpbmZvcm1hdGlvbgotKyAgLXJw YXRoIExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2ZW50dWFsbHkgYmUgaW5z dGFsbGVkIGluIExJQkRJUgotKyAgLVJbIF1MSUJESVIgICAgICAgYWRkIExJQkRJUiB0byB0aGUg cnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMKLSsgIC1zdGF0aWMgICAgICAg ICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wg bGlicmFyaWVzCi0rICAtc3RhdGljLWxpYnRvb2wtbGlicwotKyAgICAgICAgICAgICAgICAgICAg ZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC12 ZXJzaW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCi0rICAgICAgICAgICAgICAgICAg ICBzcGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRv IDBdCi0rCi0rQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0n KSBhcmUgaWdub3JlZC4KLSsKLStFdmVyeSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEg ZmlsZW5hbWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQotK3RyZWF0ZWQgYXMgdW5pbnN0 YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJy YXJ5Ci0rb2JqZWN0IGZpbGVzLgotKwotK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxh JywgdGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAotK29ubHkgbGlicmFyeSBvYmpl Y3RzIChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKLSty ZXF1aXJlZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgotKwot K0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJk IGxpYnJhcnkgaXMgY3JlYXRlZAotK3VzaW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdp bmRvd3MgdXNpbmcgXGBsaWInLgotKwotK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9y IFxgLiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCi0raXMgY3JlYXRl ZCwgb3RoZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKLSsgIDs7Ci0r Ci0rdW5pbnN0YWxsKQotKyAgJGVjaG8gXAotKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4u IC0tbW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgotKwotK1JlbW92ZSBs aWJyYXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgotKwotK1JNIGlzIHRoZSBu YW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRo IGVhY2ggRklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRp b25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKLSt0byBSTS4KLSsKLStJZiBGSUxFIGlz IGEgbGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUg ZGVsZXRlZC4KLStPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBS TS4iCi0rICA7OwotKwotKyopCi0rICAkZWNobyAiJG1vZGVuYW1lOiBpbnZhbGlkIG9wZXJhdGlv biBtb2RlIFxgJG1vZGUnIiAxPiYyCi0rICAkZWNobyAiJGhlbHAiIDE+JjIKLSsgIGV4aXQgJEVY SVRfRkFJTFVSRQotKyAgOzsKLStlc2FjCi0rCi0rJGVjaG8KLSskZWNobyAiVHJ5IFxgJG1vZGVu YW1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMuIgotKwot K2V4aXQgJD8KLSsKLSsjIFRoZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB3ZSBu ZXZlciBnZXQgaW50byBhIHNpdHVhdGlvbgotKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtp bmRzIG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCi0rIyBjaG9pY2VzLCB3ZSBnbyBm b3IgYSBzdGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKLSsjIHNpbmNl IHdlIGNhbid0IHRlbGwgd2hldGhlciBzaGFyZWQgbGlicmFyaWVzIHdlcmUgZGlzYWJsZWQgYmVj YXVzZQotKyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0g ZG9lc24ndCBzdXBwb3J0Ci0rIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50 IG9uIEFJWCwgYmVjYXVzZSB3ZSBkb24ndAotKyMgc3VwcG9ydCBoYXZpbmcgYm90aCBzdGF0aWMg YW5kIHNoYXJlZCBsaWJyYXJpZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQotKyMgdGltZSBvbiB0aGF0 IHBsYXRmb3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4K LSsjIElmIGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBh IHN0YXRpYy1vbmx5Ci0rIyBjb25maWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5ldmVyIGdvIGZyb20g c3RhdGljLW9ubHkgdG8gc2hhcmVkLW9ubHkuCi0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcg Q09ORklHOiBkaXNhYmxlLXNoYXJlZAotK2Rpc2FibGVfbGlicz1zaGFyZWQKLSsjICMjIyBFTkQg TElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAotKwotKyMgIyMjIEJFR0lOIExJQlRP T0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKLStkaXNhYmxlX2xpYnM9c3RhdGljCi0rIyAj IyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKLSsKLSsjIExvY2FsIFZh cmlhYmxlczoKLSsjIG1vZGU6c2hlbGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjoyCi0rIyBF bmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3Npbmcgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21p c3NpbmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL21pc3NpbmcJMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMzY3IEBACi0rIyEgL2Jpbi9zaAotKyMgQ29tbW9uIHN0dWIgZm9yIGEg ZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcuCi0rCi0rc2NyaXB0dmVy c2lvbj0yMDA2LTA1LTEwLjIzCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTks IDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKLSsjICAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFy ZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwg b3IgKGF0IHlvdXIgb3B0aW9uKQotKyMgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgotKwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCi0rIyAwMjExMC0xMzAx LCBVU0EuCi0rCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9m IGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVy YXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBk aXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dy YW0uCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgZWNobyAxPiYyICJUcnkgXGAkMCAt LWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgZXhpdCAxCi0rZmkKLSsKLStydW49Ogot K3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEvcCcKLStzZWRfbWlu dXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCi0rCi0rIyBJbiB0aGUgY2FzZXMgd2hlcmUg dGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQotKyMgc3JjZGlyIGFs cmVhZHkuCi0raWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRoZW4KLSsgIGNvbmZpZ3VyZV9hYz1j b25maWd1cmUuYWMKLStlbHNlCi0rICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmluCi0rZmkKLSsK LSttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCi0rCi0rY2FzZSAkMSBpbgotKy0tcnVuKQot KyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1 Y2NlZWRzLgotKyAgcnVuPQotKyAgc2hpZnQKLSsgICIkQCIgJiYgZXhpdCAwCi0rICAjIEV4aXQg Y29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCi0rICAj IHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29sIG9u Ci0rICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBj YXNlIHdlCi0rICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQgYmVl biBhYnNlbnQsIG9yCi0rICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3NlZC4KLSsgIGlmIHRl c3QgJD8gPSA2MzsgdGhlbgotKyAgICBydW49OgotKyAgICBtc2c9InByb2JhYmx5IHRvbyBvbGQi Ci0rICBmaQotKyAgOzsKLSsKLSsgIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKLSsgICAgZWNo byAiXAotKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgotKwotK0hhbmRsZSBc YFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBvciBy ZXR1cm4gYW4KLStlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcgZm9y IFBST0dSQU0uCi0rCi0rT3B0aW9uczoKLSsgIC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRoaXMg aGVscCBhbmQgZXhpdAotKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0 aW9uIGFuZCBleGl0Ci0rICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4gY29t bWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKLSsKLStTdXBwb3J0ZWQgUFJPR1JBTSB2 YWx1ZXM6Ci0rICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwubTQnCi0rICBhdXRv Y29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKLSsgIGF1dG9oZWFkZXIgICB0b3VjaCBm aWxlIFxgY29uZmlnLmguaW4nCi0rICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxl LCBvciBjcmVhdGUgYSBzdHViIG9uZQotKyAgYXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2Vm aWxlLmluJyBmaWxlcwotKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBw b3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotKyAgZmxleCAgICAgICAgIGNyZWF0ZSBcYGxl eC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKLSsgIGhlbHAybWFuICAgICB0 b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycs IGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCi0rICBtYWtlaW5mbyAgICAgdG91Y2ggdGhl IG91dHB1dCBmaWxlCi0rICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0aGVu IHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncwotKyAgeWFjYyAgICAgICAgIGNyZWF0ZSBc YHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotKwotK1NlbmQg YnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCi0rICAgIGV4aXQgJD8KLSsg ICAgOzsKLSsKLSsgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZlcnNpfC0tdmVyc2lvfC0t dmVyc2lvbikKLSsgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9tYWtl KSIKLSsgICAgZXhpdCAkPwotKyAgICA7OwotKwotKyAgLSopCi0rICAgIGVjaG8gMT4mMiAiJDA6 IFVua25vd24gXGAkMScgb3B0aW9uIgotKyAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcg Zm9yIG1vcmUgaW5mb3JtYXRpb24iCi0rICAgIGV4aXQgMQotKyAgICA7OwotKwotK2VzYWMKLSsK LSsjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93 IGlmIHdlCi0rIyBkb24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBs aWtlbHkgdG8gZGV0ZWN0Ci0rIyB0aGUgcHJvZ3JhbSkuCi0rY2FzZSAkMSBpbgotKyAgbGV4fHlh Y2MpCi0rICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4K LSsgICAgOzsKLSsKLSsgIHRhcikKLSsgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRoZW4KLSsgICAg ICAgZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJlcXVpcmVzIC0tcnVuIgotKyAgICAgICBleGl0 IDEKLSsgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAi eC0taGVscCI7IHRoZW4KLSsgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICAq KQotKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KLSsgICAgICAg ZXhpdCAxCi0rICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIi ID0gIngtLWhlbHAiOyB0aGVuCi0rICAgICAgICMgQ291bGQgbm90IHJ1biAtLXZlcnNpb24gb3Ig LS1oZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21lb25lCi0rICAgICAgICMgcnVubmluZyBgJFRP T0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBjaGVjayB3aGV0aGVyCi0rICAgICAg ICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9PTCB1c2VzIG1pc3NpbmcuCi0rICAg ICAgIGV4aXQgMQotKyAgICBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsjIElmIGl0IGRvZXMgbm90 IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAot KyMgdHJ5IHRvIGVtdWxhdGUgaXQuCi0rY2FzZSAkMSBpbgotKyAgYWNsb2NhbCopCi0rICAgIGVj aG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVl ZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2Nv bmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKLSsgICAgICAgICB0byBpbnN0YWxsIHRoZSBc YEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tCi0rICAgICAg ICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICB0b3VjaCBhY2xvY2FsLm00Ci0rICAgIDs7 Ci0rCi0rICBhdXRvY29uZikKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMg JG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVk IFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCi0rICAg ICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9t IGFueSBHTlUKLSsgICAgICAgICBhcmNoaXZlIHNpdGUuIgotKyAgICB0b3VjaCBjb25maWd1cmUK LSsgICAgOzsKLSsKLSsgIGF1dG9oZWFkZXIpCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6 IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlv dSBtb2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdo dCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00 JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQotKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNp dGUuIgotKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihcKFte KV0qXCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAotKyAgICB0ZXN0IC16ICIkZmlsZXMiICYm IGZpbGVzPSJjb25maWcuaCIKLSsgICAgdG91Y2hfZmlsZXM9Ci0rICAgIGZvciBmIGluICRmaWxl czsgZG8KLSsgICAgICBjYXNlICRmIGluCi0rICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRvdWNo X2ZpbGVzICJgZWNobyAiJGYiIHwKLSsJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8nIC1l ICdzLzouKi8vJ2A7OwotKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4i OzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0rICAg IDs7Ci0rCi0rICBhdXRvbWFrZSopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEn IGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2Rp ZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9 Jy4KLSsgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBh bmQgXGBQZXJsJyBwYWNrYWdlcy4KLSsgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VIGFy Y2hpdmUgc2l0ZS4iCi0rICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmlu dCB8Ci0rCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8Ci0rCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91 Y2ggIiRmIjsgZG9uZQotKyAgICA7OwotKwotKyAgYXV0b200dGUpCi0rICAgIGVjaG8gMT4mMiAi XAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRtc2cuCi0rICAgICAgICAgWW91 IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKLSsgICAg ICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KLSsgICAgICAgICBZ b3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQotKyAg ICAgICAgIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAi JHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwg c2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgotKwl0 b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQot KwllY2hvICIjISAvYmluL3NoIgotKwllY2hvICIjIENyZWF0ZWQgYnkgR05VIEF1dG9tYWtlIG1p c3NpbmcgYXMgYSByZXBsYWNlbWVudCBvZiIKLSsJZWNobyAiIyAgJCAkQCIKLSsJZWNobyAiZXhp dCAwIgotKwljaG1vZCAreCAkZmlsZQotKwlleGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsg IGJpc29ufHlhY2MpCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZ b3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnkn IGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSsgICAgICAgICBpbiBv cmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0 Ci0rICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHJt IC1mIHkudGFiLmMgeS50YWIuaAotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAg ICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLnkpCi0rCSAg ICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAotKwkgICAgaWYgdGVz dCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuYwot KwkgICAgZmkKLSsJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydg Ci0rCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3AgIiRTUkNG SUxFIiB5LnRhYi5oCi0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsgICAgaWYg dGVzdCAhIC1mIHkudGFiLmg7IHRoZW4KLSsJZWNobyA+eS50YWIuaAotKyAgICBmaQotKyAgICBp ZiB0ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgotKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScg PnkudGFiLmMKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGxleHxmbGV4KQotKyAgICBlY2hvIDE+ JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQg aWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVkIHRo ZSBcYEZsZXgnIHBhY2thZ2UKLSsgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0 aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0Ci0rICAgICAgICAgXGBGbGV4JyBmcm9t IGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAgcm0gLWYgbGV4Lnl5LmMKLSsgICAgaWYgdGVz dCAkIyAtbmUgMTsgdGhlbgotKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCi0rCWNhc2Ug JExBU1RBUkcgaW4KLSsJKi5sKQotKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2Vk ICdzL2wkL2MvJ2AKLSsJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgotKwkgICAgICAg ICBjcCAiJFNSQ0ZJTEUiIGxleC55eS5jCi0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAg ZmkKLSsgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0aGVuCi0rCWVjaG8gJ21haW4oKSB7IHJl dHVybiAwOyB9JyA+bGV4Lnl5LmMKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGhlbHAybWFuKQot KyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBv bmx5IG5lZWQgaXQgaWYKLSsJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwg cGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKLSsJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3JkZXIg Zm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQotKwkgZWZmZWN0LiAgWW91IGNhbiBnZXQg XGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAgIGZpbGU9YGVj aG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYg ZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLWYg IiRmaWxlIjsgdGhlbgotKwl0b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3QgLXogIiRmaWxl IiB8fCBleGVjID4kZmlsZQotKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2Vu ZXJhdGUgdGhpcyBwYWdlIgotKwlleGl0IDEKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIG1ha2Vp bmZvKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNo b3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBv ciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQotKyAgICAgICAgIGluZGlyZWN0 bHkgYWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhlIG1hbnVhbC4gIFRoZSBzcHVyaW91cwotKyAg ICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBidWdn eSBcYG1ha2UnIChBSVgsCi0rICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8g aW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCi0rICAgICAgICAgdGhlIFxgR05VIG1h a2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsg ICAgIyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3aXRoIC1vIC4uLgotKyAg ICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKLSsgICAgdGVzdCAteiAi JGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAotKyAgICBp ZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KLSsgICAgICAjIC4uLiBvciBpdCBpcyB0aGUgb25lIHNw ZWNpZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KLSsgICAgICBpbmZpbGU9YGVjaG8gIiQqIiB8 IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKLSsgICAgICBmaWxlPWBzZWQgLW4gJwotKwkv XkBzZXRmaWxlbmFtZS97Ci0rCSAgcy8uKiBcKFteIF0qXCkgKiQvXDEvCi0rCSAgcAotKwkgIHEK LSsJfScgJGluZmlsZWAKLSsgICAgICAjIC4uLiBvciBpdCBpcyBkZXJpdmVkIGZyb20gdGhlIHNv dXJjZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZvKQotKyAgICAgIHRlc3QgLXogIiRm aWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5bXi5dKiQsLCdg LmluZm8KLSsgICAgZmkKLSsgICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhlIHVz ZXIgcmVhbGx5IG5lZWRzIG1ha2VpbmZvOwotKyAgICAjIGxldCdzIGZhaWwgd2l0aG91dCB0b3Vj aGluZyBhbnl0aGluZy4KLSsgICAgdGVzdCAtZiAkZmlsZSB8fCBleGl0IDEKLSsgICAgdG91Y2gg JGZpbGUKLSsgICAgOzsKLSsKLSsgIHRhcikKLSsgICAgc2hpZnQKLSsKLSsgICAgIyBXZSBoYXZl IGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0rICAgICMgTG9vayBmb3Ig Z251dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgotKyAgICAj IG1lc3NhZ2VzLgotKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsg dGhlbgotKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkKLSsgICAgaWYgKGd0 YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAgIGd0YXIgIiRAIiAm JiBleGl0IDAKLSsgICAgZmkKLSsgICAgZmlyc3Rhcmc9IiQxIgotKyAgICBpZiBzaGlmdDsgdGhl bgotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqbyopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZp cnN0YXJnIiB8IHNlZCBzL28vL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQg MAotKwkgICAgOzsKLSsJZXNhYwotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqaCopCi0rCSAgICBm aXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLSsJICAgIHRhciAiJGZpcnN0 YXJnIiAiJEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKyAgICBmaQotKwotKyAgICBl Y2hvIDE+JjIgIlwKLStXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4gXGB0 YXInIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KLSsgICAgICAgICBZb3UgbWF5IHdhbnQgdG8g aW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQotKyAgICAgICAg IGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgotKyAgICBleGl0IDEKLSsgICAgOzsKLSsKLSsgICop Ci0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRt c2cuCi0rICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0 IGhhdmluZyB0aGUKLSsgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcg dGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKLSsgICAgICAgICBpdCBvZnRlbiB0ZWxs cyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCi0rICAg ICAgICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNoaXZl IHNpdGUsIGluIGNhc2UKLSsgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29udGFp biB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCi0rICAgIGV4aXQgMQotKyAgICA7OwotK2Vz YWMKLSsKLStleGl0IDAKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9v ayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJz Y3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJI IgotKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCi0tLS0gc29jaS0z LjAuMF80LXBhY2svY29uZmlndXJlCTIwMDktMDUtMDYgMDE6MzI6NDAuMDAwMDAwMDAwICswMjAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQkyMDA5LTA1LTA2IDAxOjMxOjQ0LjAw MDAwMDAwMCArMDIwMAotQEAgLTEsNzIgKzEsMjU3MTMgQEAKLS0jIS9iaW4vc2gKLSsjISAvYmlu L3NoCi0rIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBj cmVhdGUgTWFrZWZpbGVzLgotKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzIGZvciBT T0NJIDMuMC4wLgotKyMKLSsjIFJlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vm b3JnZS5uZXQ+LgotKyMKLSsjIENvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFr IDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci0rIwotKyMgQ29weXJpZ2h0IChDKSAx OTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKyMg MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tICMjCi0rIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0rIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCi0gCi0taWYgWyAkIyAtZ3QgMCBdCi0tdGhlbgotLSAgICBpZiBbICQx ID0gIi1oZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KLSsjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGli bGUKLStEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0raWYgdGVzdCAt biAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBv ZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250 cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICck ezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNl IGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7Owot K2VzYWMKLSsKLStmaQotKwotKwotKwotKwotKyMgUEFUSCBuZWVkcyBDUgotKyMgQXZvaWQgZGVw ZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KLSthc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlq a2xtbm9wcXJzdHV2d3h5eicKLSthc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVW V1hZWicKLSthc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLSthc19j cl9kaWdpdHM9JzAxMjM0NTY3ODknCi0rYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3Jf ZGlnaXRzCi0rCi0rYXNfbmw9JwotKycKLStleHBvcnQgYXNfbmwKLSsjIFByaW50aW5nIGEgbG9u ZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgotK2FzX2VjaG89J1xc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCi0rYXNfZWNobz0k YXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0rYXNfZWNobz0kYXNfZWNo byRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KLStpZiAodGVzdCAiWGBw cmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAg YXNfZWNobz0ncHJpbnRmICVzXG4nCi0rICBhc19lY2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0r ICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAi ID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KLSsgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNi L2VjaG8gLW4gIiQxJGFzX25sIicKLSsgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwot KyAgZWxzZQotKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCki JwotKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAotKyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNl ICRhcmcgaW4KLSsgICAgICAqIiRhc19ubCIqKQotKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwp JGFzX25sIjsKLSsJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsg ICAgICBlc2FjOwotKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRh c19ubCIKLSsgICAgJwotKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19u PSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNo b19ib2R5Ci0rICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsK LSsjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9S K3NldH0iICE9IHNldDsgdGhlbgotKyAgUEFUSF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47 L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAo UEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8 fAotKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JwotKyAgfQotK2ZpCi0rCi0rIyBTdXBwb3J0IHVu c2V0IHdoZW4gcG9zc2libGUuCi0raWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc191bnNldD11bnNldAotK2Vsc2UKLSsgIGFzX3Vu c2V0PWZhbHNlCi0rZmkKLSsKLSsKLSsjIElGUwotKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBu ZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCi0rIyB0aGVyZSB0 byBwcmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFjZS10YWIuCi0rIyAo SWYgX0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlz YWJsZSB3b3JkCi0rIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQot K0lGUz0iICIiCSRhc19ubCIKLSsKLSsjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBh dGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgotK2Nhc2UgJDAgaW4KLSsg ICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKLSsgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICB0ZXN0IC1yICIkYXNf ZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotK2RvbmUKLStJRlM9JGFz X3NhdmVfSUZTCi0rCi0rICAgICA7OwotK2VzYWMKLSsjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2 ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0rIyBpbiB3aGlj aCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCi0raWYgdGVzdCAieCRh c19teXNlbGYiID0geDsgdGhlbgotKyAgYXNfbXlzZWxmPSQwCi0rZmkKLStpZiB0ZXN0ICEgLWYg IiRhc19teXNlbGYiOyB0aGVuCi0rICAkYXNfZWNobyAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5v dCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUiID4mMgotKyAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rZmkKLSsKLSsjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJl LTMuMCBVV0lOIGtzaC4KLStmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1BSUxQQVRICi0rZG8gKCRh c191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKLStk b25lCi0rUFMxPSckICcKLStQUzI9Jz4gJwotK1BTND0nKyAnCi0rCi0rIyBOTFMgbnVpc2FuY2Vz LgotK0xDX0FMTD1DCi0rZXhwb3J0IExDX0FMTAotK0xBTkdVQUdFPUMKLStleHBvcnQgTEFOR1VB R0UKLSsKLSsjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KLStpZiBleHByIGEgOiAnXChhXCkn ID4vZGV2L251bGwgMj4mMSAmJgotKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCkn YCIgPSBYMDAxOyB0aGVuCi0rICBhc19leHByPWV4cHIKLStlbHNlCi0rICBhc19leHByPWZhbHNl Ci0rZmkKLSsKLStpZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhg YmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCi0rICBhc19iYXNlbmFtZT1iYXNlbmFt ZQotK2Vsc2UKLSsgIGFzX2Jhc2VuYW1lPWZhbHNlCi0rZmkKLSsKLSsKLSsjIE5hbWUgb2YgdGhl IGV4ZWN1dGFibGUuCi0rYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4cHIg WC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8vXCkk JyBcfCBcCi0rCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNo byBYLyIkMCIgfAotKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAgIHMv L1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8K LSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAg IHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rCi0rIyBDRFBBVEguCi0rJGFzX3Vuc2V0IENE UEFUSAotKwotKwotK2lmIHRlc3QgIngkQ09ORklHX1NIRUxMIiA9IHg7IHRoZW4KLSsgIGlmIChl dmFsICI6IikgMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCi0rZWxz ZQotKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubwotK2ZpCi0rCi0rICBpZiB0ZXN0ICRhc19oYXZlX3Jl cXVpcmVkID0geWVzICYmCSAoZXZhbCAiOgotKyhhc19mdW5jX3JldHVybiAoKSB7Ci0rICAoZXhp dCBcJDEpCi0rfQotK2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAwCi0r fQotK2FzX2Z1bmNfZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAxCi0rfQotK2FzX2Z1 bmNfcmV0X3N1Y2Nlc3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19yZXRfZmFpbHVy ZSAoKSB7Ci0rICByZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0wCi0raWYgYXNfZnVuY19zdWNj ZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3N1 Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCi0rICBleGl0 Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiBh c19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAg ZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0 X2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVy ZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkg JiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQot KyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCi0rZmkKLSsKLSt0 ZXN0IFwkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSsKLSsoCi0rICBh c19saW5lbm9fMT1cJExJTkVOTwotKyAgYXNfbGluZW5vXzI9XCRMSU5FTk8KLSsgIHRlc3QgXCJ4 XCRhc19saW5lbm9fMVwiICE9IFwieFwkYXNfbGluZW5vXzJcIiAmJgotKyAgdGVzdCBcInhcYGV4 cHIgXCRhc19saW5lbm9fMSArIDFcYFwiID0gXCJ4XCRhc19saW5lbm9fMlwiKSB8fCB7IChleGl0 IDEpOyBleGl0IDE7IH0KLSsiKSAyPiAvZGV2L251bGw7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBh c19jYW5kaWRhdGVfc2hlbGxzPQotKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9T RVBBUkFUT1IkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgY2FzZSAkYXNfZGlyIGluCi0rCSAvKikKLSsJICAgZm9yIGFz X2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbwotKwkgICAgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9 IiRhc19jYW5kaWRhdGVfc2hlbGxzICRhc19kaXIvJGFzX2Jhc2UiCi0rCSAgIGRvbmU7OwotKyAg ICAgICBlc2FjCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsKLSsgICAgICBmb3IgYXNf c2hlbGwgaW4gJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbwotKwkgIyBUcnkgb25seSBz aGVsbHMgdGhhdCBleGlzdCwgdG8gc2F2ZSBzZXZlcmFsIGZvcmtzLgotKwkgaWYgeyB0ZXN0IC1m ICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9ICYmCi0rCQl7ICgiJGFz X3NoZWxsIikgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJ T04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0 ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQg c3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVz YWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRA IicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4v ZGV2L251bGxgIGluCi0rICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKLStlc2FjCi0rCi0rZmkK LSsKLSsKLSs6Ci0rX0FTRU9GCi0rfTsgdGhlbgotKyAgQ09ORklHX1NIRUxMPSRhc19zaGVsbAot KwkgICAgICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKLSsJICAgICAgIGlmIHsgIiRhc19zaGVsbCIg Mj4gL2Rldi9udWxsIDw8XF9BU0VPRgotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIg JiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAg TlVMTENNRD06Ci0rICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5n IG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlz YWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNl dG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxg IGluCi0rICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKLStlc2FjCi0rCi0rZmkKLSsKLSsKLSs6 Ci0rKGFzX2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0ICQxKQotK30KLSthc19mdW5jX3N1Y2Nl c3MgKCkgewotKyAgYXNfZnVuY19yZXR1cm4gMAotK30KLSthc19mdW5jX2ZhaWx1cmUgKCkgewot KyAgYXNfZnVuY19yZXR1cm4gMQotK30KLSthc19mdW5jX3JldF9zdWNjZXNzICgpIHsKLSsgIHJl dHVybiAwCi0rfQotK2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgewotKyAgcmV0dXJuIDEKLSt9Ci0r Ci0rZXhpdGNvZGU9MAotK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgotKyAgOgotK2Vsc2UKLSsg IGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lm IGFzX2Z1bmNfZmFpbHVyZTsgdGhlbgotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX2Zh aWx1cmUgc3VjY2VlZGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgot KyAgOgotK2Vsc2UKLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBm YWlsZWQuCi0rZmkKLSsKLStpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCi0rICBleGl0Y29k ZT0xCi0rICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgotK2ZpCi0rCi0raWYg KCBzZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9ICIkMSIgKTsgdGhlbgot KyAgOgotK2Vsc2UKLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJz IHdlcmUgbm90IHNhdmVkLgotK2ZpCi0rCi0rdGVzdCAkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0 IDEpOyBleGl0IDE7IH0KLSsKLSsoCi0rICBhc19saW5lbm9fMT0kTElORU5PCi0rICBhc19saW5l bm9fMj0kTElORU5PCi0rICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIg JiYKLSsgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIp IHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKwotK19BU0VPRgotK307IHRoZW4KLSsgIGJyZWFr Ci0rZmkKLSsKLStmaQotKwotKyAgICAgIGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0ICJ4JENPTkZJ R19TSEVMTCIgIT0geDsgdGhlbgotKyAgZm9yIGFzX3ZhciBpbiBCQVNIX0VOViBFTlYKLSsJZG8g KCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIK LSsJZG9uZQotKwlleHBvcnQgQ09ORklHX1NIRUxMCi0rCWV4ZWMgIiRDT05GSUdfU0hFTEwiICIk YXNfbXlzZWxmIiAkezErIiRAIn0KLStmaQotKwotKwotKyAgICBpZiB0ZXN0ICRhc19oYXZlX3Jl cXVpcmVkID0gbm87IHRoZW4KLSsgIGVjaG8gVGhpcyBzY3JpcHQgcmVxdWlyZXMgYSBzaGVsbCBt b3JlIG1vZGVybiB0aGFuIGFsbCB0aGUKLSsgICAgICBlY2hvIHNoZWxscyB0aGF0IEkgZm91bmQg b24geW91ciBzeXN0ZW0uICBQbGVhc2UgaW5zdGFsbCBhCi0rICAgICAgZWNobyBtb2Rlcm4gc2hl bGwsIG9yIG1hbnVhbGx5IHJ1biB0aGUgc2NyaXB0IHVuZGVyIHN1Y2ggYQotKyAgICAgIGVjaG8g c2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLgotKyAgICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQot K2ZpCi0rCi0rCi0rZmkKLSsKLStmaQotKwotKwotKwotKyhldmFsICJhc19mdW5jX3JldHVybiAo KSB7Ci0rICAoZXhpdCBcJDEpCi0rfQotK2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5j X3JldHVybiAwCi0rfQotK2FzX2Z1bmNfZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAx Ci0rfQotK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVu Y19yZXRfZmFpbHVyZSAoKSB7Ci0rICByZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0wCi0raWYg YXNfZnVuY19zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNo byBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0 aGVuCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0r ZmkKLSsKLStpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhp dGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lm IGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVu Y19yZXRfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3Jl dF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAg ZXhpdGNvZGU9MQotKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQu Ci0rZmkKLSsKLSt0ZXN0IFwkZXhpdGNvZGUgPSAwIikgfHwgewotKyAgZWNobyBObyBzaGVsbCBm b3VuZCB0aGF0IHN1cHBvcnRzIHNoZWxsIGZ1bmN0aW9ucy4KLSsgIGVjaG8gUGxlYXNlIHRlbGwg YnVnLWF1dG9jb25mQGdudS5vcmcgYWJvdXQgeW91ciBzeXN0ZW0sCi0rICBlY2hvIGluY2x1ZGlu ZyBhbnkgZXJyb3IgcG9zc2libHkgb3V0cHV0IGJlZm9yZSB0aGlzIG1lc3NhZ2UuCi0rICBlY2hv IFRoaXMgY2FuIGhlbHAgdXMgaW1wcm92ZSBmdXR1cmUgYXV0b2NvbmYgdmVyc2lvbnMuCi0rICBl Y2hvIENvbmZpZ3VyYXRpb24gd2lsbCBub3cgcHJvY2VlZCB3aXRob3V0IHNoZWxsIGZ1bmN0aW9u cy4KLSt9Ci0rCi0rCi0rCi0rICBhc19saW5lbm9fMT0kTElORU5PCi0rICBhc19saW5lbm9fMj0k TElORU5PCi0rICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKLSsg IHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgewot KwotKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0 IHdpdGggJExJTkVOTwotKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVy LiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVy IGVhY2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQnCi0rICAjIGRvZXMgdGhl IHJlYWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAotKyAg IyBsaW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQg YXBwZW5kcwotKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRM SU5FTk8gaXMgbm90IGEgc3BlY2lhbAotKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgotKyAgIyAoUmFq YSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhl Ci0rICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmku ICBCbGFtZSBMZWUKLSsgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4 LiAgOi0pCi0rICBzZWQgLW4gJwotKyAgICBwCi0rICAgIC9bJF1MSU5FTk8vPQotKyAgJyA8JGFz X215c2VsZiB8Ci0rICAgIHNlZCAnCi0rICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KLSsgICAgICB0 IGxpbmVubwotKyAgICAgIGIKLSsgICAgICA6bGluZW5vCi0rICAgICAgTgotKyAgICAgIDpsb29w Ci0rICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwx XDIvCi0rICAgICAgdCBsb29wCi0rICAgICAgcy8tXG4uKi8vCi0rICAgICcgPiRhc19tZS5saW5l bm8gJiYKLSsgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAotKyAgICB7ICRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQ T1NJWCBzaGVsbCIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rICAjIERv bid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBw cm9ibGVtcwotKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJl IHdlIG1pZ2h0IGZpbmQgdGhlCi0rICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlz IGVzcGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgotKyAgLiAiLi8kYXNfbWUubGluZW5vIgot KyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCi0rICBleGl0Ci0r fQotKwotKwotK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0g WC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfZGlybmFtZT1kaXJuYW1lCi0rZWxzZQot KyAgYXNfZGlybmFtZT1mYWxzZQotK2ZpCi0rCi0rRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KLStj YXNlIGBlY2hvIC1uIHhgIGluCi0rLW4qKQotKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KLSsgICpj KikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgotKyAgKikg ICBFQ0hPX0M9J1xjJzs7Ci0rICBlc2FjOzsKLSsqKQotKyAgRUNIT19OPSctbic7OwotK2VzYWMK LStpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgotKyAgIHRlc3QgIlhgZXhw ciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCi0rICBhc19leHByPWV4cHIKLStl bHNlCi0rICBhc19leHByPWZhbHNlCi0rZmkKLSsKLStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBj b25mJCQuZmlsZQotK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgotKyAgcm0gLWYgY29uZiQk LmRpci9jb25mJCQuZmlsZQotK2Vsc2UKLSsgIHJtIC1mIGNvbmYkJC5kaXIKLSsgIG1rZGlyIGNv bmYkJC5kaXIgMj4vZGV2L251bGwKLStmaQotK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2 L251bGw7IHRoZW4KLSsgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsg dGhlbgotKyAgICBhc19sbl9zPSdsbiAtcycKLSsgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28g Z290Y2hhczoKLSsgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBs biBmaWxlIGRpcicgZmFpbC4KLSsgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtz OyBgbG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCi0rICAgICMgSW4gYm90aCBj YXNlcywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCi0rICAgIGxuIC1zIGNvbmYkJC5m aWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKLSsg ICAgICBhc19sbl9zPSdjcCAtcCcKLSsgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rl di9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9bG4KLSsgIGVsc2UKLSsgICAgYXNfbG5fcz0nY3Ag LXAnCi0rICBmaQotK2Vsc2UKLSsgIGFzX2xuX3M9J2NwIC1wJwotK2ZpCi0rcm0gLWYgY29uZiQk IGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQotK3JtZGlyIGNv bmYkJC5kaXIgMj4vZGV2L251bGwKLSsKLStpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVu Ci0rICBhc19ta2Rpcl9wPToKLStlbHNlCi0rICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAot KyAgYXNfbWtkaXJfcD1mYWxzZQotK2ZpCi0rCi0raWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgYXNfdGVzdF94PSd0ZXN0IC14JwotK2Vsc2UKLSsgIGlmIGxzIC1kTCAvID4v ZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICBhc19sc19MX29wdGlvbj1MCi0rICBlbHNlCi0rICAg IGFzX2xzX0xfb3B0aW9uPQotKyAgZmkKLSsgIGFzX3Rlc3RfeD0nCi0rICAgIGV2YWwgc2ggLWMg J1wnJwotKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgotKwl0ZXN0IC1kICIkMS8uIjsKLSsg ICAgICBlbHNlCi0rCWNhc2UgJDEgaW4KLSsJLSopc2V0ICIuLyQxIjs7Ci0rCWVzYWM7Ci0rCWNh c2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCi0rCT8/P1tz eF0qKTo7OyopZmFsc2U7O2VzYWM7ZmkKLSsgICAgJ1wnJyBzaAotKyAgJwotK2ZpCi0rYXNfZXhl Y3V0YWJsZV9wPSRhc190ZXN0X3gKLSsKLSsjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmlu ZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCi0rYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2Ny X2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLSsj IFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFt ZS4KLSthc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcn IgotKwotKwotKwotKwotKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29y cmVjdCBzaGVsbC4KLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKwotK2Nhc2UgWCRF Q0hPIGluCi0rWCotLWZhbGxiYWNrLWVjaG8pCi0rICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVv dGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgotKyAgRUNITz1gZWNobyAiJEVD SE8iIHwgc2VkICdzLFxcXFxcJFxcJDAsJyQwJywnYAotKyAgOzsKLStlc2FjCi0rCi0rZWNobz0k e0VDSE8tZWNob30KLStpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0rICAjIERp c2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KLSsgIHNoaWZ0Ci0rZWxp ZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyBBdm9pZCBpbmxpbmUg ZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgotKyAgOgotK2VsaWYgdGVzdCAiWGAo JGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgotKyAgIyBZaXBwZWUsICRl Y2hvIHdvcmtzIQotKyAgOgotK2Vsc2UKLSsgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBz aGVsbC4KLSsgIGV4ZWMgJFNIRUxMICIkMCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9Ci0rZmkKLSsK LStpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotKyAgIyB1c2VkIGFzIGZh bGxiYWNrIGVjaG8KLSsgIHNoaWZ0Ci0rICBjYXQgPDxFT0YKLSskKgotK0VPRgotKyAgZXhpdCAw Ci0rZmkKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJn ZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQ QVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0raWYgdGVzdCAteiAiJEVD SE8iOyB0aGVuCi0raWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0 aGVuCi0rIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRo ZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0Ci0rICBmb3IgY21kIGluICdzZWQgNTBxICIkMCInICdz ZWQgMjBxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMnEgIiQwIicgJ2VjaG8gdGVzdCc7IGRv Ci0rICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAx NiBieXRlcywgLi4uCi0rICAgIGlmIChlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgKSAyPi9k ZXYvbnVsbCAmJgotKyAgICAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgICYmCi0rICAg ICAgICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyIpIDI+ L2Rldi9udWxsCi0gICAgIHRoZW4KLS0gICAgICAgIGVjaG8gJ1JlY29nbml6ZWQgY29uZmlndXJl IG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZWNobyAnSW5zdGFsbGF0aW9u IG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnLS1pbmNsdWRlLXByZWZpeD0vc29tZS9wYXRoICAg ICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBoZWFkZXIgZmlsZXMnCi0tICAgICAgICBlY2hvICct LWxpYi1wcmVmaXg9L3NvbWUvcGF0aCAgICAgICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGxp YnJhcmllcycKLS0gICAgICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ015U1FMIG9wdGlvbnM6 JwotLSAgICAgICAgZWNobyAnLS1teXNxbC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAgLSBkaXJl Y3RvcnkgY29udGFpbmluZyBteXNxbC5oJwotLSAgICAgICAgZWNobyAnLS1teXNxbC1saWI9L3Nv bWUvcGF0aCAgICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJteXNxbGNsaWVudC5b YXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdPcmFjbGUgb3B0aW9ucyAo aWYgT1JBQ0xFX0hPTUUgdmFyaWFibGUgaXMgbm90IHNldCk6JwotLSAgICAgICAgZWNobyAnLS1v cmFjbGUtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBvY2ku aCcKLS0gICAgICAgIGVjaG8gJy0tb3JhY2xlLWxpYj0vc29tZS9wYXRoICAgICAgICAgIC0gZGly ZWN0b3J5IGNvbnRhaW5pbmcgbGliY2xudHNoLlthfHNvXScKLS0gICAgICAgIGVjaG8gJycKLS0g ICAgICAgIGVjaG8gJ1Bvc3RncmVTUUwgb3B0aW9uczonCi0tICAgICAgICBlY2hvICctLXBvc3Rn cmVzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxL2xp YnBxLWZzLmgnCi0tICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtbGliPS9zb21lL3BhdGggICAg ICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxLlthfHNvXScKLS0gICAgICAgIGVjaG8gJycK LS0gICAgICAgIGVjaG8gJ1Rlc3QgcHJvZ3JhbXMgY29tcGlsYXRpb24gb3B0aW9ucyAobm90IG5l ZWRlZCBmb3IgbGlicmFyeSBidWlsZCk6JwotLSAgICAgICAgZWNobyAnLS1ib29zdC1pbmNsdWRl PS9zb21lL3BhdGggICAgICAgLSByb290IGluY2x1ZGUgZGlyZWN0b3J5IG9mIEJvb3N0JwotLSAg ICAgICAgZWNobyAnLS1ib29zdC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAgLSByb290IGxpYiBk aXJlY3Rvcnkgb2YgQm9vc3QnCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBleGl0Ci0rICAg ICAgYnJlYWsKLSAgICAgZmkKLSsgIGRvbmUKLSBmaQotIAotLW1rZGlyIC1wIGJ1aWxkL3VuaXgv bG9jYWwKLS1wYXRoPSJidWlsZC91bml4L2xvY2FsL3BhcmFtZXRlcnMiCi0tcm0gLWYgJHBhdGgK LS10b3VjaCAkcGF0aAotLWZvciBwYXJhbSBpbiAkKgotLWRvCi0tICAgICAgICBlY2hvICRwYXJh bSA+PiAkcGF0aAotLWRvbmUKLS0KLS1wcmludGYgJ1RyeWluZyB0byBmaW5kIHRoZSBUY2wgaW50 ZXJwcmV0ZXIuLi4gJwotLXRjbF9mb3VuZD0wCi0tCi0tZm9yIHBhdGggaW4gIi91c3IvYmluL3Rj bHNoIiBcCi0tICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC41IiBcCi0tICAgICAg ICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC40IiBcCi0tICAgICAgICAgICAgIi91c3IvbG9j YWwvYmluL3RjbHNoOC4zIjsgZG8KLS0gICAgaWYgWyAteCAkcGF0aCBdCi0tICAgIHRoZW4KLS0g ICAgICAgIGVjaG8gJHBhdGggPiBidWlsZC91bml4L2xvY2FsL3RjbAotLSAgICAgICAgZWNobyAk cGF0aAotLSAgICAgICAgdGNsX2ZvdW5kPTEKLS0gICAgICAgIGJyZWFrCi0raWYgdGVzdCAiWGAo JGVjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0rICAgZWNob190ZXN0aW5nX3N0 cmluZz1gKCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKyAgIHRl c3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgot KyAgOgotK2Vsc2UKLSsgICMgVGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZh dWx0IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQotKyAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMg aXQgaW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZwotKyAgIyAgIGVjaG8gIiRz b21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsgICMKLSsgICMgU28sIGZpcnN0IHdlIGxv b2sgZm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KLSsKLSsgIGx0X3NhdmVf aWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGRpciBpbiAkUEFUSCAvdXNy L3VjYjsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIGlmICh0ZXN0IC1mICRkaXIv ZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCi0rICAgICAgIHRlc3QgIlhg KCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSsgICAgICAgZWNob190 ZXN0aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVs bGAgJiYKLSsgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVz dF9zdHJpbmciOyB0aGVuCi0rICAgICAgZWNobz0iJGRpci9lY2hvIgotKyAgICAgIGJyZWFrCi0r ICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsKLSsgIGlmIHRlc3QgIlgk ZWNobyIgPSBYZWNobzsgdGhlbgotKyAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8s IHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KLSsgICAgaWYgdGVzdCAiWGAocHJpbnQgLXIgJ1x0 JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0rICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9 YChwcmludCAtciAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVu Ci0rICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRo ZSB0cmljay4KLSsgICAgICBlY2hvPSdwcmludCAtcicKLSsgICAgZWxpZiAodGVzdCAtZiAvYmlu L2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dCkgJiYKLSsJIHRlc3QgIlgkQ09ORklH X1NIRUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KLSsgICAgICAjIElmIHdlIGhhdmUga3NoLCB0cnkg cnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSsgICAgICBPUklHSU5BTF9DT05GSUdf U0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSsgICAgICBleHBvcnQgT1JJR0lOQUxfQ09O RklHX1NIRUxMCi0rICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCi0rICAgICAgZXhwb3J0IENP TkZJR19TSEVMTAotKyAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7 MSsiJEAifQotKyAgICBlbHNlCi0rICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotKyAgICAgIGVj aG89J3ByaW50ZiAlc1xuJwotKyAgICAgIGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9u dWxsYCIgPSAnWFx0JyAmJgotKwkgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190 ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3Ry aW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSMgQ29vbCwgcHJpbnRmIHdvcmtz Ci0rCToKLSsgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklH X1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotKwkgICB0 ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgZWNob190ZXN0aW5n X3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRl Y2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rCSAgIHRlc3QgIlgkZWNob190ZXN0 aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwlDT05GSUdfU0hFTEw9 JE9SSUdJTkFMX0NPTkZJR19TSEVMTAotKwlleHBvcnQgQ09ORklHX1NIRUxMCi0rCVNIRUxMPSIk Q09ORklHX1NIRUxMIgotKwlleHBvcnQgU0hFTEwKLSsJZWNobz0iJENPTkZJR19TSEVMTCAkMCAt LWZhbGxiYWNrLWVjaG8iCi0rICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJ R19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAg dGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0rCSAgIGVjaG9fdGVzdGlu Z19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0 X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJp bmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJZWNobz0iJENPTkZJR19TSEVMTCAk MCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgZWxzZQotKwkjIG1heWJlIHdpdGggYSBzbWFsbGVy IHN0cmluZy4uLgotKwlwcmV2PToKLSsKLSsJZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJx ICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQgNTBxICIkMCInOyBkbwot KwkgIGlmICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCIpIDI+L2Rl di9udWxsCi0rCSAgdGhlbgotKwkgICAgYnJlYWsKLSsJICBmaQotKwkgIHByZXY9IiRjbWQiCi0r CWRvbmUKLSsKLSsJaWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICIkMCInOyB0aGVuCi0rCSAg ZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKLSsJICBleHBvcnQgZWNob190ZXN0X3N0cmlu ZwotKwkgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9z aH19ICIkMCIgJHsxKyIkQCJ9Ci0rCWVsc2UKLSsJICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRl bHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgotKwkgIGVjaG89ZWNobwotKwlmaQotKyAgICAg IGZpCi0gICAgIGZpCi0rICBmaQotK2ZpCi0rZmkKLSsKLSsjIENvcHkgZWNobyBhbmQgcXVvdGUg dGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCi0rIyB0aGUgTWFr ZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0 ZXIuCi0rRUNITz0kZWNobwotK2lmIHRlc3QgIlgkRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgJDAg LS1mYWxsYmFjay1lY2hvIjsgdGhlbgotKyAgIEVDSE89IiRDT05GSUdfU0hFTEwgXFxcJFwkMCAt LWZhbGxiYWNrLWVjaG8iCi0rZmkKLSsKLSsKLSsKLSsKLSt0YWduYW1lcz0ke3RhZ25hbWVzKyR7 dGFnbmFtZXN9LH1DWFgKLSsKLSt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1GNzcK LSsKLStleGVjIDc8JjAgPC9kZXYvbnVsbCA2PiYxCi0rCi0rIyBOYW1lIG9mIHRoZSBob3N0Lgot KyMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9n dXMgZXhpdCBzdGF0dXMsCi0rIyBzbyB1bmFtZSBnZXRzIHJ1biB0b28uCi0rYWNfaG9zdG5hbWU9 YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCi0rCi0rIwotKyMg SW5pdGlhbGl6YXRpb25zLgotKyMKLSthY19kZWZhdWx0X3ByZWZpeD0vdXNyL2xvY2FsCi0rYWNf Y2xlYW5fZmlsZXM9Ci0rYWNfY29uZmlnX2xpYm9ial9kaXI9LgotK0xJQk9CSlM9Ci0rY3Jvc3Nf Y29tcGlsaW5nPW5vCi0rc3ViZGlycz0KLStNRkxBR1M9Ci0rTUFLRUZMQUdTPQotK1NIRUxMPSR7 Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rCi0rIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCi0r UEFDS0FHRV9OQU1FPSdTT0NJJwotK1BBQ0tBR0VfVEFSTkFNRT0nc29jaScKLStQQUNLQUdFX1ZF UlNJT049JzMuMC4wJwotK1BBQ0tBR0VfU1RSSU5HPSdTT0NJIDMuMC4wJwotK1BBQ0tBR0VfQlVH UkVQT1JUPSdtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQnCi0rCi0rYWNfdW5pcXVlX2Zp bGU9InNvY2kvY29yZS9lcnJvci5jcHAiCi0rIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZv ciBtb3N0IHRlc3RzLgotK2FjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKLSsjaW5jbHVkZSA8c3RkaW8u aD4KLSsjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAotKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0r I2VuZGlmCi0rI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAotKyMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K LSsjZW5kaWYKLSsjaWZkZWYgU1REQ19IRUFERVJTCi0rIyBpbmNsdWRlIDxzdGRsaWIuaD4KLSsj IGluY2x1ZGUgPHN0ZGRlZi5oPgotKyNlbHNlCi0rIyBpZmRlZiBIQVZFX1NURExJQl9ICi0rIyAg aW5jbHVkZSA8c3RkbGliLmg+Ci0rIyBlbmRpZgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1NUUklO R19ICi0rIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I Ci0rIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci0rIyBlbmRpZgotKyMgaW5jbHVkZSA8c3RyaW5nLmg+ Ci0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfU1RSSU5HU19ICi0rIyBpbmNsdWRlIDxzdHJpbmdzLmg+ Ci0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAotKyMgaW5jbHVkZSA8aW50dHlwZXMu aD4KLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9TVERJTlRfSAotKyMgaW5jbHVkZSA8c3RkaW50Lmg+ Ci0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfVU5JU1REX0gKLSsjIGluY2x1ZGUgPHVuaXN0ZC5oPgot KyNlbmRpZiIKLSsKLSthY19zdWJzdF92YXJzPSdMVExJQk9CSlMKLStMSUJPQkpTCi0rUlVOX1RF U1RTX0ZBTFNFCi0rUlVOX1RFU1RTX1RSVUUKLStzZWRfb2sKLStkaWZmX29rCi0rSFRNTF9ET0Nf RkFMU0UKLStIVE1MX0RPQ19UUlVFCi0rUEVSTAotK2dzX29rCi0rZHZpcHNfb2sKLStsYXRleF9v awotK2RveHlnZW5fb2sKLStJTkZPX0RPQ19GQUxTRQotK0lORk9fRE9DX1RSVUUKLStQT1NUR1JF U1FMX0RJUlMKLStIQVZFX1BPU1RHUkVTUUxfRkFMU0UKLStIQVZFX1BPU1RHUkVTUUxfVFJVRQot K1BPU1RHUkVTUUxfTERGTEFHUwotK1BPU1RHUkVTUUxfQ0ZMQUdTCi0rUE9TVEdSRVNRTF9WRVJT SU9OCi0rUEdfQ09ORklHCi0rT1JBQ0xFX0RJUlMKLStIQVZFX09SQUNMRV9GQUxTRQotK0hBVkVf T1JBQ0xFX1RSVUUKLStPUkFDTEVfT0NJX0xERkxBR1MKLStPUkFDTEVfT0NJX0NGTEFHUwotK09S QUNMRV9PQ0lfVkVSU0lPTgotK01ZU1FMX0RJUlMKLStIQVZFX01ZU1FMX0ZBTFNFCi0rSEFWRV9N WVNRTF9UUlVFCi0rTVlTUUxfTERGTEFHUwotK01ZU1FMX0NGTEFHUwotK01ZU1FMX1ZFUlNJT04K LStNWVNRTF9DT05GSUcKLStCT09TVF9WRVJTSU9OCi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIKLStCT09TVF9SRUdFWF9MSUIKLStCT09TVF9EQVRFX1RJTUVfTElCCi0rQk9PU1RfU0lH TkFMU19MSUIKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIKLStCT09TVF9TRVJJQUxJWkFUSU9O X0xJQgotK0JPT1NUX0lPU1RSRUFNU19MSUIKLStCT09TVF9USFJFQURfTElCCi0rQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQgotK0JPT1NUX0ZJTEVTWVNURU1fTElCCi0rQk9PU1RfTElCUwotK0JP T1NUX0NGTEFHUwotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRAotK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF9UUlVFCi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAotK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURfRkFMU0UKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKLStTT0NJX0hFQURF UlNfQlVSSUVECi0rU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQotK1NPQ0lfSEVBREVSU19CVVJJ RURfVFJVRQotK0xJQlRPT0wKLSthY19jdF9GNzcKLStGRkxBR1MKLStGNzcKLStDUFAKLStOTUVE SVQKLStEU1lNVVRJTAotK1JBTkxJQgotK0FSCi0rRUNITwotK0xOX1MKLStFR1JFUAotK0dSRVAK LStTRUQKLSthbV9fZmFzdGRlcENDX0ZBTFNFCi0rYW1fX2Zhc3RkZXBDQ19UUlVFCi0rQ0NERVBN T0RFCi0rYWNfY3RfQ0MKLStDRkxBR1MKLStDQwotK0NYWENQUAotK2FtX19mYXN0ZGVwQ1hYX0ZB TFNFCi0rYW1fX2Zhc3RkZXBDWFhfVFJVRQotK0NYWERFUE1PREUKLStBTURFUEJBQ0tTTEFTSAot K0FNREVQX0ZBTFNFCi0rQU1ERVBfVFJVRQotK2FtX19xdW90ZQotK2FtX19pbmNsdWRlCi0rREVQ RElSCi0rT0JKRVhUCi0rRVhFRVhUCi0rYWNfY3RfQ1hYCi0rQ1BQRkxBR1MKLStMREZMQUdTCi0r Q1hYRkxBR1MKLStDWFgKLStob3N0X29zCi0raG9zdF92ZW5kb3IKLStob3N0X2NwdQotK2hvc3QK LStidWlsZF9vcwotK2J1aWxkX3ZlbmRvcgotK2J1aWxkX2NwdQotK2J1aWxkCi0rVVBMT0FEX0NP TU1BTkQKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTgotK1JQTV9SRUxFQVNFCi0rSEFWRV9DUFBV TklUX0ZBTFNFCi0rSEFWRV9DUFBVTklUX1RSVUUKLStDUFBVTklUX1ZFUlNJT04KLStDUFBVTklU X0xJQlMKLStDUFBVTklUX0NGTEFHUwotK0NQUFVOSVRfQ09ORklHCi0rYW1fX3VudGFyCi0rYW1f X3RhcgotK0FNVEFSCi0rYW1fX2xlYWRpbmdfZG90Ci0rU0VUX01BS0UKLStBV0sKLStta2Rpcl9w Ci0rTUtESVJfUAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTQotK1NUUklQCi0raW5zdGFsbF9zaAot K01BS0VJTkZPCi0rQVVUT0hFQURFUgotK0FVVE9NQUtFCi0rQVVUT0NPTkYKLStBQ0xPQ0FMCi0r VkVSU0lPTgotK1BBQ0tBR0UKLStDWUdQQVRIX1cKLSthbV9faXNyYwotK0lOU1RBTExfREFUQQot K0lOU1RBTExfU0NSSVBUCi0rSU5TVEFMTF9QUk9HUkFNCi0rdGFyZ2V0X2FsaWFzCi0raG9zdF9h bGlhcwotK2J1aWxkX2FsaWFzCi0rTElCUwotK0VDSE9fVAotK0VDSE9fTgotK0VDSE9fQwotK0RF RlMKLSttYW5kaXIKLStsb2NhbGVkaXIKLStsaWJkaXIKLStwc2RpcgotK3BkZmRpcgotK2R2aWRp cgotK2h0bWxkaXIKLStpbmZvZGlyCi0rZG9jZGlyCi0rb2xkaW5jbHVkZWRpcgotK2luY2x1ZGVk aXIKLStsb2NhbHN0YXRlZGlyCi0rc2hhcmVkc3RhdGVkaXIKLStzeXNjb25mZGlyCi0rZGF0YWRp cgotK2RhdGFyb290ZGlyCi0rbGliZXhlY2RpcgotK3NiaW5kaXIKLStiaW5kaXIKLStwcm9ncmFt X3RyYW5zZm9ybV9uYW1lCi0rcHJlZml4Ci0rZXhlY19wcmVmaXgKLStQQUNLQUdFX0JVR1JFUE9S VAotK1BBQ0tBR0VfU1RSSU5HCi0rUEFDS0FHRV9WRVJTSU9OCi0rUEFDS0FHRV9UQVJOQU1FCi0r UEFDS0FHRV9OQU1FCi0rUEFUSF9TRVBBUkFUT1IKLStTSEVMTCcKLSthY19zdWJzdF9maWxlcz0n JwotK2FjX3VzZXJfb3B0cz0nCi0rZW5hYmxlX29wdGlvbl9jaGVja2luZwotK3dpdGhfY3BwdW5p dF9wcmVmaXgKLSt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgKLStlbmFibGVfc2hhcmVkCi0rZW5h YmxlX3N0YXRpYwotK2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCi0rZW5hYmxlX2Zhc3RfaW5z dGFsbAotK3dpdGhfZ251X2xkCi0rZW5hYmxlX2xpYnRvb2xfbG9jawotK3dpdGhfcGljCi0rd2l0 aF90YWdzCi0rZW5hYmxlX2V4Y2VwdGlvbnMKLStlbmFibGVfaW5mb19kb2MKLStlbmFibGVfaHRt bF9kb2MKLSt3aXRoX2RvY2RpcgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnMKLStlbmFibGVfbXlz cWxfYnVycmllZF9oZWFkZXJzCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzCi0r d2l0aF9ib29zdAotK2VuYWJsZV9iYWNrZW5kX215c3FsCi0rd2l0aF9teXNxbAotK2VuYWJsZV9i YWNrZW5kX29yYWNsZQotK3dpdGhfb3JhY2xlCi0rd2l0aF9vcmFjbGVfaW5jbHVkZQotK3dpdGhf b3JhY2xlX2xpYgotK2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwKLSt3aXRoX3Bvc3RncmVzcWwK LSsnCi0rICAgICAgYWNfcHJlY2lvdXNfdmFycz0nYnVpbGRfYWxpYXMKLStob3N0X2FsaWFzCi0r dGFyZ2V0X2FsaWFzCi0rQ1hYCi0rQ1hYRkxBR1MKLStMREZMQUdTCi0rTElCUwotK0NQUEZMQUdT Ci0rQ0NDCi0rQ1hYQ1BQCi0rQ0MKLStDRkxBR1MKLStDUFAKLStGNzcKLStGRkxBR1MnCi0rCi0r Ci0rIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotK2FjX2luaXRf aGVscD0KLSthY19pbml0X3ZlcnNpb249ZmFsc2UKLSthY191bnJlY29nbml6ZWRfb3B0cz0KLSth Y191bnJlY29nbml6ZWRfc2VwPQotKyMgVGhlIHZhcmlhYmxlcyBoYXZlIHRoZSBzYW1lIG5hbWVz IGFzIHRoZSBvcHRpb25zLCB3aXRoCi0rIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgot K2NhY2hlX2ZpbGU9L2Rldi9udWxsCi0rZXhlY19wcmVmaXg9Tk9ORQotK25vX2NyZWF0ZT0KLStu b19yZWN1cnNpb249Ci0rcHJlZml4PU5PTkUKLStwcm9ncmFtX3ByZWZpeD1OT05FCi0rcHJvZ3Jh bV9zdWZmaXg9Tk9ORQotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4LHgsCi0rc2lsZW50PQot K3NpdGU9Ci0rc3JjZGlyPQotK3ZlcmJvc2U9Ci0reF9pbmNsdWRlcz1OT05FCi0reF9saWJyYXJp ZXM9Tk9ORQotKwotKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgotKyMgVGhlc2Ug YXJlIGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZp eD0vZm9vIgotKyMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJl IGJhc2VkIG9uIGV4ZWNfcHJlZml4Ci0rIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdl LgotKyMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNlIHNoLCBwZXJsLCBldGMu IGFsc28gYWNjZXB0IHRoZW0uCi0rIyAoVGhlIGxpc3QgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBh cyB0aGUgR05VIENvZGluZyBTdGFuZGFyZHMuKQotK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmlu JwotK3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCi0rbGliZXhlY2Rpcj0nJHtleGVjX3By ZWZpeH0vbGliZXhlYycKLStkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwotK2RhdGFkaXI9 JyR7ZGF0YXJvb3RkaXJ9JwotK3N5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCi0rc2hhcmVkc3Rh dGVkaXI9JyR7cHJlZml4fS9jb20nCi0rbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKLStp bmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKLStvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1 ZGUnCi0rZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JwotK2lu Zm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCi0raHRtbGRpcj0nJHtkb2NkaXJ9JwotK2R2aWRp cj0nJHtkb2NkaXJ9JwotK3BkZmRpcj0nJHtkb2NkaXJ9JwotK3BzZGlyPScke2RvY2Rpcn0nCi0r bGliZGlyPScke2V4ZWNfcHJlZml4fS9saWInCi0rbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9s b2NhbGUnCi0rbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCi0rCi0rYWNfcHJldj0KLSthY19k YXNoZGFzaD0KLStmb3IgYWNfb3B0aW9uCi0rZG8KLSsgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlv biBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgotKyAgaWYgdGVzdCAtbiAiJGFjX3ByZXYi OyB0aGVuCi0rICAgIGV2YWwgJGFjX3ByZXY9XCRhY19vcHRpb24KLSsgICAgYWNfcHJldj0KLSsg ICAgY29udGludWUKLSsgIGZpCi0rCi0rICBjYXNlICRhY19vcHRpb24gaW4KLSsgICo9KikJYWNf b3B0YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKLSsgICopCWFj X29wdGFyZz15ZXMgOzsKLSsgIGVzYWMKLSsKLSsgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3ln bnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0rCi0rICBj YXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KLSsgIC0tKQotKyAgICBhY19kYXNoZGFzaD15 ZXMgOzsKLSsKLSsgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJp biB8IC0tYmkpCi0rICAgIGFjX3ByZXY9YmluZGlyIDs7Ci0rICAtYmluZGlyPSogfCAtLWJpbmRp cj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQotKyAgICBiaW5k aXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVp IHwgLS1idSkKLSsgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OwotKyAgLWJ1aWxkPSogfCAtLWJ1 aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCi0rICAgIGJ1aWxkX2FsaWFzPSRh Y19vcHRhcmcgOzsKLSsKLSsgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNoZS1m aWwgfCAtLWNhY2hlLWZpIFwKLSsgIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwg LS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsK LSsgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAtLWNh Y2hlLWZpPSogXAotKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAt LWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSsgICAgY2FjaGVfZmlsZT0kYWNf b3B0YXJnIDs7Ci0rCi0rICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotKyAgICBjYWNoZV9maWxlPWNv bmZpZy5jYWNoZSA7OwotKwotKyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0t ZGF0YWQpCi0rICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotKyAgLWRhdGFkaXI9KiB8IC0tZGF0YWRp cj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKLSsgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7 Ci0rCi0rICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpIHwgLS1k YXRhcm9vdGQgfCAtLWRhdGFyb290IFwKLSsgIHwgLS1kYXRhcm9vIHwgLS1kYXRhcm8gfCAtLWRh dGFyKQotKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7Ci0rICAtZGF0YXJvb3RkaXI9KiB8IC0t ZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9vdGQ9KiBcCi0rICB8IC0t ZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikKLSsgICAg ZGF0YXJvb3RkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0q KQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4q XCknYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFi bGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxu dW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52 YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJv cHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2Fz ZSAkYWNfdXNlcl9vcHRzIGluCi0rICAgICAgKiIKLSsiZW5hYmxlXyRhY191c2Vyb3B0IgotKyIq KSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29w dHMkYWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNf dW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIGVuYWJsZV8kYWNf dXNlcm9wdD1ubyA7OwotKwotKyAgLWRvY2RpciB8IC0tZG9jZGlyIHwgLS1kb2NkaSB8IC0tZG9j IHwgLS1kbykKLSsgICAgYWNfcHJldj1kb2NkaXIgOzsKLSsgIC1kb2NkaXI9KiB8IC0tZG9jZGly PSogfCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQotKyAgICBkb2NkaXI9JGFjX29wdGFy ZyA7OwotKwotKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZp IHwgLS1kdikKLSsgICAgYWNfcHJldj1kdmlkaXIgOzsKLSsgIC1kdmlkaXI9KiB8IC0tZHZpZGly PSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2PSopCi0rICAgIGR2aWRp cj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtZW5hYmxlLSogfCAtLWVuYWJsZS0qKQotKyAgICBhY191 c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0rICAg ICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4K LSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2 L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1 cmUgbmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot KyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2Vj aG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2Vy X29wdHMgaW4KLSsgICAgICAqIgotKyJlbmFibGVfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAg ICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJl Y29nbml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXpl ZF9zZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRh Y19vcHRhcmcgOzsKLSsKLSsgIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMt cHJlZml4IHwgLS1leGVjLXByZWZpIFwKLSsgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwg LS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKLSsgIHwgLS1leGVjIHwgLS1leGUgfCAt LWV4KQotKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7Ci0rICAtZXhlYy1wcmVmaXg9KiB8IC0t ZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKLSsgIHwg LS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8 IC0tZXhlYy09KiBcCi0rICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLSsgICAgZXhl Y19wcmVmaXg9JGFjX29wdGFyZyA7OwotKwotKyAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykK LSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCi0rICAgIHdpdGhfZ2FzPXllcyA7Owot KwotKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKLSsgICAgYWNfaW5pdF9o ZWxwPWxvbmcgOzsKLSsgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIq IHwgLWhyKikKLSsgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OwotKyAgLWhlbHA9cyogfCAt LWhlbHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQotKyAgICBhY19pbml0X2hlbHA9 c2hvcnQgOzsKLSsKLSsgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQotKyAgICBhY19w cmV2PWhvc3RfYWxpYXMgOzsKLSsgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhv PSopCi0rICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLWh0bWxkaXIgfCAtLWh0 bWxkaXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0bSB8IC0taHQpCi0rICAg IGFjX3ByZXY9aHRtbGRpciA7OwotKyAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1s ZGk9KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCi0rICB8IC0taHQ9KikKLSsg ICAgaHRtbGRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRp ciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0rICB8IC0taW5jbHVk IHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQotKyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsK LSsgIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWlu Y2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0rICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAt LWluY2w9KiB8IC0taW5jPSopCi0rICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAg LWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWlu ZikKLSsgICAgYWNfcHJldj1pbmZvZGlyIDs7Ci0rICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSog fCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotKyAgICBpbmZv ZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAt LWxpYmQpCi0rICAgIGFjX3ByZXY9bGliZGlyIDs7Ci0rICAtbGliZGlyPSogfCAtLWxpYmRpcj0q IHwgLS1saWJkaT0qIHwgLS1saWJkPSopCi0rICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0r ICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8 IC0tbGliZXhlYyBcCi0rICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSsgICAgYWNf cHJldj1saWJleGVjZGlyIDs7Ci0rICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAt LWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSogXAotKyAgfCAtLWxpYmV4 ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0rICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7 OwotKwotKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxl ZCB8IC0tbG9jYWxlKQotKyAgICBhY19wcmV2PWxvY2FsZWRpciA7OwotKyAgLWxvY2FsZWRpcj0q IHwgLS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9 KikKLSsgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1sb2NhbHN0YXRlZGlyIHwg LS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKLSsgIHwg LS1sb2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1s b2NhbHMpCi0rICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OwotKyAgLWxvY2Fsc3RhdGVkaXI9 KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9 KiBcCi0rICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8 IC0tbG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKLSsgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJn IDs7Ci0rCi0rICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4g fCAtLW1hIHwgLS1tKQotKyAgICBhY19wcmV2PW1hbmRpciA7OwotKyAgLW1hbmRpcj0qIHwgLS1t YW5kaXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0q KQotKyAgICBtYW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikK LSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSsgICAgd2l0aF9mcD1ubyA7Owot KwotKyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8 IC0tbm8tY3JlIFwKLSsgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQotKyAgICBub19jcmVhdGU9 eWVzIDs7Ci0rCi0rICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vy c2lvIHwgLS1uby1yZWN1cnNpIFwKLSsgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1u by1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQotKyAgICBub19yZWN1cnNpb249 eWVzIDs7Ci0rCi0rICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5j bHVkZWRpIHwgLS1vbGRpbmNsdWRlZCBcCi0rICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVk IHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKLSsgIHwgLS1vbGRpbiB8IC0t b2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKLSsgICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7 Ci0rICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVk aT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKLSsgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1 ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKLSsgIHwgLS1v bGRpbj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCi0rICAgIG9sZGlu Y2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVm aSB8IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0tcCkKLSsgICAgYWNfcHJldj1wcmVmaXggOzsK LSsgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJl PSogfCAtLXByPSogfCAtLXA9KikKLSsgICAgcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1w cm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXBy b2dyYW0tcHJlZiBcCi0rICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dy YW0tcCkKLSsgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotKyAgLXByb2dyYW0tcHJlZml4 PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCi0rICB8IC0tcHJv Z3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3Jh bS1wPSopCi0rICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFt LXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0t c3VmZiBcCi0rICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykK LSsgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OwotKyAgLXByb2dyYW0tc3VmZml4PSogfCAt LXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1z dWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSop Ci0rICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXRyYW5z Zm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSsgIHwgLS1wcm9ncmFtLXRy YW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKLSsgIHwgLS1wcm9ncmFtLXRy YW5zZm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAotKyAgfCAtLXByb2dyYW0tdHJhbnNm b3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXBy b2dyYW0tdHJhbnNmIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAot KyAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotKyAgICBhY19w cmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1l PSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zv cm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotKyAgfCAtLXByb2dyYW0tdHJh bnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAotKyAgfCAtLXByb2dyYW0tdHJh bnNmb3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zv PSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJv Z3JhbS10cmFuPSogXAotKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXBy b2dyYW0tdD0qKQotKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLSsK LSsgIC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQp Ci0rICAgIGFjX3ByZXY9cGRmZGlyIDs7Ci0rICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1w ZGZkaT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQotKyAgICBwZGZkaXI9JGFjX29w dGFyZyA7OwotKwotKyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykK LSsgICAgYWNfcHJldj1wc2RpciA7OwotKyAgLXBzZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9 KiB8IC0tcHNkPSogfCAtLXBzPSopCi0rICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1x IHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICB8 IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSsgICAgc2ls ZW50PXllcyA7OwotKwotKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2Jp bmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCi0rICAgIGFjX3ByZXY9c2JpbmRpciA7OwotKyAg LXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jp bj0qIFwKLSsgIHwgLS1zYmk9KiB8IC0tc2I9KikKLSsgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7 Ci0rCi0rICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0 ZWRpIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0 IHwgLS1zaGFyZWRzdGEgXAotKyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQg fCAtLXNoYXJlIHwgLS1zaGFyIFwKLSsgIHwgLS1zaGEgfCAtLXNoKQotKyAgICBhY19wcmV2PXNo YXJlZHN0YXRlZGlyIDs7Ci0rICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9 KiB8IC0tc2hhcmVkc3RhdGVkaT0qIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVk c3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCi0rICB8IC0tc2hhcmVk c3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwK LSsgIHwgLS1zaGE9KiB8IC0tc2g9KikKLSsgICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7 OwotKwotKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKLSsgICAgYWNfcHJldj1zaXRlIDs7Ci0r ICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQotKyAgICBzaXRlPSRhY19vcHRhcmcgOzsK LSsKLSsgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0t c3IpCi0rICAgIGFjX3ByZXY9c3JjZGlyIDs7Ci0rICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwg LS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQotKyAgICBzcmNkaXI9JGFj X29wdGFyZyA7OwotKwotKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZk aSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAotKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAt LXN5c2MgfCAtLXN5cyB8IC0tc3kpCi0rICAgIGFjX3ByZXY9c3lzY29uZmRpciA7OwotKyAgLXN5 c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9 KiB8IC0tc3lzY29uZj0qIFwKLSsgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0q IHwgLS1zeXM9KiB8IC0tc3k9KikKLSsgICAgc3lzY29uZmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0r ICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwg LS10KQotKyAgICBhY19wcmV2PXRhcmdldF9hbGlhcyA7OwotKyAgLXRhcmdldD0qIHwgLS10YXJn ZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQot KyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLXYgfCAtdmVyYm9zZSB8IC0t dmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSsgICAgdmVyYm9zZT15ZXMg OzsKLSsKLSsgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12 ZXJzIHwgLVYpCi0rICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Ci0rCi0rICAtd2l0aC0qIHwgLS13 aXRoLSopCi0rICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwo W149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2 YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19j cl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNf dXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAg ICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0Igot KyIqKSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVk X29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNf dW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3Vz ZXJvcHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKLSsg ICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AK LSsgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5h bWVzLgotKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIg Pi9kZXYvbnVsbCAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQg cGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBhY191c2Vyb3B0PWAk YXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0rICAgIGNhc2UgJGFj X3VzZXJfb3B0cyBpbgotKyAgICAgICoiCi0rIndpdGhfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0r ICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191 bnJlY29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWciCi0rCSBhY191bnJlY29n bml6ZWRfc2VwPScsICc7OwotKyAgICBlc2FjCi0rICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1u byA7OwotKwotKyAgLS14KQotKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLXguCi0rICAgIHdp dGhfeD15ZXMgOzsKLSsKLSsgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVzIHwgLS14LWluY2x1 ZGUgfCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKLSsgIHwgLS14LWluY2wgfCAtLXgtaW5jIHwg LS14LWluIHwgLS14LWkpCi0rICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OwotKyAgLXgtaW5jbHVk ZXM9KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0teC1pbmNsdWQ9KiB8IC0t eC1pbmNsdT0qIFwKLSsgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14 LWk9KikKLSsgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAteC1saWJyYXJpZXMg fCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotKyAgfCAtLXgt bGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwp Ci0rICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKLSsgIC14LWxpYnJhcmllcz0qIHwgLS14LWxp YnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSsgIHwgLS14LWxp YnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSog fCAtLXgtbD0qKQotKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtKikgeyAk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgot K1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsgICAgOzsKLSsKLSsgICo9KikKLSsgICAgYWNfZW52dmFyPWBl eHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAotKyAgICAjIFJlamVjdCBuYW1lcyB0 aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNf ZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIi ID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBldmFsICRhY19lbnZ2YXI9 XCRhY19vcHRhcmcKLSsgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKLSsKLSsgICopCi0rICAgICMg RklYTUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KLSsgICAgJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdl dCIgPiYyCi0rICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIg Pi9kZXYvbnVsbCAmJgotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQg aG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKLSsgICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRp b259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQot KyAgICA7OwotKwotKyAgZXNhYwotIGRvbmUKLSAKLS1pZiBbICR0Y2xfZm91bmQgLWVxIDAgXQot LXRoZW4KLS0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCi0tICAgICAgICBlY2hvICdJcyB0aGUg VGNsIGluc3RhbGxlZD8nCi0tICAgICAgICBleGl0Ci0raWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0 aGVuCi0rICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24i ID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0raWYgdGVzdCAtbiAi JGFjX3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgotKyAgY2FzZSAkZW5hYmxlX29wdGlvbl9jaGVj a2luZyBpbgotKyAgICBubykgOzsKLSsgICAgZmF0YWwpIHsgJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMgotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIg PiYyIDs7Ci0rICBlc2FjCi0rZmkKLSsKLSsjIENoZWNrIGFsbCBkaXJlY3RvcnkgYXJndW1lbnRz IGZvciBjb25zaXN0ZW5jeS4KLStmb3IgYWNfdmFyIGluCWV4ZWNfcHJlZml4IHByZWZpeCBiaW5k aXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFyb290ZGlyIFwKLSsJCWRhdGFkaXIgc3lzY29uZmRp ciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIgXAotKwkJb2xkaW5jbHVk ZWRpciBkb2NkaXIgaW5mb2RpciBodG1sZGlyIGR2aWRpciBwZGZkaXIgcHNkaXIgXAotKwkJbGli ZGlyIGxvY2FsZWRpciBtYW5kaXIKLStkbwotKyAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAj IFJlbW92ZSB0cmFpbGluZyBzbGFzaGVzLgotKyAgY2FzZSAkYWNfdmFsIGluCi0rICAgICovICkK LSsgICAgICBhY192YWw9YGV4cHIgIlgkYWNfdmFsIiA6ICdYXCguKlteL11cKScgXHwgIlgkYWNf dmFsIiA6ICdYXCguKlwpJ2AKLSsgICAgICBldmFsICRhY192YXI9XCRhY192YWw7OwotKyAgZXNh YwotKyAgIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWVzLgotKyAgY2Fz ZSAkYWNfdmFsIGluCi0rICAgIFtcXC8kXSogfCA/OltcXC9dKiApICBjb250aW51ZTs7Ci0rICAg IE5PTkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkgY29udGludWU7OyBlc2FjOzsK LSsgIGVzYWMKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29s dXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotK2RvbmUKLSsKLSsjIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3 aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCi0rIyB1c2VkIHRv IGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCi0rIyBGSVhNRTogVG8gcmVtb3ZlIHNv bWUgZGF5LgotK2J1aWxkPSRidWlsZF9hbGlhcwotK2hvc3Q9JGhvc3RfYWxpYXMKLSt0YXJnZXQ9 JHRhcmdldF9hbGlhcwotKwotKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLStpZiB0ZXN0 ICJ4JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KLSsgIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0g eDsgdGhlbgotKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKLSsgICAgJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3Qg dXNlIC0taG9zdC4KLSsgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNy b3NzIGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKLSsgIGVsaWYgdGVzdCAieCRidWls ZF9hbGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPXll cwotKyAgZmkKLStmaQotKwotK2FjX3Rvb2xfcHJlZml4PQotK3Rlc3QgLW4gIiRob3N0X2FsaWFz IiAmJiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KLSsKLSt0ZXN0ICIkc2lsZW50IiA9IHll cyAmJiBleGVjIDY+L2Rldi9udWxsCi0rCi0rCi0rYWNfcHdkPWBwd2RgICYmIHRlc3QgLW4gIiRh Y19wd2QiICYmCi0rYWNfbHNfZGk9YGxzIC1kaSAuYCAmJgotK2FjX3B3ZF9sc19kaT1gY2QgIiRh Y19wd2QiICYmIGxzIC1kaSAuYCB8fAotKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd29y a2luZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiID4mMgotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotK3Rlc3QgIlgkYWNfbHNfZGkiID0gIlgkYWNfcHdkX2xzX2RpIiB8fAot KyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcHdkIGRvZXMgbm90IHJlcG9ydCBuYW1lIG9m IHdvcmtpbmcgZGlyZWN0b3J5IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsK LSsKLSsjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZp ZWQuCi0raWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KLSsgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9 eWVzCi0rICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4g dGhlIHBhcmVudCBkaXJlY3RvcnkuCi0rICBhY19jb25mZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFz X215c2VsZiIgfHwKLSskYXNfZXhwciBYIiRhc19teXNlbGYiIDogJ1hcKC4qW14vXVwpLy8qW14v XVteL10qLyokJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0r CSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hc KC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFzX215c2VsZiIgfAotKyAg ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0r CSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICBzLy4qLy4vOyBxJ2AKLSsgIHNyY2Rpcj0kYWNfY29uZmRpcgotKyAgaWYgdGVzdCAhIC1yICIk c3JjZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KLSsgICAgc3JjZGlyPS4uCi0rICBmaQotK2Vs c2UKLSsgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KLStmaQotK2lmIHRlc3QgISAtciAiJHNyY2Rp ci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCi0rICB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIg PSB5ZXMgJiYgc3JjZGlyPSIkYWNfY29uZmRpciBvciAuLiIKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2Rp ciIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSthY19tc2c9InNvdXJj ZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiCi0rYWNf YWJzX2NvbmZkaXI9YCgKLSsJY2QgIiRzcmNkaXIiICYmIHRlc3QgLXIgIi4vJGFjX3VuaXF1ZV9m aWxlIiB8fCB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfbXNnIiA+JjIKLSsgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KLSsJcHdkKWAKLSsjIFdoZW4gYnVpbGRpbmcgaW4gcGxhY2Us IHNldCBzcmNkaXI9LgotK2lmIHRlc3QgIiRhY19hYnNfY29uZmRpciIgPSAiJGFjX3B3ZCI7IHRo ZW4KLSsgIHNyY2Rpcj0uCi0rZmkKLSsjIFJlbW92ZSB1bm5lY2Vzc2FyeSB0cmFpbGluZyBzbGFz aGVzIGZyb20gc3JjZGlyLgotKyMgRG91YmxlIHNsYXNoZXMgaW4gZmlsZSBuYW1lcyBpbiBvYmpl Y3QgZmlsZSBkZWJ1Z2dpbmcgaW5mbwotKyMgbWVzcyB1cCBNLXggZ2RiIGluIEVtYWNzLgotK2Nh c2UgJHNyY2RpciBpbgotKyovKSBzcmNkaXI9YGV4cHIgIlgkc3JjZGlyIiA6ICdYXCguKlteL11c KScgXHwgIlgkc3JjZGlyIiA6ICdYXCguKlwpJ2A7OwotK2VzYWMKLStmb3IgYWNfdmFyIGluICRh Y19wcmVjaW91c192YXJzOyBkbwotKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3NldD1cJHske2Fj X3Zhcn0rc2V0fQotKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9Ci0r ICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFyfStzZXR9Ci0rICBldmFs IGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWU9XCQke2FjX3Zhcn0KLStkb25lCi0rCi0rIwotKyMg UmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KLSsjCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIg PSAibG9uZyI7IHRoZW4KLSsgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlv bnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgotKyAgIyBUaGlzIG1lc3NhZ2UgaXMg dG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgotKyAgY2F0IDw8X0FD RU9GCi0rXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgU09DSSAzLjAuMCB0byBhZGFwdCB0byBtYW55 IGtpbmRzIG9mIHN5c3RlbXMuCi0rCi0rVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVd Li4uCi0rCi0rVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFH Uy4uLiksIHNwZWNpZnkgdGhlbSBhcwotK1ZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3Jp cHRpb25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCi0rCi0rRGVmYXVsdHMgZm9y IHRoZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCi0rCi0rQ29uZmlndXJhdGlv bjoKLSsgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0 Ci0rICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8g dGhpcyBwYWNrYWdlCi0rICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9y dCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKLSsgIC1WLCAtLXZlcnNpb24gICAg ICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAotKyAgLXEsIC0tcXVp ZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCi0rICAg ICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJs ZWRdCi0rICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9 Y29uZmlnLmNhY2hlJwotKyAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBv dXRwdXQgZmlsZXMKLSsgICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMg aW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQotKwotK0luc3RhbGxhdGlvbiBkaXJlY3Rv cmllczoKLSsgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWlu ZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRh Y19kZWZhdWx0X3ByZWZpeF0KLSsgIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJj aGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBbUFJFRklYXQotKwotK0J5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGlu c3RhbGwgYWxsIHRoZSBmaWxlcyBpbgotK1xgJGFjX2RlZmF1bHRfcHJlZml4L2JpbicsIFxgJGFj X2RlZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5Ci0rYW4gaW5zdGFsbGF0 aW9uIHByZWZpeCBvdGhlciB0aGFuIFxgJGFjX2RlZmF1bHRfcHJlZml4JyB1c2luZyBcYC0tcHJl Zml4JywKLStmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgotKwotK0ZvciBiZXR0ZXIg Y29udHJvbCwgdXNlIHRoZSBvcHRpb25zIGJlbG93LgotKwotK0ZpbmUgdHVuaW5nIG9mIHRoZSBp bnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6Ci0rICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2Vy IGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KLSsgIC0tc2JpbmRpcj1ESVIgICAgICAgICAgIHN5 c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQotKyAgLS1saWJleGVjZGlyPURJ UiAgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9saWJleGVjXQotKyAgLS1zeXNj b25mZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9l dGNdCi0rICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1p bmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQotKyAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICAg bW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFyXQotKyAgLS1saWJkaXI9 RElSICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KLSsgIC0t aW5jbHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KLSsg IC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNy L2luY2x1ZGVdCi0rICAtLWRhdGFyb290ZGlyPURJUiAgICAgICByZWFkLW9ubHkgYXJjaC4taW5k ZXBlbmRlbnQgZGF0YSByb290IFtQUkVGSVgvc2hhcmVdCi0rICAtLWRhdGFkaXI9RElSICAgICAg ICAgICByZWFkLW9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElS XQotKyAgLS1pbmZvZGlyPURJUiAgICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtEQVRBUk9P VERJUi9pbmZvXQotKyAgLS1sb2NhbGVkaXI9RElSICAgICAgICAgbG9jYWxlLWRlcGVuZGVudCBk YXRhIFtEQVRBUk9PVERJUi9sb2NhbGVdCi0rICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4g ZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvbWFuXQotKyAgLS1kb2NkaXI9RElSICAgICAgICAg ICAgZG9jdW1lbnRhdGlvbiByb290IFtEQVRBUk9PVERJUi9kb2Mvc29jaV0KLSsgIC0taHRtbGRp cj1ESVIgICAgICAgICAgIGh0bWwgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotKyAgLS1kdmlkaXI9 RElSICAgICAgICAgICAgZHZpIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KLSsgIC0tcGRmZGlyPURJ UiAgICAgICAgICAgIHBkZiBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rICAtLXBzZGlyPURJUiAg ICAgICAgICAgICBwcyBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rX0FDRU9GCi0rCi0rICBjYXQg PDxcX0FDRU9GCi0rCi0rUHJvZ3JhbSBuYW1lczoKLSsgIC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklY ICAgICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsg IC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0 YWxsZWQgcHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0g ICBydW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsKLStTeXN0ZW0g dHlwZXM6Ci0rICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJV SUxEIFtndWVzc2VkXQotKyAgLS1ob3N0PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0byBidWls ZCBwcm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCi0rX0FDRU9GCi0rZmkKLSsKLStpZiB0 ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgotKyAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0r ICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgU09DSSAzLjAu MDoiOzsKLSsgICBlc2FjCi0rICBjYXQgPDxcX0FDRU9GCi0rCi0rT3B0aW9uYWwgRmVhdHVyZXM6 Ci0rICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5h YmxlLy0td2l0aCBvcHRpb25zCi0rICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5j bHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCi0rICAtLWVuYWJsZS1G RUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0rICAtLWVuYWJsZS1zaGFy ZWRbPVBLR1NdICBidWlsZCBzaGFyZWQgbGlicmFyaWVzIFtkZWZhdWx0PW5vXQotKyAgLS1lbmFi bGUtc3RhdGljWz1QS0dTXSAgYnVpbGQgc3RhdGljIGxpYnJhcmllcyBbZGVmYXVsdD15ZXNdCi0r ICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxk Ci0rICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRl cGVuZGVuY3kgZXh0cmFjdG9ycwotKyAgLS1lbmFibGUtZmFzdC1pbnN0YWxsWz1QS0dTXQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIFtk ZWZhdWx0PXllc10KLSsgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tpbmcgKG1p Z2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKLSsgIC0tZW5hYmxlLWV4Y2VwdGlvbnMgICAgIGVu YWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbQotKyAgLS1kaXNhYmxlLWluZm8tZG9j ICAgICAgZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbgotKyAgLS1kaXNhYmxlLWh0 bWwtZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbgotKyAgLS1lbmFi bGUtYnVycmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIGhl YWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZQotKyAgLS1lbmFibGUtbXlzcWwt YnVycmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIE15U1FM IGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3R1cmUKLSsgIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZy b20gYSBkaXJlY3RvcnkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQotKyAg LS1lbmFibGUtYmFja2VuZC1teXNxbCAgYnVpbGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IFtk ZWZhdWx0PW5vXQotKyAgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgYnVpbGQtaW4gT1JBQ0xFIGJh Y2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KLSsgIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNx bAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5k IHN1cHBvcnQgW2RlZmF1bHQ9bm9dCi0rCi0rT3B0aW9uYWwgUGFja2FnZXM6Ci0rICAtLXdpdGgt UEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KLSsgIC0td2l0aG91dC1QQUNL QUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykK LSsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBp bnN0YWxsZWQgKG9wdGlvbmFsKQotKyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBF eGVjIHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCi0rICAtLXdp dGgtZ251LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgW2Rl ZmF1bHQ9bm9dCi0rICAtLXdpdGgtcGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElD L25vbi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKLSsgICAgICAgICAgICAgICAgICAgICAgICAg IGJvdGhdCi0rICAtLXdpdGgtdGFnc1s9VEFHU10gICAgICBpbmNsdWRlIGFkZGl0aW9uYWwgY29u ZmlndXJhdGlvbnMgW2F1dG9tYXRpY10KLSsgIC0td2l0aC1kb2NkaXI9RElSICAgICAgIHNldCBk b2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVIKLSsgIC0td2l0aC1ib29zdD1ESVIgICAgICAg IHVzZSBib29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkgKG9wdGlvbmFsKQot KyAgLS13aXRoLW15c3FsPVtBUkddICAgICAgdXNlIE15U1FMIGNsaWVudCBsaWJyYXJ5IFtkZWZh dWx0PXllc10sIG9wdGlvbmFsbHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkg cGF0aCB0byBteXNxbF9jb25maWcKLSsgIC0td2l0aC1vcmFjbGU9W0RJUl0gICAgIHVzZSBPcmFj bGUgT0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8gT3JhY2xlIGhvbWUKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgIGRpcmVjdG9yeQotKyAgLS13aXRoLW9yYWNsZS1pbmNsdWRlPVtESVJdCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICB1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9t IGdpdmVuIHBhdGgKLSsgIC0td2l0aC1vcmFjbGUtbGliPVtESVJdIHVzZSBPcmFjbGUgT0NJIEFQ SSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoCi0rICAtLXdpdGgtcG9zdGdyZXNxbD1bQVJHXSB1 c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IFtkZWZhdWx0PXllc10sIG9wdGlvbmFsbHkKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgcGF0aCB0byBwZ19jb25maWcKLSsKLStTb21lIGlu Zmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKLSsgIENYWCAgICAgICAgIEMrKyBjb21w aWxlciBjb21tYW5kCi0rICBDWFhGTEFHUyAgICBDKysgY29tcGlsZXIgZmxhZ3MKLSsgIExERkxB R1MgICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJp ZXMgaW4gYQotKyAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgot KyAgTElCUyAgICAgICAgbGlicmFyaWVzIHRvIHBhc3MgdG8gdGhlIGxpbmtlciwgZS5nLiAtbDxs aWJyYXJ5PgotKyAgQ1BQRkxBR1MgICAgQy9DKysvT2JqZWN0aXZlIEMgcHJlcHJvY2Vzc29yIGZs YWdzLCBlLmcuIC1JPGluY2x1ZGUgZGlyPiBpZgotKyAgICAgICAgICAgICAgeW91IGhhdmUgaGVh ZGVycyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+Ci0rICBDWFhDUFAg ICAgICBDKysgcHJlcHJvY2Vzc29yCi0rICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQK LSsgIENGTEFHUyAgICAgIEMgY29tcGlsZXIgZmxhZ3MKLSsgIENQUCAgICAgICAgIEMgcHJlcHJv Y2Vzc29yCi0rICBGNzcgICAgICAgICBGb3J0cmFuIDc3IGNvbXBpbGVyIGNvbW1hbmQKLSsgIEZG TEFHUyAgICAgIEZvcnRyYW4gNzcgY29tcGlsZXIgZmxhZ3MKLSsKLStVc2UgdGhlc2UgdmFyaWFi bGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVs cAotK2l0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5h bWVzL2xvY2F0aW9ucy4KLSsKLStSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNl Zm9yZ2UubmV0Pi4KLStfQUNFT0YKLSthY19zdGF0dXM9JD8KLStmaQotKwotK2lmIHRlc3QgIiRh Y19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KLSsgICMgSWYgdGhlcmUgYXJlIHN1YmRp cnMsIHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCi0rICBmb3IgYWNfZGlyIGluIDogJGFj X3N1YmRpcnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQotKyAgICB0 ZXN0IC1kICIkYWNfZGlyIiB8fAotKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFjX3B3ZD1gcHdk YCAmJiBzcmNkaXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAotKyAgICAgIGNvbnRpbnVl Ci0rICAgIGFjX2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9z dWZmaXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyop Ci0rICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9d fHwnYAotKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4Lgot KyAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAn c3wvW15cXC9dKnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGlu Ci0rICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0r ICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVz YWMgOzsKLStlc2FjCi0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxk ZGlyPSRhY19wd2QkYWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6 Ci0rYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGly IGluCi0rICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0u Ci0rICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3Rv cF9zcmNkaXI9JGFjX3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBu YW1lLgotKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bf c3JjZGlyPSRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikg IyBSZWxhdGl2ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3Jj ZGlyJGFjX2Rpcl9zdWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZp eCRzcmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNh YwotK2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsg ICAgY2QgIiRhY19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQotKyAgICAjIENo ZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZS4KLSsgICAgaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9j b25maWd1cmUuZ251IjsgdGhlbgotKyAgICAgIGVjaG8gJiYKLSsgICAgICAkU0hFTEwgIiRhY19z cmNkaXIvY29uZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQotKyAgICBlbGlmIHRlc3QgLWYg IiRhY19zcmNkaXIvY29uZmlndXJlIjsgdGhlbgotKyAgICAgIGVjaG8gJiYKLSsgICAgICAkU0hF TEwgIiRhY19zcmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCi0rICAgIGVsc2UKLSsg ICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0 aW9uIGlzIGluICRhY19kaXIiID4mMgotKyAgICBmaSB8fCBhY19zdGF0dXM9JD8KLSsgICAgY2Qg IiRhY19wd2QiIHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQotKyAgZG9uZQotIGZpCi0gCi0t ZWNobyAnJwotLWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBwYXJzZS1wYXJhbWV0ZXJz LnRjbAotLQotLWVjaG8gJycKLS1lY2hvICdDb25maWd1cmUgZG9uZS4nCi0tZWNobyAnWWVzLCBp dCB3YXMgc2hvcnQuJwotLWVjaG8gJycKLS1lY2hvICdZb3UgY2FuIG5vdyBydW4gbWFrZS4nCi0r dGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCi0raWYgJGFjX2luaXRf dmVyc2lvbjsgdGhlbgotKyAgY2F0IDw8XF9BQ0VPRgotK1NPQ0kgY29uZmlndXJlIDMuMC4wCi0r Z2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzCi0rCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAx OTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rCi0rQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkg TWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLStfQUNFT0YK LSsgIGV4aXQKLStmaQotK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgotK1RoaXMgZmlsZSBjb250 YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi0rcnVubmluZyBj b25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4K LSsKLStJdCB3YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2Vu ZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2Fz Ci0rCi0rICAkICQwICRACi0rCi0rX0FDRU9GCi0rZXhlYyA1Pj5jb25maWcubG9nCi0rewotK2Nh dCA8PF9BU1VOQU1FCi0rIyMgLS0tLS0tLS0tICMjCi0rIyMgUGxhdGZvcm0uICMjCi0rIyMgLS0t LS0tLS0tICMjCi0rCi0raG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYv bnVsbCB8IHNlZCAxcWAKLSt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVj aG8gdW5rbm93bmAKLSt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8g dW5rbm93bmAKLSt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5r bm93bmAKLSt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93 bmAKLSsKLSsvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9u dWxsIHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAt WCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsKLSsvYmluL2FyY2ggICAgICAg ICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVu a25vd25gCi0rL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4v ZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotKy91c3IvY29udmV4L2dldHN5c2luZm8g PSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAK LSsvdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9ob3N0aW5mbykgMj4vZGV2L251 bGwgICAgICB8fCBlY2hvIHVua25vd25gCi0rL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jp bi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAotKy91c3Iv YmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAg IHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZl cnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0rCi0rX0FTVU5BTUUK LSsKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgJGFzX2VjaG8gIlBBVEg6ICRhc19kaXIiCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLSt9ID4mNQotKwotK2NhdCA+JjUgPDxfQUNFT0YKLSsKLSsKLSsjIyAtLS0t LS0tLS0tLSAjIwotKyMjIENvcmUgdGVzdHMuICMjCi0rIyMgLS0tLS0tLS0tLS0gIyMKLSsKLStf QUNFT0YKLSsKLSsKLSsjIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgotKyMgU3Ry aXAgb3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxl IHVwLgotKyMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNv cmQgaXQgZm9yIGZ1dHVyZSBydW5zLgotKyMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5n IHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KLSsjIE1ha2UgdHdvIHBhc3NlcyB0byBhbGxvdyBmb3Ig cHJvcGVyIGR1cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KLSthY19jb25maWd1cmVfYXJn cz0KLSthY19jb25maWd1cmVfYXJnczA9Ci0rYWNfY29uZmlndXJlX2FyZ3MxPQotK2FjX211c3Rf a2VlcF9uZXh0PWZhbHNlCi0rZm9yIGFjX3Bhc3MgaW4gMSAyCi0rZG8KLSsgIGZvciBhY19hcmcK LSsgIGRvCi0rICAgIGNhc2UgJGFjX2FyZyBpbgotKyAgICAtbm8tY3JlYXRlIHwgLS1uby1jKiB8 IC1uIHwgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tciopIGNvbnRpbnVlIDs7Ci0rICAgIC1xIHwgLXF1 aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICAgIHwgLXNp bGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQotKyAgICAgIGNvbnRp bnVlIDs7Ci0rICAgICpcJyopCi0rICAgICAgYWNfYXJnPWAkYXNfZWNobyAiJGFjX2FyZyIgfCBz ZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsgICAgZXNhYwotKyAgICBjYXNlICRhY19wYXNz IGluCi0rICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFj X2FyZyciIDs7Ci0rICAgIDIpCi0rICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmln dXJlX2FyZ3MxICckYWNfYXJnJyIKLSsgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tlZXBfbmV4dCA9 IHRydWU7IHRoZW4KLSsJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sg dG8gbm9ybWFsLgotKyAgICAgIGVsc2UKLSsJY2FzZSAkYWNfYXJnIGluCi0rCSAgKj0qIHwgLS1j b25maWctY2FjaGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCi0rCSAgfCAtZW5h YmxlLSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAotKwkgIHwg LXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKLSsJ ICB8IC13aXRoLSogfCAtLXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQtKiB8IC0teCkK LSsJICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgotKwkgICAgICAiJGFjX2NvbmZp Z3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OwotKwkgICAgZXNhYwotKwkg ICAgOzsKLSsJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKLSsJZXNhYwotKyAgICAg IGZpCi0rICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2Fy ZyciCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotK2RvbmUKLSskYXNfdW5zZXQgYWNf Y29uZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNl dCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0K LSskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2Fy Z3MxK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25m aWd1cmVfYXJnczE7IH0KLSsKLSsjIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVw IHRlbXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCi0rIyBjb25maWcubG9nLiAgV2UgcmVtb3Zl IGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKLSsjIHdvdWxkIGNh dXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KLSsjIFdBUk5JTkc6IFVzZSAnXCcnIHRvIHJlcHJl c2VudCBhbiBhcG9zdHJvcGhlIHdpdGhpbiB0aGUgdHJhcC4KLSsjIFdBUk5JTkc6IERvIG5vdCBz dGFydCB0aGUgdHJhcCBjb2RlIHdpdGggYSBuZXdsaW5lLCBkdWUgdG8gYSBGcmVlQlNEIDQuMCBi dWcuCi0rdHJhcCAnZXhpdF9zdGF0dXM9JD8KLSsgICMgU2F2ZSBpbnRvIGNvbmZpZy5sb2cgc29t ZSBpbmZvcm1hdGlvbiB0aGF0IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5nLgotKyAgewotKyAgICBl Y2hvCi0rCi0rICAgIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMg Q2FjaGUgdmFyaWFibGVzLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsg ICAgZWNobwotKyAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1p c2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotKygKLSsgIGZvciBhY192YXIgaW4gYChzZXQp IDI+JjEgfCBzZWQgLW4gJ1wnJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3An XCcnYDsgZG8KLSsgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAgIGNhc2UgJGFjX3ZhbCBp biAjKAotKyAgICAqJHthc19ubH0qKQotKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAg ICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlh YmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30g OzsKLSsgICAgICBlc2FjCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgXyB8IElG UyB8IGFzX25sKSA7OyAjKAotKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRh Y192YXI9IDs7ICMoCi0rICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKLSsgICAgICBlc2Fj IDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgIChzZXQpIDI+JjEgfAotKyAgICBjYXNlICRhc19u bGAoYWNfc3BhY2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGluICMoCi0rICAgICoke2FzX25sfWFj X3NwYWNlPVwgKikKLSsgICAgICBzZWQgLW4gXAotKwkicy8nXCcnLydcJydcXFxcJ1wnJydcJycv ZzsKLSsJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwo LipcXCkvXFwxPSdcJydcXDInXCcnL3AiCi0rICAgICAgOzsgIygKLSsgICAgKikKLSsgICAgICBz ZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgotKyAgICAg IDs7Ci0rICAgIGVzYWMgfAotKyAgICBzb3J0Ci0rKQotKyAgICBlY2hvCi0rCi0rICAgIGNhdCA8 PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIE91dHB1dCB2YXJpYWJsZXMu ICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgZWNobwotKyAgICBm b3IgYWNfdmFyIGluICRhY19zdWJzdF92YXJzCi0rICAgIGRvCi0rICAgICAgZXZhbCBhY192YWw9 XCQkYWNfdmFyCi0rICAgICAgY2FzZSAkYWNfdmFsIGluCi0rICAgICAgKlwnXCcnKikgYWNfdmFs PWAkYXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9n ImA7OwotKyAgICAgIGVzYWMKLSsgICAgICAkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdc JyciCi0rICAgIGRvbmUgfCBzb3J0Ci0rICAgIGVjaG8KLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFj X3N1YnN0X2ZpbGVzIjsgdGhlbgotKyAgICAgIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0t LS0tLS0tLS0tICMjCi0rIyMgRmlsZSBzdWJzdGl0dXRpb25zLiAjIwotKyMjIC0tLS0tLS0tLS0t LS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgICBlY2hvCi0rICAgICAgZm9yIGFjX3ZhciBpbiAk YWNfc3Vic3RfZmlsZXMKLSsgICAgICBkbwotKwlldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsJY2Fz ZSAkYWNfdmFsIGluCi0rCSpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2Vk ICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKLSsJZXNhYwotKwkkYXNfZWNobyAi JGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyciCi0rICAgICAgZG9uZSB8IHNvcnQKLSsgICAgICBlY2hv Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgotKyAgICAgIGNh dCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLSAjIwotKyMjIGNvbmZkZWZzLmguICMjCi0rIyMg LS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgICBlY2hvCi0rICAgICAgY2F0IGNvbmZkZWZz LmgKLSsgICAgICBlY2hvCi0rICAgIGZpCi0rICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYK LSsgICAgICAkYXNfZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgotKyAgfSA+JjUKLSsgIHJtIC1m IGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiAmJgotKyAgICBybSAtZiAtciBjb25mdGVzdCog Y29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCi0rICAgIGV4aXQgJGV4aXRfc3Rh dHVzCi0rJyAwCi0rZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCi0rICB0cmFwICdhY19z aWduYWw9JyRhY19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19zaWduYWwKLStk b25lCi0rYWNfc2lnbmFsPTAKLSsKLSsjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGlu ZSBsZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgotK3JtIC1mIC1yIGNvbmZ0ZXN0 KiBjb25mZGVmcy5oCi0rCi0rIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCi0r Ci0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFD S0FHRV9OQU1FIgotK19BQ0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKLStfQUNFT0YKLSsKLSsK LStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQ QUNLQUdFX1ZFUlNJT04iCi0rX0FDRU9GCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VP RgotKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKLStfQUNFT0YKLSsK LSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiJFBBQ0tBR0VfQlVHUkVQT1JUIgotK19BQ0VPRgotKwotKwotKyMgTGV0IHRoZSBzaXRlIGZp bGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgotKyMgUHJl ZmVyIGFuIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVk IG9uZXMuCi0rYWNfc2l0ZV9maWxlMT1OT05FCi0rYWNfc2l0ZV9maWxlMj1OT05FCi0raWYgdGVz dCAtbiAiJENPTkZJR19TSVRFIjsgdGhlbgotKyAgYWNfc2l0ZV9maWxlMT0kQ09ORklHX1NJVEUK LStlbGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgotKyAgYWNfc2l0ZV9maWxlMT0k cHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlCi0rICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2Nv bmZpZy5zaXRlCi0rZWxzZQotKyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hh cmUvY29uZmlnLnNpdGUKLSsgIGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9j b25maWcuc2l0ZQotK2ZpCi0rZm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVfZmlsZTEiICIk YWNfc2l0ZV9maWxlMiIKLStkbwotKyAgdGVzdCAieCRhY19zaXRlX2ZpbGUiID0geE5PTkUgJiYg Y29udGludWUKLSsgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCi0rICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmls ZSIgPiY2O30KLSsgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1Ci0rICAgIC4g IiRhY19zaXRlX2ZpbGUiCi0rICBmaQotK2RvbmUKLSsKLStpZiB0ZXN0IC1yICIkY2FjaGVfZmls ZSI7IHRoZW4KLSsgICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2Ug L2Rldi9udWxsIChzcGVjaWFsCi0rICAjIGZpbGVzIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQgZG9p bmcgdGhhdC4KLSsgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgotKyAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSsgICAgY2Fz ZSAkY2FjaGVfZmlsZSBpbgotKyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAiJGNhY2hlX2Zp bGUiOzsKLSsgICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIuLyRjYWNoZV9maWxlIjs7 Ci0rICAgIGVzYWMKLSsgIGZpCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVh dGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSsgID4kY2FjaGVfZmlsZQotK2ZpCi0rCi0r IyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhh dmUga2VwdCB0aGUgc2FtZQotKyMgdmFsdWUuCi0rYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCi0r Zm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KLSsgIGV2YWwgYWNfb2xkX3NldD1c JGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0Ci0rICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHth Y192YXJ9X3NldAotKyAgZXZhbCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1 ZQotKyAgZXZhbCBhY19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQotKyAgY2FzZSAk YWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgotKyAgICBzZXQsKQotKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92 YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBc YCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIg PiYyO30KLSsgICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OwotKyAgICAsc2V0KQotKyAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNl dCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAk YWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQotKyAgICAgIGFj X2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0rICAgICwpOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0 ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCi0rCSMgZGlmZmVyZW5jZXMg aW4gd2hpdGVzcGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgotKwlhY19vbGRfdmFsX3c9YGVj aG8geCAkYWNfb2xkX3ZhbGAKLSsJYWNfbmV3X3ZhbF93PWBlY2hvIHggJGFjX25ld192YWxgCi0r CWlmIHRlc3QgIiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhlbgotKwkgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBz aW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxg JGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9Ci0rCSAg YWNfY2FjaGVfY29ycnVwdGVkPToKLSsJZWxzZQotKwkgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBz aW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogd2FybmluZzog aWdub3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZp b3VzIHJ1bjoiID4mMjt9Ci0rCSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xkX3ZhbAotKwlmaQotKwl7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFs JyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFs JyIgPiYyO30KLSsJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTog XGAkYWNfbmV3X3ZhbCciID4mNQotKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTog XGAkYWNfbmV3X3ZhbCciID4mMjt9Ci0rICAgICAgZmk7OwotKyAgZXNhYwotKyAgIyBQYXNzIHBy ZWNpb3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgotKyAgaWYgdGVzdCAiJGFjX25ld19z ZXQiID0gc2V0OyB0aGVuCi0rICAgIGNhc2UgJGFjX25ld192YWwgaW4KLSsgICAgKlwnKikgYWNf YXJnPSRhY192YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwn Jy9nImAgOzsKLSsgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsKLSsgICAgZXNh YwotKyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KLSsgICAgICAqIiAnJGFjX2Fy ZycgIiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4K LSsgICAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJn JyIgOzsKLSsgICAgZXNhYwotKyAgZmkKLStkb25lCi0raWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZp cm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVp bGQiID4mMjt9Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcnVuIFxg bWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQv b3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSthY19leHQ9YwotK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKwotK2FjX2NvbmZp Z19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgc29jaS9jb25maWcuaCIKLSsKLSsKLSthY19h dXhfZGlyPQotK2ZvciBhY19kaXIgaW4gY29uZmlnICIkc3JjZGlyIi9jb25maWc7IGRvCi0rICBp ZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwtc2giOyB0aGVuCi0rICAgIGFjX2F1eF9kaXI9JGFj X2RpcgotKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNoIC1jIgotKyAg ICBicmVhawotKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0aGVuCi0rICAg IGFjX2F1eF9kaXI9JGFjX2RpcgotKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0 YWxsLnNoIC1jIgotKyAgICBicmVhawotKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7 IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19h dXhfZGlyL3NodG9vbCBpbnN0YWxsIC1jIgotKyAgICBicmVhawotKyAgZmkKLStkb25lCi0raWYg dGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIGNvbmZp ZyBcIiRzcmNkaXJcIi9jb25maWciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2Nv bmZpZyIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotKyMgVGhl c2UgdGhyZWUgdmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAotKyMg YW5kIGFyZSBpbnRlbmRlZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVs ZWFzZS4KLSsjIFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mg c291cmNlIHRyZWUgaXMgaW4gYSBkaXJlY3RvcnkKLSsjIHdob3NlIGZ1bGwgbmFtZSBjb250YWlu cyB1bnVzdWFsIGNoYXJhY3RlcnMuCi0rYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9k aXIvY29uZmlnLmd1ZXNzIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotK2FjX2NvbmZp Z19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNl IHRoaXMgdmFyLgotK2FjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIg ICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KLSsKLSsKLSthbV9fYXBpX3ZlcnNpb249JzEu MTAnCi0rCi0rIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHBy b2dyYW0gKGZhc3RlciksCi0rIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4g IEJ1dCBhdm9pZCB0aGUgYnJva2VuIG9yCi0rIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0rIyBT eXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKLSsjIFN1bk9TIC91c3IvZXRjL2lu c3RhbGwKLSsjIElSSVggL3NiaW4vaW5zdGFsbAotKyMgQUlYIC9iaW4vaW5zdGFsbAotKyMgQW1p Z2FPUyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNj cwotKyMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhv dXQgYSAtZyBmbGFnCi0rIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFu ZGxlcyBub25leGlzdGVudCBhcmdzCi0rIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRy aWVzIHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgotKyMgT1MvMidzIHN5c3Rl bSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwotKyMg Li9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20g Li9pbnN0YWxsLnNoLgotKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5z dGFsbCBtdWx0aXBsZSBmaWxlcy4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXog IiRJTlNUQUxMIjsgdGhlbgotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFU SCBlbGVtZW50cy4KLStjYXNlICRhc19kaXIvIGluCi0rICAuLyB8IC4vLyB8IC9jQy8qIHwgXAot KyAgL2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZz d3MvYmluLyogfCBcCi0rICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNU QUxMXFwvKiB8IFwKLSsgIC91c3IvdWNiLyogKSA7OwotKyAgKikKLSsgICAgIyBPU0YxIGFuZCBT Q08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KLSsgICAgIyBEb24n dCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290 Ci0rICAgICMgYnkgZGVmYXVsdC4KLSsgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5z dCBpbnN0YWxsOyBkbwotKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgZHNwbXNn ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJ ICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVu dGlvbi4KLSsJICAgIDoKLSsJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0rCSAg ICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBi eSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAgICBybSAtcmYg Y29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKLSsJICAgIGVjaG8gb25lID4g Y29uZnRlc3Qub25lCi0rCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bwotKwkgICAgbWtkaXIg Y29uZnRlc3QuZGlyCi0rCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMg Y29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgotKwkgICAg ICB0ZXN0IC1zIGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgotKwkgICAg ICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKLSsJICAgICAgdGVzdCAtcyBj b25mdGVzdC5kaXIvY29uZnRlc3QudHdvCi0rCSAgICB0aGVuCi0rCSAgICAgIGFjX2N2X3BhdGhf aW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKLSsJICAgICAgYnJlYWsg MwotKwkgICAgZmkKLSsJICBmaQotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgZG9uZQotKyAgICA7 OwotK2VzYWMKLSsKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK3JtIC1yZiBjb25mdGVz dC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgotKwotK2ZpCi0rICBpZiB0ZXN0ICIke2Fj X2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgotKyAgICBJTlNUQUxMPSRhY19jdl9w YXRoX2luc3RhbGwKLSsgIGVsc2UKLSsgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNs b3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQotKyAgICAjIHZhbHVlIGZvciBJTlNUQUxM IHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0rICAgICMgYnJl YWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCi0r ICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KLSsgICAg SU5TVEFMTD0kYWNfaW5zdGFsbF9zaAotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKLSskYXNfZWNobyAiJElOU1RBTEwiID4mNjsg fQotKwotKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMg aW4gJHt2YXItdmFsfS4KLSsjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0 aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgotK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYm IElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKLSsKLSt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJ UFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwotKwotK3Rlc3QgLXogIiRJTlNUQUxM X0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMg c2FuZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVu dCBpcyBzYW5lLi4uICIgPiY2OyB9Ci0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0 aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdl IGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncwotKyMgYXJndW1lbnRzLiAgTXVzdCB0 cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotKyMgc3ltbGluazsg c29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlu a3MKLSsjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3Mg Y29udGFpbmluZwotKyMgZGlyZWN0b3J5KS4KLStpZiAoCi0rICAgc2V0IFggYGxzIC1MdCAkc3Jj ZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0ICIk KiIgPSAiWCI7IHRoZW4KLSsgICAgICAjIC1MIGRpZG4ndCB3b3JrLgotKyAgICAgIHNldCBYIGBs cyAtdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAotKyAgIGZpCi0rICAgcm0gLWYg Y29uZnRlc3QuZmlsZQotKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBj b25mdGVzdC5maWxlIiBcCi0rICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUg JHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rCi0rICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQs IHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgotKyAgICAgICMgaWYs IGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSsg ICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFj dHVhbGx5Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNv bnNpZGVyZWQgInNhbmUiLgotKyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJv a2VuCi0rYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBi cm9rZW4KLSthbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQot KyAgICkKLSt0aGVuCi0rICAgIyBPay4KLSsgICA6Ci0rZWxzZQotKyAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBk aXN0cmlidXRlZCBmaWxlcyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3Ry aWJ1dGVkIGZpbGVzIQotK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSt0ZXN0ICIkcHJvZ3JhbV9w cmVmaXgiICE9IE5PTkUgJiYKLSsgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXiYkcHJvZ3Jh bV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotKyMgVXNlIGEgZG91YmxlICQgc28g bWFrZSBpZ25vcmVzIGl0LgotK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9ORSAmJgotKyAg cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lIgotKyMgRG91YmxlIGFueSBcIG9yICQuCi0rIyBCeSBkZWZhdWx0IHdhcyBg cyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KLSthY19zY3JpcHQ9J3MvW1xcJF0vJiYvZztz LztzLHgseCwkLy8nCi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8gIiRwcm9ncmFt X3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCi0rCi0rIyBleHBhbmQgJGFjX2F1 eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAotK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYm IHB3ZGAKLSsKLSt0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtT SEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwK LStpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49 IiRNSVNTSU5HIC0tcnVuICIKLStlbHNlCi0rICBhbV9taXNzaW5nX3J1bj0KLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xk IG9yIG1pc3NpbmciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycg c2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KLStmaQotKwotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0IC16ICIkTUtESVJfUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3Zf cGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X3Byb2cgaW4gbWtkaXIgZ21rZGlyOyBkbwotKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJv ZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCI7IH0gfHwgY29udGludWUKLSsJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19l eHQiIC0tdmVyc2lvbiAyPiYxYCBpbiAjKAotKwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykg JyogfCBcCi0rCSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAotKwkgICAgICdta2RpciAo ZmlsZXV0aWxzKSAnNC4xKikKLSsJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNf cHJvZyRhY19leGVjX2V4dAotKwkgICAgICAgYnJlYWsgMzs7Ci0rCSAgIGVzYWMKLSsJIGRvbmUK LSsgICAgICAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLSsKLSsgIGlm IHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgICBNS0RJUl9Q PSIkYWNfY3ZfcGF0aF9ta2RpciAtcCIKLSsgIGVsc2UKLSsgICAgIyBBcyBhIGxhc3QgcmVzb3J0 LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQotKyAgICAjIHZhbHVl IGZvciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxs Ci0rICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGly ZWN0b3J5IGlzCi0rICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUg bmFtZS4KLSsgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgotKyAg ICBNS0RJUl9QPSIkYWNfaW5zdGFsbF9zaCAtZCIKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUtESVJfUCIgPiY1Ci0rJGFzX2VjaG8gIiRNS0RJUl9Q IiA+JjY7IH0KLSsKLStta2Rpcl9wPSIkTUtESVJfUCIKLStjYXNlICRta2Rpcl9wIGluCi0rICBb XFwvJF0qIHwgPzpbXFwvXSopIDs7Ci0rICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikv JG1rZGlyX3AiIDs7Ci0rZXNhYwotKwotK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3 awotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFj X3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193 b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCi0r ICBhY19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBi cmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLStBV0s9JGFjX2N2X3Byb2dfQVdLCi0raWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBV0siID4mNQotKyRhc19lY2hvICIk QVdLIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAi JEFXSyIgJiYgYnJlYWsKLStkb25lCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7 IH0KLStzZXQgeCAke01BS0UtbWFrZX0KLSthY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdz LysvcC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKLStpZiB7IGFzX3Zhcj1hY19jdl9wcm9nX21h a2VfJHthY19tYWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7 IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5j b25mdGVzdC5tYWtlIDw8XF9BQ0VPRgotK1NIRUxMID0gL2Jpbi9zaAotK2FsbDoKLSsJQGVjaG8g J0BAQCUlJT0kKE1BS0UpPUBAQCUlJScKLStfQUNFT0YKLSsjIEdOVSBtYWtlIHNvbWV0aW1lcyBw cmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KLStj YXNlIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KLSsgICpA QEAlJSU9Pyo9QEBAJSUlKikKLSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9z ZXQ9eWVzOzsKLSsgICopCi0rICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0 PW5vOzsKLStlc2FjCi0rcm0gLWYgY29uZnRlc3QubWFrZQotK2ZpCi0raWYgZXZhbCB0ZXN0IFwk YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsg fQotKyAgU0VUX01BS0U9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0iTUFLRT0k e01BS0UtbWFrZX0iCi0rZmkKLSsKLStybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGlyIC50 c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5nX2Rv dD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4vZGV2 L251bGwKLSsKLStpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVu Ci0rICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQg bWFrZSdzIG91dHB1dAotKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgot KyAgYW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFs cmVhZHkgY29uZmlndXJlZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRo ZW4KLSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJl Y3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZp cnN0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJl YWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mMjt9 Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBmaQotK2ZpCi0rCi0rIyB0ZXN0IHdo ZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCi0raWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KLSsg IGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotKyAg ICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCi0rICBlbHNlCi0rICAgIENZR1BBVEhfVz1lY2hvCi0r ICBmaQotK2ZpCi0rCi0rCi0rIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgot KyBQQUNLQUdFPSdzb2NpJwotKyBWRVJTSU9OPSczLjAuMCcKLSsKLSsKLStjYXQgPj5jb25mZGVm cy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKLStfQUNFT0YKLSsKLSsK LStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIK LStfQUNFT0YKLSsKLSsjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCi0rCi0rQUNMT0NBTD0k e0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQot KwotKwotK0FVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQot KwotKwotK0FVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHth bV9fYXBpX3ZlcnNpb259In0KLSsKLSsKLStBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9t aXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KLSsKLSsKLStNQUtFSU5GTz0ke01BS0VJTkZPLSIke2Ft X21pc3NpbmdfcnVufW1ha2VpbmZvIn0KLSsKLStpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iXCQo U0hFTEwpICRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQotKwotKyMgSW5zdGFsbGVkIGJpbmFyaWVz IGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgotKyMgcnVu IGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUg cmlnaHQKLSsjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywg dGhlcmVmb3JlIEF1dG9tYWtlCi0rIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50 IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KLStpZiB0ZXN0ICIkY3Jvc3NfY29t cGlsaW5nIiAhPSBubzsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhl bgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlw Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHth Y190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfU1RSSVA9 IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsg IGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK1NUUklQ PSRhY19jdl9wcm9nX1NUUklQCi0raWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKLSskYXNfZWNobyAiJFNU UklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVz dCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCi0rICBhY19jdF9TVFJJUD0kU1RSSVAKLSsg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0r ICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9T VFJJUAotK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19j dF9TVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3Qg IngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQot K2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgU1RSSVA9JGFjX2N0X1NUUklQCi0r ICBmaQotK2Vsc2UKLSsgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKLStmaQotKwotK2ZpCi0r SU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKLSsKLSsjIFdlIG5l ZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBv bgotKyMgc29tZSBwbGF0Zm9ybXMuCi0rIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2Fy ZCBjb21wYXRpYmlsaXR5LgotKwotK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFy In0KLSsKLSthbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0n JHtBTVRBUn0geGYgLScKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIg LS13aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfY3BwdW5p dF9wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9wcmVm aXg7IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCi0rZWxzZQotKyAgY3BwdW5pdF9j b25maWdfcHJlZml4PSIiCi0rZmkKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVu aXQtZXhlYy1wcmVmaXggd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X2V4ZWNf cHJlZml4K3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2NwcHVuaXRfZXhlY19w cmVmaXg7IGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIKLStlbHNlCi0rICBj cHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIgotK2ZpCi0rCi0rCi0rICBpZiB0ZXN0IHgkY3Bw dW5pdF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmln X2FyZ3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmln X2V4ZWNfcHJlZml4IgotKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhz ZXQgOyB0aGVuCi0rICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsgIGlmIHRlc3QgeCRj cHB1bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2Fy Z3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgi Ci0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsg ICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAiY3BwdW5pdC1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSBjcHB1bml0LWNvbmZpZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9D UFBVTklUX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBjYXNlICRDUFBVTklUX0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpb XFwvXSopCi0rICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQVU5JVF9DT05GSUciICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICop Ci0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0r ICAgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJ RyIgJiYgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCi0rICA7OwotK2VzYWMKLStmaQot K0NQUFVOSVRfQ09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCi0raWYgdGVzdCAtbiAi JENQUFVOSVRfQ09ORklHIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJENQUFVOSVRfQ09ORklHIiA+JjUKLSskYXNfZWNobyAiJENQUFVOSVRfQ09ORklHIiA+ JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgY3BwdW5pdF92ZXJzaW9u X21pbj0xLjEwCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9t aW4uLi4gIiA+JjY7IH0KLSsgIG5vX2NwcHVuaXQ9IiIKLSsgIGlmIHRlc3QgIiRDUFBVTklUX0NP TkZJRyIgPSAibm8iIDsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgbm9fY3BwdW5pdD15ZXMK LSsgIGVsc2UKLSsgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAtLWNmbGFnc2AK LSsgICAgQ1BQVU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAotKyAgICBDUFBVTklU X1ZFUlNJT049YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25gCi0rCi0rICAgIGNwcHVuaXRfbWFq b3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdz L1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCi0rICAgIGNwcHVuaXRfbWlu b3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdz L1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wyLydgCi0rICAgIGNwcHVuaXRfbWlj cm9fdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAotKyAgICAgICAgICAgc2VkICdz L1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wzLydgCi0rCi0rICAgIGNwcHVuaXRf bWFqb3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAotKyAgICAgICAgICAgc2Vk ICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCi0rICAgIGlmIHRlc3Qg Ingke2NwcHVuaXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCi0rICAgICAgIGNwcHVuaXRfbWFq b3JfbWluPTAKLSsgICAgZmkKLSsKLSsgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVu aXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTld KlwpLlwoWzAtOV0qXCkvXDIvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59 IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taW5vcl9taW49MAotKyAgICBmaQotKwot KyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsg ICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMy8nYAot KyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAg ICBjcHB1bml0X21pY3JvX21pbj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfdmVyc2lvbl9w cm9wZXI9YGV4cHIgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5p dF9tYWpvcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3Bw dW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAk Y3BwdW5pdF9taW5vcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBc PSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lv biBcPSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVy c2lvbiBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKLSsKLSsgICAgaWYgdGVzdCAiJGNwcHVuaXRf dmVyc2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVy c2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uIiA+JjUKLSskYXNfZWNobyAiJGNwcHVuaXRfbWFq b3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24i ID4mNjsgfQotKyAgICBlbHNlCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAgICAgbm9fY3BwdW5pdD15 ZXMKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRo ZW4KLSsgICAgIDoKLSsgIGVsc2UKLSsgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCi0rICAgICBDUFBV TklUX0xJQlM9IiIKLSsgICAgIDoKLSsgIGZpCi0rCi0rCi0rCi0rCi0rCi0rIGlmIHRlc3QgIngk Q1BQVU5JVF9MSUJTIiAhPSB4OyB0aGVuCi0rICBIQVZFX0NQUFVOSVRfVFJVRT0KLSsgIEhBVkVf Q1BQVU5JVF9GQUxTRT0nIycKLStlbHNlCi0rICBIQVZFX0NQUFVOSVRfVFJVRT0nIycKLSsgIEhB VkVfQ1BQVU5JVF9GQUxTRT0KLStmaQotKwotKwotKyMgUlBNIHJlbGVhc2UgbnVtYmVyCi0rUlBN X1JFTEVBU0U9IjExIgotKwotKwotKyMgU2hhcmVkIGxpYnJhcnkgdmVyc2lvbmluZwotK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKLSsjICAgICAgICAgICAgICAgICAgICAgICAgfCB8 IHwKLSsjICAgICAgICAgICAgICAgICArLS0tLS0tKyB8ICstLS0rCi0rIyAgICAgICAgICAgICAg ICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdl Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAgICAgICAgICAg IHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRl ZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBp bnRlcmZhY2VzIGhhdmUgYmVlbgotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAg IHJlbW92ZWQgb3IgY2hhbmdlZAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3Jl bWVudCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCi0rIyAgICAgICAg ICAgICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1v dmVkCi0rIyAgICAgICAgICAgICAgICAgICAgb3IgY2hhbmdlZAotKwotKwotKyMgVXBsb2FkIGNv bW1hbmQgZm9yIFNvdXJjZUZvcmdlCi0rVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9h ZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgotKwotKwotKyMgQ2hlY2sgZm9yIGhvc3QgYW5k IGRpc2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCi0rIyBNYWtlIHN1 cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgotKyRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1 YiIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biAkU0hFTEwgJGFjX2F1eF9kaXIv Y29uZmlnLnN1YiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLSt0ZXN0 ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKLSsgIGFjX2J1aWxkX2FsaWFzPWAkU0hFTEwgIiRh Y19hdXhfZGlyL2NvbmZpZy5ndWVzcyJgCi0rdGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYm Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1 aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2FjX2N2X2J1aWxkPWAkU0hFTEwgIiRh Y19hdXhfZGlyL2NvbmZpZy5zdWIiICRhY19idWlsZF9hbGlhc2AgfHwKLSsgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAk YWNfYnVpbGRfYWxpYXMgZmFpbGVkIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNI RUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGFjX2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9i dWlsZCIgPiY2OyB9Ci0rY2FzZSAkYWNfY3ZfYnVpbGQgaW4KLSsqLSotKikgOzsKLSsqKSB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmlj YWwgYnVpbGQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9m IGNhbm9uaWNhbCBidWlsZCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07Owot K2VzYWMKLStidWlsZD0kYWNfY3ZfYnVpbGQKLSthY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCi0r c2V0IHggJGFjX2N2X2J1aWxkCi0rc2hpZnQKLStidWlsZF9jcHU9JDEKLStidWlsZF92ZW5kb3I9 JDIKLStzaGlmdDsgc2hpZnQKLSsjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElG UyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKLSsjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6Ci0rYnVp bGRfb3M9JCoKLStJRlM9JGFjX3NhdmVfSUZTCi0rY2FzZSAkYnVpbGRfb3MgaW4gKlwgKikgYnVp bGRfb3M9YGVjaG8gIiRidWlsZF9vcyIgfCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKLSsKLSsKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgot KyAgYWNfY3ZfaG9zdD0kYWNfY3ZfYnVpbGQKLStlbHNlCi0rICBhY19jdl9ob3N0PWAkU0hFTEwg IiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFzYCB8fAotKyAgICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIg JGhvc3RfYWxpYXMgZmFpbGVkIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFNIRUxM ICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJGhvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9ob3N0 IiA+JjY7IH0KLStjYXNlICRhY19jdl9ob3N0IGluCi0rKi0qLSopIDs7Ci0rKikgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGhv c3QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9u aWNhbCBob3N0IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rZXNhYwot K2hvc3Q9JGFjX2N2X2hvc3QKLSthY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCi0rc2V0IHggJGFj X2N2X2hvc3QKLStzaGlmdAotK2hvc3RfY3B1PSQxCi0raG9zdF92ZW5kb3I9JDIKLStzaGlmdDsg c2hpZnQKLSsjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRv IGNyZWF0ZSAkKiwKLSsjIGV4Y2VwdCB3aXRoIG9sZCBzaGVsbHM6Ci0raG9zdF9vcz0kKgotK0lG Uz0kYWNfc2F2ZV9JRlMKLStjYXNlICRob3N0X29zIGluICpcICopIGhvc3Rfb3M9YGVjaG8gIiRo b3N0X29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYwotKwotKwotK2Nhc2UgJGhvc3QgaW4KLSsg ICotKi1tc2RvcyogfCAqLSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8ICot Ki13aW5kb3dzKikKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2 ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFi bGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVu YWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0rICAgIG5vKSBlbmFi bGVfc2hhcmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAg ICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxp c3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBB VEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0i JGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJs ZV9zaGFyZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZz IgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVfc2hhcmVkPW5vCi0rZmkK LSsKLSsKLSsKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4u Ci0raWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2 YWw9JGVuYWJsZV9zdGF0aWM7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJs ZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zdGF0aWM9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVf c3RhdGljPW5vIDs7Ci0rICAgICopCi0rICAgICBlbmFibGVfc3RhdGljPW5vCi0rICAgICAgIyBM b29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBz ZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9T RVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRf c2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3N0 YXRpYz15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9zdGF0aWM9eWVzCi0rZmkKLSsK LSsKLSsgICAgOzsKLSsgICopCi0rICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFyZWQg d2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhlbgot KyAgZW5hYmxldmFsPSRlbmFibGVfc2hhcmVkOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBj YXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OwotKyAgICBu bykgZW5hYmxlX3NoYXJlZD1ubyA7OwotKyAgICAqKQotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8K LSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNv bW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7 SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwot KwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJ ICBlbmFibGVfc2hhcmVkPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9z YXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3NoYXJlZD15 ZXMKLStmaQotKwotKwotKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBn aXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVu YWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAk ZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVu YWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAg ICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBs aXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQ QVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9 IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFi bGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lm cyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3N0YXRpYz1ubwotK2Zp Ci0rCi0rCi0rCi0rICAgIDs7Ci0rZXNhYwotKwotKyMgQ2hlY2tzIGZvciBwcm9ncmFtcwotK3Nh dmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLStpZiB0ZXN0IC16ICIkQ1hY IjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJENDQyI7IHRoZW4KLSsgICAgQ1hYPSRDQ0MKLSsgIGVs c2UKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3By b2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENf ciB4bEMKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgot K3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ1hYPSIk Q1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwot KyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9n X0NYWD0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFr IDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQot K0NYWD0kYWNfY3ZfcHJvZ19DWFgKLStpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENYWCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFgi ID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRD WFgiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgotKyAg YWNfY3RfQ1hYPSRDWFgKLSsgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHgg Y2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19h Y19jdF9DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KLSsgIGFjX2N2X3Byb2df YWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K LStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0r ICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0r ZmkKLStmaQotK2FjX2N0X0NYWD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKLStpZiB0ZXN0IC1uICIk YWNfY3RfQ1hYIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX2N0X0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAmJiBicmVhawot K2RvbmUKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KLSsgICAgQ1hYPSJn KysiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQg aW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBj cm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIENY WD0kYWNfY3RfQ1hYCi0rICBmaQotK2ZpCi0rCi0rICBmaQotK2ZpCi0rIyBQcm92aWRlIHNvbWUg aW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgotKyRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29t cGlsZQotK2FjX2NvbXBpbGVyPSQyCi0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLS12ZXJzaW9u ID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtLXZlcnNp b24gPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChh Y190cnk9IiRhY19jb21waWxlciAtdiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY29tcGlsZXIgLXYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtViA+JjUiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVz PSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSth Y19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEub3V0LmRTWU0gYS5leGUgYi5v dXQiCi0rIyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlz cmVnYXJkIGEub3V0LgotKyMgSXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxl cnMsIGFuZCBmaW5kaW5nIG91dCBhbiBpbnR1aXRpb24KLSsjIG9mIGV4ZWV4dC4KLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91 dHB1dCBmaWxlIG5hbWUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDKysgY29tcGls ZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICIgPiY2OyB9Ci0rYWNfbGlua19kZWZhdWx0 PWAkYXNfZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3RbXiBdKi8vJ2AKLSsK LSsjIFRoZSBwb3NzaWJsZSBvdXRwdXQgZmlsZXM6Ci0rYWNfZmlsZXM9ImEub3V0IGNvbmZ0ZXN0 LmV4ZSBjb25mdGVzdCBhLmV4ZSBhX291dC5leGUgYi5vdXQgY29uZnRlc3QuKiIKLSsKLSthY19y bWZpbGVzPQotK2ZvciBhY19maWxlIGluICRhY19maWxlcwotK2RvCi0rICBjYXNlICRhY19maWxl IGluCi0rICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54 U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2Jq ICkgOzsKLSsgICAgKiApIGFjX3JtZmlsZXM9IiRhY19ybWZpbGVzICRhY19maWxlIjs7Ci0rICBl c2FjCi0rZG9uZQotK3JtIC1mICRhY19ybWZpbGVzCi0rCi0raWYgeyAoYWNfdHJ5PSIkYWNfbGlu a19kZWZhdWx0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVs dCIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAj IEF1dG9jb25mLTIuMTMgY291bGQgc2V0IHRoZSBhY19jdl9leGVleHQgdmFyaWFibGUgdG8gYG5v Jy4KLSsjIFNvIGlnbm9yZSBhIHZhbHVlIG9mIGBubycsIG90aGVyd2lzZSB0aGlzIHdvdWxkIGxl YWQgdG8gYEVYRUVYVCA9IG5vJwotKyMgaW4gYSBNYWtlZmlsZS4gIFdlIHNob3VsZCBub3Qgb3Zl cnJpZGUgYWNfY3ZfZXhlZXh0IGlmIGl0IHdhcyBjYWNoZWQsCi0rIyBzbyB0aGF0IHRoZSB1c2Vy IGNhbiBzaG9ydC1jaXJjdWl0IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJzIHVua25vd24gdG8KLSsj IEF1dG9jb25mLgotK2ZvciBhY19maWxlIGluICRhY19maWxlcyAnJwotK2RvCi0rICB0ZXN0IC1m ICIkYWNfZmlsZSIgfHwgY29udGludWUKLSsgIGNhc2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNf ZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5i YmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKQotKwk7OwotKyAgICBb YWJdLm91dCApCi0rCSMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4 dD0nJyBpcyBtb3N0Ci0rCSMgY2VydGFpbmx5IHJpZ2h0LgotKwlicmVhazs7Ci0rICAgICouKiAp Ci0rICAgICAgICBpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNldCAmJiB0ZXN0ICIk YWNfY3ZfZXhlZXh0IiAhPSBubzsKLSsJdGhlbiA6OyBlbHNlCi0rCSAgIGFjX2N2X2V4ZWV4dD1g ZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotKwlmaQotKwkjIFdlIHNldCBhY19j dl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBpcyBub3QKLSsJIyBz YWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBhbiBg LW8nCi0rCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBwb2lu dCBhbHJlYWR5LgotKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNydWZ0eTogaXQgaGFz IHRoZSBhZHZhbnRhZ2Ugb2YKLSsJIyBhY3R1YWxseSB3b3JraW5nLgotKwlicmVhazs7Ci0rICAg ICogKQotKwlicmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK3Rlc3QgIiRhY19jdl9leGVleHQiID0g bm8gJiYgYWNfY3ZfZXhlZXh0PQotKwotK2Vsc2UKLSsgIGFjX2ZpbGU9JycKLStmaQotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+JjUKLSskYXNfZWNo byAiJGFjX2ZpbGUiID4mNjsgfQotK2lmIHRlc3QgLXogIiRhY19maWxlIjsgdGhlbgotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxg JGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBD KysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcwotK1NlZSBcYGNvbmZpZy5sb2cn IGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIGNv bXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKLStTZWUgXGBjb25maWcubG9nJyBmb3Ig bW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDc3KTsgZXhpdCA3NzsgfTsgfTsgfQot K2ZpCi0rCi0rYWNfZXhlZXh0PSRhY19jdl9leGVleHQKLSsKLSsjIENoZWNrIHRoYXQgdGhlIGNv bXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgot KyMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdv cmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIg d29ya3MuLi4gIiA+JjY7IH0KLSsjIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21waWxlciBoYWNrcyBz aG91bGQgYmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4wCi0rIyBJZiBub3QgY3Jvc3MgY29tcGls aW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KLStpZiB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KLSsgIGlmIHsgYWNfdHJ5PScuLyRhY19maWxl JwotKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0r ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgICAgY3Jvc3NfY29t cGlsaW5nPW5vCi0rICBlbHNlCi0rICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5 YmU7IHRoZW4KLSsJY3Jvc3NfY29tcGlsaW5nPXllcwotKyAgICBlbHNlCi0rCXsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMrKyBjb21waWxlZCBwcm9ncmFtcy4KLStJ ZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLStTZWUgXGBjb25m aWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNhbm5vdCBydW4gQysrIGNvbXBpbGVkIHByb2dyYW1zLgotK0lmIHlvdSBtZWFudCB0byBjcm9z cyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl dGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotKyAgICBmaQot KyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1 Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rcm0gLWYgLXIgYS5vdXQgYS5vdXQuZFNZTSBh LmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKLSthY19jbGVhbl9maWxlcz0kYWNfY2xl YW5fZmlsZXNfc2F2ZQotKyMgQ2hlY2sgdGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0 YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCi0rIyB0aGUgY29tcGlsZXIgaXMgYnJv a2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQot KyRhc19lY2hvICIkY3Jvc3NfY29tcGlsaW5nIiA+JjY7IH0KLSsKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAiID4mNjsgfQot K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVu Ci0rICAjIElmIGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVzZW50 JyAod2VsbCwgb2JzZXJ2YWJsZSkKLSsjIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3Rh bmNlIHdpdGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdpbGwKLSsjIHdvcmsgcHJvcGVybHkgKGku ZS4sIHJlZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAotKyMgYHJt Jy4KLStmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8K LSsgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotKyAgY2FzZSAkYWNfZmlsZSBpbgot KyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8 ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7 Ci0rICAgICouKiApIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4q XCknYAotKwkgIGJyZWFrOzsKLSsgICAgKiApIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rZWxz ZQotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0r eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZp eCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStTZWUgXGBjb25maWcu bG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNh bm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxp bmsKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4 ZWV4dAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQi ID4mNQotKyRhc19lY2hvICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KLSsKLStybSAtZiBjb25mdGVz dC4kYWNfZXh0Ci0rRVhFRVhUPSRhY19jdl9leGVleHQKLSthY19leGVleHQ9JEVYRUVYVAotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBm aWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmls ZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QubyBjb25mdGVz dC5vYmoKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3Rh dHVzKTsgfTsgdGhlbgotKyAgZm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QubyBjb25mdGVzdC5vYmog Y29uZnRlc3QuKjsgZG8KLSsgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZTsKLSsgIGNh c2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwg Ki5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNICkg OzsKLSsgICAgKikgYWNfY3Zfb2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAnLipcLlwoLipcKSdg Ci0rICAgICAgIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBc YCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29t cHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotK1NlZSBcYGNvbmZp Zy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLStT ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LiRhY19jdl9vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X29iamV4dCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9vYmpleHQiID4mNjsgfQot K09CSkVYVD0kYWNfY3Zfb2JqZXh0Ci0rYWNfb2JqZXh0PSRPQkpFWFQKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysg Y29tcGlsZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5n IHRoZSBHTlUgQysrIGNvbXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9jeHhf Y29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsjaWZuZGVmIF9fR05VQ19fCi0rICAgICAgIGNob2tl IG1lCi0rI2VuZGlmCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBh Y19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy Ci0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2ZpCi0rCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r YWNfY3ZfY3h4X2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY1 Ci0rJGFzX2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0ZXN0ICRh Y19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdYWD15ZXMKLStlbHNlCi0rICBHWFg9Ci0r ZmkKLSthY190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQotK2FjX3NhdmVfQ1hYRkxBR1M9 JENYWEZMQUdTCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg JENYWCBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDWFgg YWNjZXB0cyAtZy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jeHhfZytzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19zYXZlX2N4eF93ZXJyb3JfZmxhZz0kYWNfY3h4X3dlcnJvcl9mbGFnCi0rICAgYWNfY3h4X3dl cnJvcl9mbGFnPXllcwotKyAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KLSsgICBDWFhGTEFHUz0iLWci Ci0rICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQK LSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UKLSsgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJQ1hYRkxBR1M9IiIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewot KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsg IDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N4eF93ZXJyb3Jf ZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKLSsJIENYWEZMQUdTPSItZyIKLSsJIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQot K3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsg dGhlbgotKyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r ICAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY3h4X2ciID4mNQot KyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2OyB9Ci0raWYgdGVzdCAiJGFjX3Rlc3Rf Q1hYRkxBR1MiID0gc2V0OyB0aGVuCi0rICBDWFhGTEFHUz0kYWNfc2F2ZV9DWFhGTEFHUwotK2Vs aWYgdGVzdCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsgdGhlbgotKyAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KLSsgICAgQ1hYRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxB R1M9Ii1nIgotKyAgZmkKLStlbHNlCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAg ICBDWFhGTEFHUz0iLU8yIgotKyAgZWxzZQotKyAgICBDWFhGTEFHUz0KLSsgIGZpCi0rZmkKLSth Y19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRD RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBj b25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQot K0RFUERJUj0iJHthbV9fbGVhZGluZ19kb3R9ZGVwcyIKLSsKLSthY19jb25maWdfY29tbWFuZHM9 IiRhY19jb25maWdfY29tbWFuZHMgZGVwZmlsZXMiCi0rCi0rCi0rYW1fbWFrZT0ke01BS0UtbWFr ZX0KLStjYXQgPiBjb25maW5jIDw8ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIGRvbmUKLSsu UEhPTlk6IGFtX19kb2l0Ci0rRU5ECi0rIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGly ZWN0aXZlLCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRh bV9tYWtlLi4uICIgPiY2OyB9Ci0rYW1fX2luY2x1ZGU9IiMiCi0rYW1fX3F1b3RlPQotK19hbV9y ZXN1bHQ9bm9uZQotKyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1ZGUuCi0rZWNobyAi aW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgotKyMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVj dG9yeScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKLSsjIG1lc3NhZ2VzIHdoaWNoIGNhbiBvY2N1 ciBpZiBgdycgZW5kcyB1cCBpbiBNQUtFRkxBR1MuCi0rIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0 IGxvb2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAotKyMgYmUgaW52b2tlZCB1 bmRlciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCi0rIyBjYXNl IGl0IHByaW50cyBpdHMgbmV3IG5hbWUgaW5zdGVhZCBvZiBgbWFrZScuCi0raWYgdGVzdCAiYCRh bV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5 J2AiID0gImRvbmUiOyB0aGVuCi0rICAgYW1fX2luY2x1ZGU9aW5jbHVkZQotKyAgIGFtX19xdW90 ZT0KLSsgICBfYW1fcmVzdWx0PUdOVQotK2ZpCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGlu Y2x1ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5p bmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYg Y29uZm1mIDI+IC9kZXYvbnVsbGAiID0gImRvbmUiOyB0aGVuCi0rICAgICAgYW1fX2luY2x1ZGU9 LmluY2x1ZGUKLSsgICAgICBhbV9fcXVvdGU9IlwiIgotKyAgICAgIF9hbV9yZXN1bHQ9QlNECi0r ICAgZmkKLStmaQotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRf YW1fcmVzdWx0IiA+JjUKLSskYXNfZWNobyAiJF9hbV9yZXN1bHQiID4mNjsgfQotK3JtIC1mIGNv bmZpbmMgY29uZm1mCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJh Y2tpbmcgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tp bmc7Ci0rZmkKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm87IHRoZW4KLSsgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCi0rICBBTURFUEJB Q0tTTEFTSD0nXCcKLStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5n IiAhPSB4bm87IHRoZW4KLSsgIEFNREVQX1RSVUU9Ci0rICBBTURFUF9GQUxTRT0nIycKLStlbHNl Ci0rICBBTURFUF9UUlVFPScjJwotKyAgQU1ERVBfRkFMU0U9Ci0rZmkKLSsKLSsKLSsKLStkZXBj Yz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXog IiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KLSsgICMgV2UgbWFr ZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQg dXAKLSsgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQg bmV2ZXIgcmVtb3ZlLiAgRm9yCi0rICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9u IEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAotKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxl IG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAotKyAgIyBp biBEJy4KLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGly IGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSsgICMgdXNpbmcg YSByZWxhdGl2ZSBkaXJlY3RvcnkuCi0rICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgot KyAgY2QgY29uZnRlc3QuZGlyCi0rICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5k ZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKLSsgICMgaXQgaGVscHMgdG8gZGV0ZWN0 IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCi0rICAjIGJvdGgg VHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMg YQotKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUg ZGVwZW5kZW5jaWVzIGluCi0rICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3 aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKLSsgICMgZGlyZWN0b3J5LgotKyAgbWtkaXIgc3Vi Ci0rCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYg dGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xp c3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0r ICBmaQotKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0rICAgICMgU2V0 dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVy cwotKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4 MCAod2l0aCBcKSwgYW5kCi0rICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1v ZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KLSsgICAgIwotKyAgICAjIFdlIG5lZWQgdG8g cmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQot KyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBj b21tYW5kIGxpbmVzLgotKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVgg QyBjb21waWxlci4KLSsgICAgOiA+IHN1Yi9jb25mdGVzdC5jCi0rICAgIGZvciBpIGluIDEgMiAz IDQgNSA2OyBkbwotKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3Vi L2NvbmZ0ZXN0LmMKLSsgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVz IG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAotKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9i aW4vc2guCi0rICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCi0rICAgIGRvbmUKLSsgICAgZWNo byAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9 IiA+IGNvbmZtZgotKwotKyAgICBjYXNlICRkZXBtb2RlIGluCi0rICAgIG5vc2lkZWVmZmVjdCkK LSsgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZl Y3QsIHNvIHRoZXknbGwKLSsgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVx dWVzdGVkCi0rICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4 eWVzOyB0aGVuCi0rCWNvbnRpbnVlCi0rICAgICAgZWxzZQotKwlicmVhawotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsgICAgbm9uZSkgYnJlYWsgOzsKLSsgICAgZXNhYwotKyAgICAjIFdlIGNoZWNr IHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKLSsg ICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9l cyBub3QgcHJvcGVybHkKLSsgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0 ZWN0IHRoaXMuCi0rICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3Vi L2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0rICAgICAgIGRl cGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCi0rICAg ICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1v fSBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAm JgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVs bCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30g c3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9 IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24n dCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwot KyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRl cnIgZm9yIGFueSBtZXNzYWdlCi0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25v cmVkIG9yIG5vdCBzdXBwb3J0ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBh bmQgNy4xIGNvbXBsYWluIHRodXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2Fy bmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAg IyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21t YW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChn cmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdu b3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNl Ci0rICAgICAgICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUK LSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGRvbmUKLSsKLSsgIGNkIC4u Ci0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rZWxzZQotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlPW5vbmUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1 Ci0rJGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsg fQotK0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90 eXBlCi0rCi0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4 bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIg PSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPQotKyAgYW1fX2Zhc3RkZXBDWFhf RkFMU0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKLSsgIGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFPQotK2ZpCi0rCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3Iu Li4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHth Y19jdl9wcm9nX0NYWENQUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5l ZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2Nw cCIKLSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVw cm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0 IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2gg Y3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMg ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUg cnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1 c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNl LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYg X19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3Nl cnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNf dHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5f ZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0r ICAgICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwot K3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBv biBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAg IyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0r aWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVw cm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQg aW5wdXQuCi0rY29udGludWUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r ICAjIFBhc3NlcyBib3RoIHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsK LStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1 c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tp cHBlZC4KLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVw cm9jX29rOyB0aGVuCi0rICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJv Z19DWFhDUFA9JENYWENQUAotKwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0r ZWxzZQotKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4m NjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn IGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBn Y2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxl ciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENf XyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVz dGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2Rl IHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNw cC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMg aW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRp ZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYv bnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhl bgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2Vu OiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMu ICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRl Y3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250 aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJv dGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsn LCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1m IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4K LSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4g XGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQysrIHByZXBy b2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IEMrKyBw cmVwcm9jZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmln LmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9OyB9Ci0rZmkKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNf Y29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwot K2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19j dl9jX2NvbXBpbGVyX2dudQotKwotK0NYWEZMQUdTPSIkc2F2ZV9DWFhGTEFHUyIKLSsjIEZpbmQg YSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwK LSsjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBi cm9rZW4gb3IKLSsjIGluY29tcGF0aWJsZSB2ZXJzaW9uczoKLSsjIFN5c1YgL2V0Yy9pbnN0YWxs LCAvdXNyL3NiaW4vaW5zdGFsbAotKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotKyMgSVJJWCAv c2Jpbi9pbnN0YWxsCi0rIyBBSVggL2Jpbi9pbnN0YWxsCi0rIyBBbWlnYU9TIC9DL2luc3RhbGws IHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0rIyBBSVggNCAvdXNy L2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKLSsj IEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50 IGFyZ3MKLSsjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBu b25leGlzdGVudCBncm91cCAic3RhZmYiCi0rIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNo IGhhcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljCi0rIyAuL2luc3RhbGwsIHdoaWNo IGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi0r IyBSZWplY3QgaW5zdGFsbCBwcm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZp bGVzLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVu Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICMgQWNjb3VudCBm b3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nh c2UgJGFzX2Rpci8gaW4KLSsgIC4vIHwgLi8vIHwgL2NDLyogfCBcCi0rICAvZXRjLyogfCAvdXNy L3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsg ID86XFwvb3MyXFwvaW5zdGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAotKyAg L3Vzci91Y2IvKiApIDs7Ci0rICAqKQotKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUg dGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotKyAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNk IGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSsgICAgIyBieSBkZWZh dWx0LgotKyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0r ICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rCWlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0 ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3By b2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgICAgIyBBSVggaW5zdGFs bC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotKwkgICAgOgot KwkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKLSsJICAgIGdyZXAgcHdwbHVzICIk YXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICAg ICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9u J3QgdXNlLgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgIHJtIC1yZiBjb25mdGVzdC5vbmUgY29u ZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgotKwkgICAgZWNobyBvbmUgPiBjb25mdGVzdC5vbmUKLSsJ ICAgIGVjaG8gdHdvID4gY29uZnRlc3QudHdvCi0rCSAgICBta2RpciBjb25mdGVzdC5kaXIKLSsJ ICAgIGlmICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAtYyBjb25mdGVzdC5vbmUgY29u ZnRlc3QudHdvICJgcHdkYC9jb25mdGVzdC5kaXIiICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRl c3Qub25lICYmIHRlc3QgLXMgY29uZnRlc3QudHdvICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRl c3QuZGlyL2NvbmZ0ZXN0Lm9uZSAmJgotKwkgICAgICB0ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25m dGVzdC50d28KLSsJICAgIHRoZW4KLSsJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgotKwkgICAgICBicmVhayAzCi0rCSAgICBmaQotKwkg IGZpCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBkb25lCi0rICAgIDs7Ci0rZXNhYwotKwotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50 d28gY29uZnRlc3QuZGlyCi0rCi0rZmkKLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxs K3NldH0iID0gc2V0OyB0aGVuCi0rICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAg ZWxzZQotKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQu ICBEb24ndCBjYWNoZSBhCi0rICAgICMgdmFsdWUgZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNl IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdl cyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBv ciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgotKyAgICBJTlNUQUxMPSRhY19pbnN0 YWxsX3NoCi0rICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JElOU1RBTEwiID4mNQotKyRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVz dCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9Lgot KyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJz dGl0dXRpb24uCi0rdGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFN PScke0lOU1RBTEx9JwotKwotK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9T Q1JJUFQ9JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFM TF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUt ZmFzdC1pbnN0YWxsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9mYXN0X2luc3RhbGwr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbDsgcD0k e1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5h YmxlX2Zhc3RfaW5zdGFsbD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8g OzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29r IGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBh cmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBB UkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2 ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3Rf aW5zdGFsbD15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMi Ci0rICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVz Ci0rZmkKLSsKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29t cGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2Fj X2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9j X2NvbXBpbGVyX2dudQotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJl Zml4fWdjYzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ0Mi OyB0aGVuCi0rICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0r Zm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16 ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi OyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgotKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKwotK2ZpCi0rZmkKLStDQz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRlc3QgLW4gIiRD QyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1 Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsK LStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgotKyAgYWNfY3RfQ0M9JEND Ci0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19j dl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImdjYyIKLSsgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsg ICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStm aQotK2ZpCi0rYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLStpZiB0ZXN0IC1uICIkYWNf Y3RfQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfQ0MiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KLSsgICAgQ0M9 IiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBp bgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQ0M9 JGFjX2N0X0NDCi0rICBmaQotK2Vsc2UKLSsgIENDPSIkYWNfY3ZfcHJvZ19DQyIKLStmaQotKwot K2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgICAgICAgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xf cHJlZml4IjsgdGhlbgotKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3Nl dCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0ND K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190 b29sX3ByZWZpeH1jYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rQ0M9JGFjX2N2X3Byb2df Q0MKLStpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkQ0MiID4mNQotKyRhc19lY2hvICIkQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8i ID4mNjsgfQotK2ZpCi0rCi0rCi0rICBmaQotK2ZpCi0raWYgdGVzdCAteiAiJENDIjsgdGhlbgot KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9w cm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotKyAgYWNfcHJvZ19yZWpl Y3RlZD1ubwotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KLSsgICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91 Y2IvY2MiOyB0aGVuCi0rICAgICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCi0rICAgICAgIGNvbnRp bnVlCi0rICAgICBmaQotKyAgICBhY19jdl9wcm9nX0NDPSJjYyIKLSsgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsg ICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStp ZiB0ZXN0ICRhY19wcm9nX3JlamVjdGVkID0geWVzOyB0aGVuCi0rICAjIFdlIGZvdW5kIGEgYm9n b24gaW4gdGhlIHBhdGgsIHNvIG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2UgaXQuCi0rICBzZXQgZHVt bXkgJGFjX2N2X3Byb2dfQ0MKLSsgIHNoaWZ0Ci0rICBpZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSsg ICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCi0r ICAgICMgSG93ZXZlciwgaXQgaGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2ls bCBiZSBjaG9zZW4KLSsgICAgIyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5h bWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5hbWUuCi0rICAgIHNoaWZ0Ci0rICAgIGFjX2N2X3Byb2df Q0M9IiRhc19kaXIvJGFjX3dvcmQkezErJyAnfSRAIgotKyAgZmkKLStmaQotK2ZpCi0rZmkKLStD Qz0kYWNfY3ZfcHJvZ19DQwotK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRDQyI7 IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgIGZvciBhY19w cm9nIGluIGNsLmV4ZQotKyAgZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk YWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2df Q0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStm aQotK0NDPSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+ JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkQ0Mi ICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0rICBhY19j dF9DQz0kQ0MKLSsgIGZvciBhY19wcm9nIGluIGNsLmV4ZQotK2RvCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2df YWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19h Y19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStl bHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIg aW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgot KyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAg YnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQot K2ZpCi0rYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLStpZiB0ZXN0IC1uICIkYWNfY3Rf Q0MiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Rf Q0MiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsg fQotK2ZpCi0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCi0rZG9uZQotKwot KyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCi0rICAgIENDPSIiCi0rICBlbHNlCi0r ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIENDPSRhY19jdF9DQwotKyAg ZmkKLStmaQotKwotK2ZpCi0rCi0rCi0rdGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAot K1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfTsgfQotKwotKyMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBjb21waWxlci4KLSskYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNv bXBpbGVyIHZlcnNpb24iID4mNQotK3NldCBYICRhY19jb21waWxlCi0rYWNfY29tcGlsZXI9JDIK LSt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IgotK2Nhc2UgIigoJGFjX3Ry eSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1Ci0rICBhY19z dGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12 ID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUi KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0i JGFjX2NvbXBpbGVyIC1WID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j b21waWxlciAtViA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFy ZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfY19jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18K LSsgICAgICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2NvbXBpbGVyX2dudT1ubwotK2Zp Ci0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rYWNfY3ZfY19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQotKwotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJf Z251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjY7IH0KLStpZiB0 ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdDQz15ZXMKLStlbHNlCi0rICBH Q0M9Ci0rZmkKLSthY190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9Ci0rYWNfc2F2ZV9DRkxBR1M9 JENGTEFHUwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRD QyBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2Nl cHRzIC1nLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBz ZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfc2F2 ZV9jX3dlcnJvcl9mbGFnPSRhY19jX3dlcnJvcl9mbGFnCi0rICAgYWNfY193ZXJyb3JfZmxhZz15 ZXMKLSsgICBhY19jdl9wcm9nX2NjX2c9bm8KLSsgICBDRkxBR1M9Ii1nIgotKyAgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwot KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNv bmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K LSsgIGFjX2N2X3Byb2dfY2NfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCUNGTEFHUz0iIgotKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJyb3Jf ZmxhZwotKwkgQ0ZMQUdTPSItZyIKLSsJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfZz15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStm aQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9j X3dlcnJvcl9mbGFnCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfcHJvZ19jY19nIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2dfY2NfZyIgPiY2OyB9 Ci0raWYgdGVzdCAiJGFjX3Rlc3RfQ0ZMQUdTIiA9IHNldDsgdGhlbgotKyAgQ0ZMQUdTPSRhY19z YXZlX0NGTEFHUwotK2VsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCi0rICBp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBDRkxBR1M9Ii1nIC1PMiIKLSsgIGVsc2UK LSsgICAgQ0ZMQUdTPSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsgICAgQ0ZMQUdTPSItTzIiCi0rICBlbHNlCi0rICAgIENGTEFHUz0KLSsgIGZpCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24g dG8gYWNjZXB0IElTTyBDODkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0 aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9n X2NjX2M4OStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBhY19jdl9wcm9nX2NjX2M4OT1ubwotK2FjX3NhdmVfQ0M9JENDCi0rY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkYXJnLmg+ Ci0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNpbmNsdWRl IDxzeXMvc3RhdC5oPgotKy8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVu IGZyb20gUkNTIDUuNydzIHNyYy9jb25mLnNoLiAgKi8KLStzdHJ1Y3QgYnVmIHsgaW50IHg7IH07 Ci0rRklMRSAqICgqcmNzb3BlbikgKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsK LStzdGF0aWMgY2hhciAqZSAocCwgaSkKLSsgICAgIGNoYXIgKipwOwotKyAgICAgaW50IGk7Ci0r ewotKyAgcmV0dXJuIHBbaV07Ci0rfQotK3N0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hh ciAqKiwgaW50KSwgY2hhciAqKnAsIC4uLikKLSt7Ci0rICBjaGFyICpzOwotKyAgdmFfbGlzdCB2 OwotKyAgdmFfc3RhcnQgKHYscCk7Ci0rICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOwotKyAg dmFfZW5kICh2KTsKLSsgIHJldHVybiBzOwotK30KLSsKLSsvKiBPU0YgNC4wIENvbXBhcSBjYyBp cyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcwotKyAgIGZ1bmN0 aW9uIHByb3RvdHlwZXMgYW5kIHN0dWZmLCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNv bnN0YW50cy4KLSsgICBUaGVzZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHks IGluc3RlYWQgYXJlIHNpbGVudGx5IHRyZWF0ZWQKLSsgICBhcyAneCcuICBUaGUgZm9sbG93aW5n IGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQgaXMgYWRkZWQgdG8gZ2V0Ci0rICAgcHJvcGVy IEFOU0kgbW9kZS4gIEN1cmlvdXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUs IGZvciBhbgotKyAgIGFycmF5IHNpemUgYXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0 ZSAnXHgwMCc9PTAgdG8gZ2V0IHNvbWV0aGluZwotKyAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAt c3RkLiAgKi8KLStpbnQgb3NmNF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwotKwot Ky8qIElCTSBDIDYgZm9yIEFJWCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVw bGFjZXMgbWFjcm8gcGFyYW1ldGVycwotKyAgIGluc2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXIg Y29uc3RhbnRzLiAgKi8KLSsjZGVmaW5lIEZPTyh4KSAneCcKLStpbnQgeGxjNl9jY19hcnJheVtG T08oYSkgPT0gJ3gnID8gMSA6IC0xXTsKLSsKLStpbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsK LStzdHJ1Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsKLStzdHJ1Y3QgczIge2ludCAoKmYpIChk b3VibGUgYSk7fTsKLStpbnQgcGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1 Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCksIGludCwgaW50KTsKLStpbnQgYXJnYzsKLStj aGFyICoqYXJndjsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBmIChlLCBhcmd2LCAwKSAh PSBhcmd2WzBdICB8fCAgZiAoZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStmb3IgYWNfYXJnIGluICcnIC1xbGFuZ2x2bD1leHRjODkgLXFs YW5nbHZsPWFuc2kgLXN0ZCBcCi0rCS1BZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19F WFRFTlNJT05TX18iCi0rZG8KLSsgIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgotKyAgcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBh Y19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy Ci0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dAotKyAgdGVzdCAieCRhY19jdl9wcm9nX2NjX2M4OSIgIT0g InhubyIgJiYgYnJlYWsKLStkb25lCi0rcm0gLWYgY29uZnRlc3QuJGFjX2V4dAotK0NDPSRhY19z YXZlX0NDCi0rCi0rZmkKLSsjIEFDX0NBQ0hFX1ZBTAotK2Nhc2UgIngkYWNfY3ZfcHJvZ19jY19j ODkiIGluCi0rICB4KQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu b25lIG5lZWRlZCIgPiY1Ci0rJGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKLSsgIHhu bykKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogdW5zdXBwb3J0ZWQi ID4mNQotKyRhc19lY2hvICJ1bnN1cHBvcnRlZCIgPiY2OyB9IDs7Ci0rICAqKQotKyAgICBDQz0i JENDICRhY19jdl9wcm9nX2NjX2M4OSIKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N2X3Byb2dfY2NfYzg5IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3Byb2df Y2NfYzg5IiA+JjY7IH0gOzsKLStlc2FjCi0rCi0rCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLStkZXBjYz0iJENDIiAgIGFtX2Nv bXBpbGVyX2xpc3Q9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRl cGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkZXBl bmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YW1fY3ZfQ0Nf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYm IHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgotKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBk byB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAotKyAgIyBtYWtpbmcg Ym9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBG b3IKLSsgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0 ZXN0IHdpbGwgZW5kIHVwCi0rICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJl Y2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0Ci0rICAjIGluIEQnLgotKyAgbWtkaXIg Y29uZnRlc3QuZGlyCi0rICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndp c2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQotKyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVj dG9yeS4KLSsgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCi0rICBjZCBjb25mdGVzdC5k aXIKLSsgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJk aXJlY3RvcnkgYmVjYXVzZQotKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRl cGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKLSsgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJ Q0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCi0rICAjIHNpZGUgZWZm ZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4K LSsgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4g dGhlIG9iamVjdAotKyAgIyBkaXJlY3RvcnkuCi0rICBta2RpciBzdWIKLSsKLSsgIGFtX2N2X0ND X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLSsgIGlmIHRlc3QgIiRhbV9jb21waWxl cl9saXN0IiA9ICIiOyB0aGVuCi0rICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMq XChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAotKyAgZmkKLSsgIGZvciBkZXBt b2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGgg bWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSsgICAgIyBsaWtlIHRv IHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAot KyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1 c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZp bGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSsgICAgIyBvdmVyd3JpdGUg c29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSsg ICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCi0rICAg IDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSsgICAg ICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCi0rICAg ICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0 MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotKyAgICAgIHRv dWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25lCi0rICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9 ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLSsKLSsg ICAgY2FzZSAkZGVwbW9kZSBpbgotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0 aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0r ICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlm IHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250 aW51ZQotKyAgICAgIGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG5v bmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAt bycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1 cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0r ICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgotKyAgICBp ZiBkZXBtb2RlPSRkZXBtb2RlIFwKLSsgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVj dD1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gXAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVz dC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBj b21wICRkZXBjYyAtYyAtbyBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMg XAotKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKLSsgICAgICAgZ3JlcCBz dWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAg ICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm Ci0rICAgICAgIGdyZXAgc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5QbyA+ IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAv ZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93 biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKLSsgICAgICAjIG9yIHJlbWFy a3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2Fn ZQotKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9y dGVkLgotKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0 aHVzbHk6Ci0rICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9w dGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAotKyAgICAgICMgVGhlIGRpYWdub3NpcyBj aGFuZ2VkIGluIGljYyA4LjA6Ci0rICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazog b3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKLSsgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0 aW9uJyBjb25mdGVzdC5lcnIgfHwKLSsgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29u ZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotKyAgICAgICAgYW1fY3Zf Q0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKLSsgICAgICAgIGJyZWFrCi0r ICAgICAgZmkKLSsgICAgZmkKLSsgIGRvbmUKLSsKLSsgIGNkIC4uCi0rICBybSAtcmYgY29uZnRl c3QuZGlyCi0rZWxzZQotKyAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9u ZQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1f Y3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQotKyRhc19lY2hvICIkYW1fY3Zf Q0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQotK0NDREVQTU9ERT1kZXBtb2Rl PSRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZQotKwotKyBpZgotKyAgdGVzdCAi eCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKLSsgICYmIHRlc3QgIiRhbV9j dl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCi0rICBhbV9fZmFz dGRlcENDX1RSVUU9Ci0rICBhbV9fZmFzdGRlcENDX0ZBTFNFPScjJwotK2Vsc2UKLSsgIGFtX19m YXN0ZGVwQ0NfVFJVRT0nIycKLSsgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBu b3QgdHJ1bmNhdGUgb3V0cHV0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQg dGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0 X2N2X3BhdGhfU0VEK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBm b3Igc2VkIGFuZCBnc2VkLgotKyMgVGhlbiB1c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMg dG8gdGVzdCBmb3IgdHJ1bmNhdGlvbi4KLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2Vk IGdzZWQ7IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbwotKyAgICAgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgICAgIGx0X2FjX3NlZF9saXN0PSIkbHRfYWNfc2VkX2xpc3QgJGFzX2Rp ci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAgICBmaQotKyAgICBkb25lCi0rICBkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLStsdF9hY19tYXg9MAotK2x0X2FjX2NvdW50PTAK LSsjIEFkZCAvdXNyL3hwZzQvYmluL3NlZCBhcyBpdCBpcyB0eXBpY2FsbHkgZm91bmQgb24gU29s YXJpcwotKyMgYWxvbmcgd2l0aCAvYmluL3NlZCB0aGF0IHRydW5jYXRlcyBvdXRwdXQuCi0rZm9y IGx0X2FjX3NlZCBpbiAkbHRfYWNfc2VkX2xpc3QgL3Vzci94cGc0L2Jpbi9zZWQ7IGRvCi0rICB0 ZXN0ICEgLWYgJGx0X2FjX3NlZCAmJiBjb250aW51ZQotKyAgY2F0IC9kZXYvbnVsbCA+IGNvbmZ0 ZXN0LmluCi0rICBsdF9hY19jb3VudD0wCi0rICBlY2hvICRFQ0hPX04gIjAxMjM0NTY3ODkkRUNI T19DIiA+Y29uZnRlc3QuaW4KLSsgICMgQ2hlY2sgZm9yIEdOVSBzZWQgYW5kIHNlbGVjdCBpdCBp ZiBpdCBpcyBmb3VuZC4KLSsgIGlmICIkbHRfYWNfc2VkIiAtLXZlcnNpb24gMj4mMSA8IC9kZXYv bnVsbCB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9TRUQ9 JGx0X2FjX3NlZAotKyAgICBicmVhawotKyAgZmkKLSsgIHdoaWxlIHRydWU7IGRvCi0rICAgIGNh dCBjb25mdGVzdC5pbiBjb25mdGVzdC5pbiA+Y29uZnRlc3QudG1wCi0rICAgIG12IGNvbmZ0ZXN0 LnRtcCBjb25mdGVzdC5pbgotKyAgICBjcCBjb25mdGVzdC5pbiBjb25mdGVzdC5ubAotKyAgICBl Y2hvID4+Y29uZnRlc3QubmwKLSsgICAgJGx0X2FjX3NlZCAtZSAncy9hJC8vJyA8IGNvbmZ0ZXN0 Lm5sID5jb25mdGVzdC5vdXQgfHwgYnJlYWsKLSsgICAgY21wIC1zIGNvbmZ0ZXN0Lm91dCBjb25m dGVzdC5ubCB8fCBicmVhawotKyAgICAjIDEwMDAwIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUg dGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkbHRfYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCi0rICAg IGx0X2FjX2NvdW50PWBleHByICRsdF9hY19jb3VudCArIDFgCi0rICAgIGlmIHRlc3QgJGx0X2Fj X2NvdW50IC1ndCAkbHRfYWNfbWF4OyB0aGVuCi0rICAgICAgbHRfYWNfbWF4PSRsdF9hY19jb3Vu dAotKyAgICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKLSsgICAgZmkKLSsgIGRvbmUKLStk b25lCi0rCi0rZmkKLSsKLStTRUQ9JGx0X2N2X3BhdGhfU0VECi0rCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJFNFRCIgPiY1Ci0rJGFzX2VjaG8gIiRTRUQiID4mNjsgfQot 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 UD0iJGFjX2N2X3BhdGhfRUdSRVAiCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1n bnUtbGQgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgIHdpdGh2YWw9JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRo X2dudV9sZD15ZXMKLStlbHNlCi0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1s ZAotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQt cHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBsZCB1c2VkIGJ5ICRDQy4uLiAiID4mNjsgfQotKyAgY2FzZSAkaG9zdCBpbgotKyAgKi0q LW1pbmd3KikKLSsgICAgIyBnY2MgbGVhdmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdo aWNoIHVwc2V0cyBtaW5ndwotKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQp IDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7Ci0rICAqKQotKyAgICBhY19wcm9nPWAoJENDIC1wcmlu dC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7Ci0rICBlc2FjCi0rICBjYXNlICRhY19wcm9nIGluCi0r ICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgotKyAgICBbXFwvXSogfCA/OltcXC9dKikKLSsg ICAgICByZV9kaXJlbHQ9Jy9bXi9dW14vXSovXC5cLi8nCi0rICAgICAgIyBDYW5vbmljYWxpemUg dGhlIHBhdGhuYW1lIG9mIGxkCi0rICAgICAgYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgJFNFRCAn cyVcXFxcJS8lZydgCi0rICAgICAgd2hpbGUgZWNobyAkYWNfcHJvZyB8IGdyZXAgIiRyZV9kaXJl bHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCi0rCWFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRTRUQg InMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRMRCIgJiYg TEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWlscywgdGhl biBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsgICAgOzsK LSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmly c3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7OwotKyAgZXNh YwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9Ci0rZmkKLStpZiB0ZXN0ICIke2x0X2N2 X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJExEIjsgdGhlbgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbwotKyAgICBJ RlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsg ICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNf cHJvZyRhY19leGVleHQiOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNf cHJvZyIKLSsgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJ J2QgcmF0aGVyIHVzZSAtLXZlcnNpb24sCi0rICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZh cmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KLSsgICAgICAjIEJyZWFrIG9ubHkgaWYg aXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KLSsgICAgICBjYXNlIGAi JGx0X2N2X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsgICAgICAqR05VKiB8ICon d2l0aCBCRkQnKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhawotKwk7Owot KyAgICAgICopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rZWxz ZQotKyAgbHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KLStmaQotK2ZpCi0rCi0rTEQ9IiRsdF9jdl9wYXRoX0xEIgotK2lmIHRl c3QgLW4gIiRMRCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRMRCIgPiY1Ci0rJGFzX2VjaG8gIiRMRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0r ZmkKLSt0ZXN0IC16ICIkTEQiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2x0X2N2X3Byb2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUs IGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KLStjYXNlIGAkTEQg LXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAgbHRfY3Zf cHJvZ19nbnVfbGQ9eWVzCi0rICA7OwotKyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD1ubwotKyAg OzsKLStlc2FjCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRf Y3ZfcHJvZ19nbnVfbGQiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsg fQotK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAotKwotKwotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZp bGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQg b2JqZWN0IGZpbGVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9sZF9yZWxvYWRfZmxh ZytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBsdF9jdl9sZF9yZWxvYWRfZmxhZz0nLXInCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfbGRfcmVsb2FkX2ZsYWciID4mNQotKyRhc19lY2hvICIk bHRfY3ZfbGRfcmVsb2FkX2ZsYWciID4mNjsgfQotK3JlbG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxv YWRfZmxhZwotK2Nhc2UgJHJlbG9hZF9mbGFnIGluCi0rIiIgfCAiICIqKSA7OwotKyopIHJlbG9h ZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OwotK2VzYWMKLStyZWxvYWRfY21kcz0nJExEJHJlbG9h ZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFy d2luKikKLSsgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgICByZWxvYWRfY21k cz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3dsfS1yIC1vICRvdXRwdXQkcmVsb2FkX29i anMnCi0rICAgIGVsc2UKLSsgICAgICByZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRv dXRwdXQkcmVsb2FkX29ianMnCi0rICAgIGZpCi0rICAgIDs7Ci0rZXNhYwotKwotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQlNELWNvbXBhdGlibGUgbm0iID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBCU0QtY29tcGF0aWJsZSBubS4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9OTStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCi0rICAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSsgIGx0X2N2X3BhdGhfTk09IiROTSIK LStlbHNlCi0rICBsdF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKLSsgIGlmIHRl c3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4K LSsgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKLSsgIGZpCi0rICBmb3Ig bHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsgZG8KLSsgICAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3Mv YmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KLSsgICAgICBJRlM9IiRsdF9z YXZlX2lmcyIKLSsgICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICAgIHRt cF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgotKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8 IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KLSsJIyBDaGVjayB0byBzZWUgaWYg dGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZsYWcuCi0rCSMgQWRkaW5nIHRoZSBgc2VkIDFx JyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6Ci0rCSMgICBu bTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQKLSsJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0 aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCi0rCWNhc2UgYCIkdG1wX25t IiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgotKwkqL2Rldi9udWxsKiB8IConSW52 YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCi0rCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAt QiIKLSsJICBicmVhawotKwkgIDs7Ci0rCSopCi0rCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYv bnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCi0rCSAgKi9kZXYvbnVsbCopCi0rCSAgICBsdF9jdl9w YXRoX05NPSIkdG1wX25tIC1wIgotKwkgICAgYnJlYWsKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJz dCBtYXRjaCwgYnV0Ci0rCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5k IG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncwotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsK LSsJZXNhYwotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICBkb25lCi0rICB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9OTSIgJiYgbHRfY3ZfcGF0aF9OTT1ubQot K2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcGF0 aF9OTSIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wYXRoX05NIiA+JjY7IH0KLStOTT0iJGx0X2N2 X3BhdGhfTk0iCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgbG4gLXMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgbG4gLXMg d29ya3MuLi4gIiA+JjY7IH0KLStMTl9TPSRhc19sbl9zCi0raWYgdGVzdCAiJExOX1MiID0gImxu IC1zIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+ JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiBubywgdXNpbmcgJExOX1MiID4mNQotKyRhc19lY2hvICJubywgdXNp bmcgJExOX1MiID4mNjsgfQotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCtzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9m aWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKLStsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0K LStsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicKLSsjIE5lZWQgdG8gc2V0IHRo ZSBwcmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKLSsjIGlu dGVybGlicmFyeSBkZXBlbmRlbmNpZXMuCi0rIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBz dXBwb3J0ZWQuCi0rIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRo YXQgd2UgcmVhbGx5IGRvbid0IGtub3cuCi0rIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNp ZXMgcGFzc2VkIHdpdGggbm8gY2hlY2tzLgotKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkg bWFraW5nIHRlc3QgcHJvZ3JhbS4KLSsjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sg YnkgbG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCi0rIyB3aGljaCByZXNwb25kcyB0 byB0aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KLSsjIElm IHlvdSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUg bm90IHN1cmUKLSsjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBw cm9iYWJseSB3YW50IHRoaXMgb25lLgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXhbNC05XSop Ci0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStiZW9z KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2Jz ZGlbNDVdKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBb MC05XVswLTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKScKLSsgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJwotKyAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KLSsgIDs7Ci0rCi0rY3lnd2luKikKLSsgICMgZnVu Y193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4gbHRtYWluLnNoCi0r ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUgaW1w b3J0fF54ODYgRExMJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQn Ci0rICA7OwotKwotK21pbmd3KiB8IHB3MzIqKQotKyAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90 IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQotKyAgIyBmdW5jX3dpbjMyX2xp YmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVt cCcsCi0rICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVzZSB3ZSBh cmUgY3Jvc3MtY29tcGlsaW5nLgotKyAgaWYgKCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNo aXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2lu MzJfbGliaWQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxl X21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JwotKyAg ICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStk YXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgaWYgZWNobyBfX0VMRl9f IHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsgICAgaSo4NiApCi0rICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHRoZSBw cmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KLSsgICAgICAjIExldCdzIGFj Y2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgotKyAgICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNEfE9wZW5CU0R8RHJhZ29u Rmx5KS9pWzMtOV04NiAoY29tcGFjdCApP2RlbWFuZCBwYWdlZCBzaGFyZWQgbGlicmFyeScKLSsg ICAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICAgICAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zby4qYAotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIGZpCi0rICA7OwotKwotK2dudSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAotKyAgOzsKLSsKLStocHV4MTAuMjAqIHwgaHB1eDExKikKLSsgIGx0X2N2X2Zp bGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBpYTY0 KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVsw LTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIElBNjQnCi0rICAg IGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2hwdXgzMi9saWJjLnNvCi0rICAg IDs7Ci0rICBocHBhKjY0KikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTldWzAtOV0pIHNoYXJlZCBvYmplY3QgZmls ZSAtIFBBLVJJU0MgWzAtOV0uWzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18UEEtUklTQ1sw LTldLlswLTldKSBzaGFyZWQgbGlicmFyeScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2Zp bGU9L3Vzci9saWIvbGliYy5zbAotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStpbnRlcml4 WzMtOV0qKQotKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJpeCAzLngsIHRoYXQncyB3 aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc298XC5hKSQnCi0rICA7OwotKwotK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRMRCBpbgotKyAgKi0zMnwqIi0zMiAiKSBs aWJtYWdpYz0zMi1iaXQ7OwotKyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7Ci0rICAq LTY0fCoiLTY0ICIpIGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAqKSBsaWJtYWdpYz1uZXZlci1tYXRj aDs7Ci0rICBlc2FjCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAg OzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkK LSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK25ldGJz ZCopCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+IC9kZXYv bnVsbDsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVy biAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJwotKyAgZWxzZQotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5z b3xfcGljXC5hKSQnCi0rICBmaQotKyAgOzsKLSsKLStuZXdvczYqKQotKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4 ZWN1dGFibGV8ZHluYW1pYyBsaWIpJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4v ZmlsZQotKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCi0r ICA7OwotKwotK250by1xbngqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93 bgotKyAgOzsKLSsKLStvcGVuYnNkKikKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAi b3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05XSt8XC5zb3xfcGlj XC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9w YXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xfcGljXC5hKSQnCi0rICBmaQot KyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsg IGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rICBtb3Rvcm9sYSkKLSsgICAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJl ZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJwotKyAgICBs dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKLSsgICAg OzsKLSsgIG5jcikKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsg ICAgOzsKLSsgIHNlcXVlbnQpCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUn Ci0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVsw LTldKi1iaXQgW0xNXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCi0rICAgIDs7Ci0r ICBzbmkpCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCi0rICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xN XVNCIGR5bmFtaWMgbGliIgotKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xp YmMuc28KLSsgICAgOzsKLSsgIHNpZW1lbnMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBwYykKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2Nv My4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0r ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStlc2FjCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2QiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Qi ID4mNjsgfQotK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAotK2RlcGxpYnNf Y2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZAotK3Rlc3QgLXogIiRkZXBs aWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgotKwotKwot KwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0k e0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVk LCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxs b3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JEND Ci0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4u Ci0raWYgdGVzdCAiJHtlbmFibGVfbGlidG9vbF9sb2NrK3NldH0iID0gc2V0OyB0aGVuCi0rICBl bmFibGV2YWw9JGVuYWJsZV9saWJ0b29sX2xvY2s7Ci0rZmkKLSsKLSt0ZXN0ICJ4JGVuYWJsZV9s aWJ0b29sX2xvY2siICE9IHhubyAmJiBlbmFibGVfbGlidG9vbF9sb2NrPXllcwotKwotKyMgU29t ZSBmbGFncyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBm b3IgZ29vZAotKyMgbGlidG9vbCBzdXBwb3J0LgotK2Nhc2UgJGhvc3QgaW4KLStpYTY0LSotaHB1 eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdpbnQg aTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVO TzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAg YWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAgY2FzZSBgL3Vzci9i aW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKyAgICAqRUxGLTMyKikKLSsgICAgICBI UFVYX0lBNjRfTU9ERT0iMzIiCi0rICAgICAgOzsKLSsgICAgKkVMRi02NCopCi0rICAgICAgSFBV WF9JQTY0X01PREU9IjY0IgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYg Y29uZnRlc3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3 ZSBhcmUgdXNpbmcuCi0rICBlY2hvICcjbGluZSA1NTY5ICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBp bGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xk IiA9IHllczsgdGhlbgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpl eHRgIGluCi0rICAgICozMi1iaXQqKQotKyAgICAgIExEPSIke0xELWxkfSAtbWVsZjMyYnNtaXAi Ci0rICAgICAgOzsKLSsgICAgKk4zMiopCi0rICAgICAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJibWlw bjMyIgotKyAgICAgIDs7Ci0rICAgICo2NC1iaXQqKQotKyAgICAgIExEPSIke0xELWxkfSAtbWVs ZjY0Ym1pcCIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgZWxzZQotKyAgICBjYXNlIGAvdXNy L2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rICAgICozMi1iaXQqKQotKyAgICAg IExEPSIke0xELWxkfSAtMzIiCi0rICAgICAgOzsKLSsgICAgKk4zMiopCi0rICAgICAgTEQ9IiR7 TEQtbGR9IC1uMzIiCi0rICAgICAgOzsKLSsgICAgKjY0LWJpdCopCi0rICAgICAgTEQ9IiR7TEQt bGR9IC02NCIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgZmkKLSsgIGZpCi0rICBybSAtcmYg Y29uZnRlc3QqCi0rICA7OwotKwotK3g4Nl82NC0qa2ZyZWVic2QqLWdudXx4ODZfNjQtKmxpbnV4 KnxwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KnwgXAotK3MzOTAqLSpsaW51eCp8c3BhcmMq LSpsaW51eCopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hv ICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4m NQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAqMzItYml0KikKLSsgICAgICBjYXNl ICRob3N0IGluCi0rICAgICAgICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0rICAgICAgICAgIExE PSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgotKyAgICAgICAgICA7OwotKyAgICAgICAgeDg2 XzY0LSpsaW51eCopCi0rICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsgICAg ICAgICAgOzsKLSsgICAgICAgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCi0rICAg ICAgICAgIExEPSIke0xELWxkfSAtbSBlbGYzMnBwY2xpbnV4IgotKyAgICAgICAgICA7OwotKyAg ICAgICAgczM5MHgtKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9zMzkw IgotKyAgICAgICAgICA7OwotKyAgICAgICAgc3BhcmM2NC0qbGludXgqKQotKyAgICAgICAgICBM RD0iJHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCi0rICAgICAgICAgIDs7Ci0rICAgICAgZXNhYwot KyAgICAgIDs7Ci0rICAgICo2NC1iaXQqKQotKyAgICAgIGxpYnN1ZmY9NjQKLSsgICAgICBjYXNl ICRob3N0IGluCi0rICAgICAgICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0rICAgICAgICAgIExE PSIke0xELWxkfSAtbSBlbGZfeDg2XzY0X2Zic2QiCi0rICAgICAgICAgIDs7Ci0rICAgICAgICB4 ODZfNjQtKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCi0r ICAgICAgICAgIDs7Ci0rICAgICAgICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsg ICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0cHBjIgotKyAgICAgICAgICA7OwotKyAgICAg ICAgczM5MCotKmxpbnV4KikKLSsgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3MzOTAi Ci0rICAgICAgICAgIDs7Ci0rICAgICAgICBzcGFyYyotKmxpbnV4KikKLSsgICAgICAgICAgTEQ9 IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsg ICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsK LSsqLSotc2NvMy4ydjUqKQotKyAgIyBPbiBTQ08gT3BlblNlcnZlciA1LCB3ZSBuZWVkIC1iZWxm IHRvIGdldCBmdWxsLWZlYXR1cmVkIGJpbmFyaWVzLgotKyAgU0FWRV9DRkxBR1M9IiRDRkxBR1Mi Ci0rICBDRkxBR1M9IiRDRkxBR1MgLWJlbGYiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZiIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfY2NfbmVlZHNfYmVsZitzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19leHQ9YwotK2Fj X2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19l eGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKyAgICAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgp Ci0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwK LSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkg JGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgbHRfY3Zf Y2NfbmVlZHNfYmVsZj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r CWx0X2N2X2NjX25lZWRzX2JlbGY9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4 X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4 dAotKyAgICAgYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9 JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9jY19uZWVkc19iZWxmIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2NjX25lZWRzX2JlbGYi ID4mNjsgfQotKyAgaWYgdGVzdCB4IiRsdF9jdl9jY19uZWVkc19iZWxmIiAhPSB4InllcyI7IHRo ZW4KLSsgICAgIyB0aGlzIGlzIHByb2JhYmx5IGdjYyAyLjguMCwgZWdjcyAxLjAgb3IgbmV3ZXI7 IG5vIG5lZWQgZm9yIC1iZWxmCi0rICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgotKyAgZmkKLSsg IDs7Ci0rc3BhcmMqLSpzb2xhcmlzKikKLSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1 c2luZy4KLSsgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRh Y19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhl bgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1iaXQq KQotKyAgICAgIGNhc2UgJGx0X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9IiR7 TEQtbGR9IC1tIGVsZjY0X3NwYXJjIiA7OwotKyAgICAgICopCi0rICAgICAgICBpZiAke0xELWxk fSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4K LSsJICBMRD0iJHtMRC1sZH0gLTY0IgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsKLSsKLStl c2FjCi0rCi0rbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCi0rCi0rCi0rYWNfZXh0 PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9j ZXNzb3IiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJv Y2Vzc29yLi4uICIgPiY2OyB9Ci0rIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRp cmVjdG9yeS4KLStpZiB0ZXN0IC1uICIkQ1BQIiAmJiB0ZXN0IC1kICIkQ1BQIjsgdGhlbgotKyAg Q1BQPQotK2ZpCi0raWYgdGVzdCAteiAiJENQUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3Zf cHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBl eHBhbmRlZAotKyAgICBmb3IgQ1BQIGluICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFsLWNw cCIgIi9saWIvY3BwIgotKyAgICBkbwotKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3Ig YWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIg ZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRo IGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVY VCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsg ICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2gg dGhpcyBjYXNlLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNs dWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0r aWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJv Y193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Zp Ci0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdv cmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJz Ci0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNF T0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRh Y190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK LSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3Qu ZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1 Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19w cmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlk IGlucHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0r Ci0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNh dXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNr aXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJl cHJvY19vazsgdGhlbgotKyAgYnJlYWsKLStmaQotKwotKyAgICBkb25lCi0rICAgIGFjX2N2X3By b2dfQ1BQPSRDUFAKLSsKLStmaQotKyAgQ1BQPSRhY19jdl9wcm9nX0NQUAotK2Vsc2UKLSsgIGFj X2N2X3Byb2dfQ1BQPSRDUFAKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRDUFAiID4mNQotKyRhc19lY2hvICIkQ1BQIiA+JjY7IH0KLSthY19wcmVwcm9jX29rPWZh bHNlCi0rZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNl IGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMK LSsgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxp bWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAj IDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMg T24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBw YXJzZXIsCi0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJl IHRvIGNhdGNoIHRoaXMgY2FzZS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxz ZQotKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgot K19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRh Y19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1Ci0rCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29u dGludWUKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0r ICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3Rl bnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50 Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAt eiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mg b24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJl YWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9u ZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBj b2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0r aWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNr Ci0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sK LStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgot KyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWlu ICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4 dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKwlhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0r aWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0 cmluZy5oIGRvZXMgbm90IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5o PgotKwotK19BQ0VPRgotK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1 IHwKLSsgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNl Ci0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkK LSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4w LjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3Rk bGliLmg+Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIp IDI+JjUgfAotKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStl bHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0r ZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmlu L2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5n IC1hbnNpLgotKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoK LStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBG RikgPT0gMHgwMjApCi0rIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0g J3onKQotKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2En KSA6IChjKSkKLSsjZWxzZQotKyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0g KGMpICYmIChjKSA8PSAnaScpIFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdy JykgXAotKwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBU T1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwot KyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsgIGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQot KyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkp ICE9IFRPVVBQRVIgKGkpKQotKyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4 ZWV4dCcKLSsgIHsgKGNhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUK LSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0 YXR1cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVz ICkKLSthY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLSty bSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwot KwotK2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf aGVhZGVyX3N0ZGMiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQot K2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkK LSsKLSsjIE9uIElSSVggNS4zLCBzeXMvdHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0 aW5nLgotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2ZvciBhY19oZWFkZXIgaW4gc3lzL3R5 cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAot KwkJICBpbnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5oCi0rZG8KLSthc19hY19IZWFkZXI9YCRh c19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRh c19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAotKwot KyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAg ZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwlldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSthY19y ZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3Jl cyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVz dCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9G Ci0rI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0r X0FDRU9GCi0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0rZm9yIGFjX2hlYWRlciBpbiBkbGZj bi5oCi0rZG8KLSthc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRl ciIgfCAkYXNfdHJfc2hgCi0raWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBc IlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFk ZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRh Y19yZXMiID4mNjsgfQotK2Vsc2UKLSsgICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gIiA+JjY7 IH0KLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyRhY19pbmNs dWRlc19kZWZhdWx0Ci0rI2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0rcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgk YWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19z dGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0r ICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCi0rICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwlhY19oZWFkZXJfY29tcGlsZXI9bm8KLStmaQotKwotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIi ID4mNQotKyRhc19lY2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KLSsKLSsjIElzIHRo ZSBoZWFkZXIgcHJlc2VudD8KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg JGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRl ciBwcmVzZW5jZS4uLiAiID4mNjsgfQotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rI2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5 PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWck YWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fTsgdGhlbgotKyAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKyAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLStmaQotKwotK3JtIC1mIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKLSskYXNfZWNobyAiJGFjX2hlYWRlcl9w cmVwcm9jIiA+JjY7IH0KLSsKLSsjIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLStjYXNl ICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fy bl9mbGFnIGluCi0rICB5ZXM6bm86ICkKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQg YnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh Y19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXBy b2Nlc3NvciEiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5H OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGgg dGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQotKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMK LSsgICAgOzsKLSsgIG5vOnllczoqICkKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fu bm90IGJlIGNvbXBpbGVkIiA+JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBo ZWFkZXJzPyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAg IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0 b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFj X2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQotKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24g XCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3Qg QmUgQ29tcGlsZWRcIiIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVz dWx0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVk aW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRo ZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFr ZSBwcmVjZWRlbmNlIiA+JjI7fQotKyAgICAoIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBSZXBvcnQgdGhpcyB0 byBtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLStfQVNCT1gKLSsgICAgICkgfCBzZWQg InMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLSsgICAgOzsKLStlc2FjCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFy PSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgZXZhbCAiJGFz X2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0hlYWRlcid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19l Y2hvICIkYWNfcmVzIiA+JjY7IH0KLSsKLStmaQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRh c192YWwiID0geCIieWVzOyB0aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2Rl ZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9G Ci0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0raWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0 ICJYJENYWCIgIT0gIlhubyIgJiYKLSsgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBn KysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysi KSkpIDsgdGhlbgotKyAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0r YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0K LStpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9nX0NY WENQUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJlIGV4 cGFuZGVkCi0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAgZG8K LSsgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxh ZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGgg Z2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGls ZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD X18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl c3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29k ZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBj cHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsj IGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5k aWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3Bw IGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3Bw IGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2 L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRo ZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJyb2tl bjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2Vz LiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0 ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5 PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxh ZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH07IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0rY29u dGludWUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3NlcyBi b3RoIHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFr JywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAt ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVu Ci0rICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9JENY WENQUAotKwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAgYWNf Y3ZfcHJvZ19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2FjX3By ZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwot K2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZp Z3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsg ICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhl IGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBl cnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGlt aXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBT eW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFj X2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFj X2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNh dCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2 YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sg d2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93 LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVk ZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5l cjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVs bCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJy b3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgot KyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0r YWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJP Q19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStlbHNl Ci0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSt7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRD WFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IEMrKyBwcmVwcm9jZXNzb3Ig XCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1v cmUgZGV0YWlscy4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0rZmkK LSsKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2N4eF9jb21waWxlcl9nbnUKLSsKLStmaQotKwotKwotK2FjX2V4dD1mCi0rYWNfY29tcGlsZT0n JEY3NyAtYyAkRkZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRGNzcgLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRGRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9mNzdfY29tcGlsZXJfZ251Ci0raWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gZzc3IHhsZiBm NzcgZnJ0IHBnZjc3IGNmNzcgZm9ydDc3IGZsMzIgYWY3NyB4bGY5MCBmOTAgcGdmOTAgcGdocGYg ZXBjZjkwIGdmb3J0cmFuIGc5NSB4bGY5NSBmOTUgZm9ydCBpZm9ydCBpZmMgZWZjIHBnZjk1IGxm OTUgZnRuCi0rICBkbwotKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29s X3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4K LStzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfRjc3K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRGNzciOyB0aGVuCi0rICBhY19jdl9wcm9nX0Y3Nz0i JEY3NyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJv Z19GNzc9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVh ayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkK LStGNzc9JGFjX2N2X3Byb2dfRjc3Ci0raWYgdGVzdCAtbiAiJEY3NyI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRGNzciID4mNQotKyRhc19lY2hvICIkRjc3 IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIk Rjc3IiAmJiBicmVhawotKyAgZG9uZQotK2ZpCi0raWYgdGVzdCAteiAiJEY3NyI7IHRoZW4KLSsg IGFjX2N0X0Y3Nz0kRjc3Ci0rICBmb3IgYWNfcHJvZyBpbiBnNzcgeGxmIGY3NyBmcnQgcGdmNzcg Y2Y3NyBmb3J0NzcgZmwzMiBhZjc3IHhsZjkwIGY5MCBwZ2Y5MCBwZ2hwZiBlcGNmOTAgZ2ZvcnRy YW4gZzk1IHhsZjk1IGY5NSBmb3J0IGlmb3J0IGlmYyBlZmMgcGdmOTUgbGY5NSBmdG4KLStkbwot KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX2FjX2N0X0Y3NytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfRjc3IjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19hY19jdF9GNzc9IiRhY19jdF9GNzciICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRjc3PSIkYWNfcHJvZyIK LSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0k YXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRjc3PSRhY19jdl9wcm9nX2FjX2N0X0Y3 NwotK2lmIHRlc3QgLW4gIiRhY19jdF9GNzciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfRjc3IiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0Y3NyIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19j dF9GNzciICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9GNzciID0geDsg dGhlbgotKyAgICBGNzc9IiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRh Y190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7Owot K2VzYWMKLSsgICAgRjc3PSRhY19jdF9GNzcKLSsgIGZpCi0rZmkKLSsKLSsKLSsjIFByb3ZpZGUg c29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCi0rJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgRm9ydHJhbiA3NyBjb21waWxlciB2ZXJzaW9uIiA+JjUKLStz ZXQgWCAkYWNfY29tcGlsZQotK2FjX2NvbXBpbGVyPSQyCi0reyAoYWNfdHJ5PSIkYWNfY29tcGls ZXIgLS12ZXJzaW9uID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21w aWxlciAtLXZlcnNpb24gPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtdiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLXYgPiY1IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0KLSt7IChhY190cnk9IiRhY19jb21waWxlciAtViA+JjUiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLVYgPiY1IikgMj4mNQot KyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLStybSAtZiBhLm91dAotKwotKyMg SWYgd2UgZG9uJ3QgdXNlIGAuRicgYXMgZXh0ZW5zaW9uLCB0aGUgcHJlcHJvY2Vzc29yIGlzIG5v dCBydW4gb24gdGhlCi0rIyBpbnB1dCBmaWxlLiAgKE5vdGUgdGhhdCB0aGlzIG9ubHkgbmVlZHMg dG8gd29yayBmb3IgR05VIGNvbXBpbGVycy4pCi0rYWNfc2F2ZV9leHQ9JGFjX2V4dAotK2FjX2V4 dD1GCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJl IHVzaW5nIHRoZSBHTlUgRm9ydHJhbiA3NyBjb21waWxlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBGb3J0cmFuIDc3IGNvbXBpbGVyLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9mNzdfY29tcGlsZXJfZ251K3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKyAgICAgIHByb2dyYW0gbWFpbgotKyNpZm5kZWYgX19H TlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgICAgICBlbmQKLStfQUNFT0YK LStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfZjc3X3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY29tcGlsZXJfZ251PXllcwotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY29tcGlsZXJfZ251PW5vCi0rZmkKLSsK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLSthY19jdl9mNzdfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mNzdfY29tcGlsZXJf Z251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2Y3N19jb21waWxlcl9nbnUiID4mNjsgfQotK2Fj X2V4dD0kYWNfc2F2ZV9leHQKLSthY190ZXN0X0ZGTEFHUz0ke0ZGTEFHUytzZXR9Ci0rYWNfc2F2 ZV9GRkxBR1M9JEZGTEFHUwotK0ZGTEFHUz0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgd2hldGhlciAkRjc3IGFjY2VwdHMgLWciID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgJEY3NyBhY2NlcHRzIC1nLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9wcm9nX2Y3N19nK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIEZGTEFHUz0tZwotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKyAgICAgIHByb2dyYW0gbWFpbgotKwotKyAgICAgIGVuZAotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19mNzdfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2Y3N19nPXllcwotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfcHJvZ19mNzdfZz1ubwotK2ZpCi0rCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19m NzdfZyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9wcm9nX2Y3N19nIiA+JjY7IH0KLStpZiB0ZXN0 ICIkYWNfdGVzdF9GRkxBR1MiID0gc2V0OyB0aGVuCi0rICBGRkxBR1M9JGFjX3NhdmVfRkZMQUdT Ci0rZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2Y3N19nID0geWVzOyB0aGVuCi0rICBpZiB0ZXN0ICJ4 JGFjX2N2X2Y3N19jb21waWxlcl9nbnUiID0geHllczsgdGhlbgotKyAgICBGRkxBR1M9Ii1nIC1P MiIKLSsgIGVsc2UKLSsgICAgRkZMQUdTPSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAi eCRhY19jdl9mNzdfY29tcGlsZXJfZ251IiA9IHh5ZXM7IHRoZW4KLSsgICAgRkZMQUdTPSItTzIi Ci0rICBlbHNlCi0rICAgIEZGTEFHUz0KLSsgIGZpCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jb21w aWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEc3Nz15ZXMKLStlbHNlCi0rICBHNzc9Ci0rZmkKLSth Y19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRD RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBj b25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQot KwotKwotKwotKyMgQXV0b2NvbmYgMi4xMydzIEFDX09CSkVYVCBhbmQgQUNfRVhFRVhUIG1hY3Jv cyBvbmx5IHdvcmtzIGZvciBDIGNvbXBpbGVycyEKLSsjIGZpbmQgdGhlIG1heGltdW0gbGVuZ3Ro IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxp bmUgYXJndW1lbnRzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbWF4X2NtZF9s ZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgICBpPTAKLSsgIHRlc3RzdHJpbmc9IkFCQ0QiCi0rCi0rICBjYXNlICRidWlsZF9vcyBp bgotKyAgbXNkb3NkamdwcCopCi0rICAgICMgT24gREpHUFAsIHRoaXMgdGVzdCBjYW4gYmxvdyB1 cCBwcmV0dHkgYmFkbHkgZHVlIHRvIHByb2JsZW1zIGluIGxpYmMKLSsgICAgIyAoYW55IHNpbmds ZSBhcmd1bWVudCBleGNlZWRpbmcgMjAwMCBieXRlcyBjYXVzZXMgYSBidWZmZXIgb3ZlcnJ1bgot KyAgICAjIGR1cmluZyBnbG9iIGV4cGFuc2lvbikuICBFdmVuIGlmIGl0IHdlcmUgZml4ZWQsIHRo ZSByZXN1bHQgb2YgdGhpcwotKyAgICAjIGNoZWNrIHdvdWxkIGJlIGxhcmdlciB0aGFuIGl0IHNo b3VsZCBiZS4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEyMjg4OyAgICAjIDEySyBpcyBh Ym91dCByaWdodAotKyAgICA7OwotKwotKyAgZ251KikKLSsgICAgIyBVbmRlciBHTlUgSHVyZCwg dGhpcyB0ZXN0IGlzIG5vdCByZXF1aXJlZCBiZWNhdXNlIHRoZXJlIGlzCi0rICAgICMgbm8gbGlt aXQgdG8gdGhlIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotKyAgICAjIExpYnRv b2wgd2lsbCBpbnRlcnByZXQgLTEgYXMgbm8gbGltaXQgd2hhdHNvZXZlcgotKyAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49LTE7Ci0rICAgIDs7Ci0rCi0rICBjeWd3aW4qIHwgbWluZ3cqKQotKyAg ICAjIE9uIFdpbjl4L01FLCB0aGlzIHRlc3QgYmxvd3MgdXAgLS0gaXQgc3VjY2VlZHMsIGJ1dCB0 YWtlcwotKyAgICAjIGFib3V0IDUgbWludXRlcyBhcyB0aGUgdGVzdHN0cmluZyBncm93cyBleHBv bmVudGlhbGx5LgotKyAgICAjIFdvcnNlLCBzaW5jZSA5eC9NRSBhcmUgbm90IHByZS1lbXB0aXZl bHkgbXVsdGl0YXNraW5nLAotKyAgICAjIHlvdSBlbmQgdXAgd2l0aCBhICJmcm96ZW4iIGNvbXB1 dGVyLCBldmVuIHRob3VnaCB3aXRoIHBhdGllbmNlCi0rICAgICMgdGhlIHRlc3QgZXZlbnR1YWxs eSBzdWNjZWVkcyAod2l0aCBhIG1heCBsaW5lIGxlbmd0aCBvZiAyNTZrKS4KLSsgICAgIyBJbnN0 ZWFkLCBsZXQncyBqdXN0IHB1bnQ6IHVzZSB0aGUgbWluaW11bSBsaW5lbGVuZ3RoIHJlcG9ydGVk IGJ5Ci0rICAgICMgYWxsIG9mIHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm1zOiA4MTkyIChvbiBOVC8y Sy9YUCkuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAg YW1pZ2FvcyopCi0rICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMg aG91cnMsIGxpdGVyYWxseS4KLSsgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmlt dW0gbGluZSBsZW5ndGggb2YgODE5Mi4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7 Ci0rICAgIDs7Ci0rCi0rICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiog fCBkcmFnb25mbHkqKQotKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwg YXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7 IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJu LmFyZ21heGAKLSsgICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhg Ci0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUg ZGVmYXVsdCBmb3IgYWxsIEJTRHMKLSsgICAgZmkKLSsgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpv bmUKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9s ZW4gXC8gNGAKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXCogM2AKLSsgICAgOzsKLSsKLSsgIGludGVyaXgqKQotKyAgICAjIFdlIGtub3cg dGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtl IEJTRCkKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAotKyAgICA7OwotKwotKyAg b3NmKikKLSsgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEg a2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCi0rICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3 aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90Ci0rICAg ICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVs b3cuCi0rICAgICMgRmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgotKyAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49MTYzODQKLSsgICAgIwotKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2Nv bmZpZzsgdGhlbgotKyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlz YWJsZV9hcmdfbGltaXRgIGluCi0rICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0t MSA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgICAgOzsKLSsgIHNjbzMuMnY1KikKLSsgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAotKyAgICA7OwotKyAgc3lzdjUqIHwgc2NvNXY2 KiB8IHN5c3Y0LjJ1dzIqKQotKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2Nm LmQvc3R1bmUgMj4vZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgot KyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKlsg CV0vLydgCi0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKLSsg ICAgZmkKLSsgICAgOzsKLSsgICopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNv bmYgQVJHX01BWCkgMj4gL2Rldi9udWxsYAotKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21h eF9jbWRfbGVuIjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRf Y3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBl eHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsgICAgZWxzZQotKyAgICAgIFNIRUxM PSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19Ci0rICAgICAgd2hpbGUgKHRlc3QgIlgi YCRTSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwK LSsJICAgICAgID0gIlhYJHRlc3RzdHJpbmciKSA+L2Rldi9udWxsIDI+JjEgJiYKLSsJICAgICAg bmV3X3Jlc3VsdD1gZXhwciAiWCR0ZXN0c3RyaW5nIiA6ICIuKiIgMj4mMWAgJiYKLSsJICAgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPSRuZXdfcmVzdWx0ICYmCi0rCSAgICAgIHRlc3QgJGkgIT0g MTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAotKyAgICAgIGRvCi0rICAgICAgICBpPWBleHBy ICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZwotKyAg ICAgIGRvbmUKLSsgICAgICB0ZXN0c3RyaW5nPQotKyAgICAgICMgQWRkIGEgc2lnbmlmaWNhbnQg c2FmZXR5IGZhY3RvciBiZWNhdXNlIEMrKyBjb21waWxlcnMgY2FuIHRhY2sgb24gbWFzc2l2ZQot KyAgICAgICMgYW1vdW50cyBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBiZWZvcmUgcGFzc2luZyB0 aGVtIHRvIHRoZSBsaW5rZXIuCi0rICAgICAgIyBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMg YSB1c2FibGUgdmFsdWUuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9j dl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsKLStm aQotKwotK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4m NQotKyRhc19lY2hvICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIiA+JjUKLSskYXNfZWNobyAi bm9uZSIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIGZvciBjb21tYW5kIHRv IGdyYWIgdGhlIHJhdyBzeW1ib2wgbmFtZSBmb2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlICRO TSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0Li4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsjIFRo ZXNlIGFyZSBzYW5lIGRlZmF1bHRzIHRoYXQgd29yayBvbiBhdCBsZWFzdCBhIGZldyBvbGQgc3lz dGVtcy4KLSsjIFtUaGV5IGNvbWUgZnJvbSBVbHRyaXguICBXaGF0IGNvdWxkIGJlIG9sZGVyIHRo YW4gVWx0cml4PyEhIDspXQotKwotKyMgQ2hhcmFjdGVyIGNsYXNzIGRlc2NyaWJpbmcgTk0gZ2xv YmFsIHN5bWJvbCBjb2Rlcy4KLStzeW1jb2RlPSdbQkNERUdSU1RdJwotKwotKyMgUmVnZXhwIHRv IG1hdGNoIHN5bWJvbHMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBDLgotK3N5 bXBhdD0nXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCknCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0 cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgotK2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXi4gLiogXCguKlwpJC9leHRl cm4gaW50IFwxOy9wJyIKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUg aW50byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKLStsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xc XCJcMVxcXCIsIChsdF9wdHIpIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUgXChbXiBdKlwpIFwoW14g XSpcKSQvICB7XCJcMlwiLCAobHRfcHRyKSBcJlwyfSwvcCciCi0rCi0rIyBEZWZpbmUgc3lzdGVt LXNwZWNpZmljIHZhcmlhYmxlcy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4KikKLSsgIHN5bWNv ZGU9J1tCQ0RUXScKLSsgIDs7Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgc3ltY29k ZT0nW0FCQ0RHSVNUV10nCi0rICA7OwotK2hwdXgqKSAjIEl0cyBsaW5rZXIgZGlzdGluZ3Vpc2hl cyBkYXRhIGZyb20gY29kZSBzeW1ib2xzCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgotKyAgICBzeW1jb2RlPSdbQUJDREVHUlNUXScKLSsgIGZpCi0rICBsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGlu dCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3An IgotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAt ZSAncy9eOiBcKFteIF0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3Mv XiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9 LC9wJyIKLSsgIDs7Ci0rbGludXgqIHwgaypic2QqLWdudSkKLSsgIGlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCi0rICAgIHN5bWNvZGU9J1tBQkNER0lSU1RXXScKLSsgICAgbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eVCAuKiBcKC4qXCkkL2V4 dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBcKC4qXCkkL2V4dGVybiBjaGFy IFwxOy9wJyIKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9 InNlZCAtbiAtZSAncy9eOiBcKFteIF0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwv cCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9w dHIpIFwmXDJ9LC9wJyIKLSsgIGZpCi0rICA7OwotK2lyaXgqIHwgbm9uc3RvcHV4KikKLSsgIHN5 bWNvZGU9J1tCQ0RFR1JTVF0nCi0rICA7OwotK29zZiopCi0rICBzeW1jb2RlPSdbQkNERUdRUlNU XScKLSsgIDs7Ci0rc29sYXJpcyopCi0rICBzeW1jb2RlPSdbQkRSVF0nCi0rICA7OwotK3NjbzMu MnY1KikKLSsgIHN5bWNvZGU9J1tEVF0nCi0rICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29k ZT0nW0RUXScKLSsgIDs7Ci0rc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklY KikKLSsgIHN5bWNvZGU9J1tBQkRUXScKLSsgIDs7Ci0rc3lzdjQpCi0rICBzeW1jb2RlPSdbREZO U1RVXScKLSsgIDs7Ci0rZXNhYwotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFp bgotK29wdF9jcj0KLStjYXNlICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1gZWNo byAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsK LStlc2FjCi0rCi0rIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFy ZCBzeW1ib2wgY29kZXMuCi0rY2FzZSBgJE5NIC1WIDI+JjFgIGluCi0rKkdOVSogfCAqJ3dpdGgg QkZEJyopCi0rICBzeW1jb2RlPSdbQUJDREdJUlNUV10nIDs7Ci0rZXNhYwotKwotKyMgVHJ5IHdp dGhvdXQgYSBwcmVmaXggdW5kZXJjb3JlLCB0aGVuIHdpdGggaXQuCi0rZm9yIGFjX3N5bXByZngg aW4gIiIgIl8iOyBkbwotKwotKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3lt cHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KLSsgIHN5bXhmcm09IlxcMSAk YWNfc3ltcHJmeFxcMiBcXDIiCi0rCi0rICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmll cnMuCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4qWyAJ XVwoJHN5bWNvZGUkc3ltY29kZSpcKVsgCV1bIAldKiRhY19zeW1wcmZ4JHN5bXBhdCRvcHRfY3Ik LyRzeW14ZnJtL3AnIgotKwotKyAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBj b3JyZWN0bHkuCi0rICBwaXBlX3dvcmtzPW5vCi0rCi0rICBybSAtZiBjb25mdGVzdCoKLSsgIGNh dCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4g IkMiIHsKLSsjZW5kaWYKLStjaGFyIG5tX3Rlc3RfdmFyOwotK3ZvaWQgbm1fdGVzdF9mdW5jKCl7 fQotKyNpZmRlZiBfX2NwbHVzcGx1cwotK30KLSsjZW5kaWYKLStpbnQgbWFpbigpe25tX3Rlc3Rf dmFyPSdhJztubV90ZXN0X2Z1bmMoKTtyZXR1cm4oMCk7fQotK0VPRgotKwotKyAgaWYgeyAoZXZh bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAk YWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRo ZW4KLSsgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCi0rICAgIG5saXN0PWNvbmZ0 ZXN0Lm5tCi0rICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJE5NIGNvbmZ0 ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0 XCIiKSA+JjUKLSsgIChldmFsICROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgotKyAgICAgICMgVHJ5IHNv cnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCi0rICAgICAgaWYgc29ydCAiJG5saXN0 IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KLSsJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCi0r ICAgICAgZWxzZQotKwlybSAtZiAiJG5saXN0IlQKLSsgICAgICBmaQotKwotKyAgICAgICMgTWFr ZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KLSsgICAgICBp ZiBncmVwICcgbm1fdGVzdF92YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCWlmIGdy ZXAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgY2F0IDw8 RU9GID4gY29uZnRlc3QuJGFjX2V4dAotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIg ewotKyNlbmRpZgotKwotK0VPRgotKwkgICMgTm93IGdlbmVyYXRlIHRoZSBzeW1ib2wgZmlsZS4K LSsJICBldmFsICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3Qi IHwgZ3JlcCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQnCi0rCi0rCSAgY2F0IDw8RU9GID4+ IGNvbmZ0ZXN0LiRhY19leHQKLSsjaWYgZGVmaW5lZCAoX19TVERDX18pICYmIF9fU1REQ19fCi0r IyBkZWZpbmUgbHRfcHRyX3Qgdm9pZCAqCi0rI2Vsc2UKLSsjIGRlZmluZSBsdF9wdHJfdCBjaGFy ICoKLSsjIGRlZmluZSBjb25zdAotKyNlbmRpZgotKwotKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4g c3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAqLwotK2NvbnN0IHN0cnVjdCB7Ci0rICBjb25zdCBj aGFyICpuYW1lOwotKyAgbHRfcHRyX3QgYWRkcmVzczsKLSt9Ci0rbHRfcHJlbG9hZGVkX3N5bWJv bHNbXSA9Ci0rewotK0VPRgotKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBc KC4qXCkkLyAge1wiXDJcIiwgKGx0X3B0cl90KSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgZ3JlcCAt diBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsJICBjYXQgPDxcRU9GID4+IGNvbmZ0ZXN0LiRh Y19leHQKLSsgIHswLCAobHRfcHRyX3QpIDB9Ci0rfTsKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMK LSt9Ci0rI2VuZGlmCi0rRU9GCi0rCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4K LSsJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKLSsJICBsdF9z YXZlX0xJQlM9IiRMSUJTIgotKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwkgIExJQlM9 ImNvbmZ0c3RtLiRhY19vYmpleHQiCi0rCSAgQ0ZMQUdTPSIkQ0ZMQUdTJGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnIgotKwkgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86 IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1 cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07 IHRoZW4KLSsJICAgIHBpcGVfd29ya3M9eWVzCi0rCSAgZmkKLSsJICBMSUJTPSIkbHRfc2F2ZV9M SUJTIgotKwkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdTIgotKwllbHNlCi0rCSAgZWNobyAiY2Fu bm90IGZpbmQgbm1fdGVzdF9mdW5jIGluICRubGlzdCIgPiY1Ci0rCWZpCi0rICAgICAgZWxzZQot KwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mNQotKyAgICAgIGZp Ci0rICAgIGVsc2UKLSsgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlIiA+JjUKLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgZWNobyAiJHByb2duYW1lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r ICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgotKwotKyAgIyBEbyBub3QgdXNlIHRo ZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgotKyAgaWYgdGVzdCAiJHBpcGVf d29ya3MiID0geWVzOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3BpcGU9Ci0rICBmaQotK2RvbmUKLSsKLStmaQotKwotK2lmIHRlc3QgLXog IiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY2RlY2w9Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGZhaWxlZCIgPiY1Ci0rJGFzX2VjaG8g ImZhaWxlZCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogb2siID4mNQotKyRhc19lY2hvICJvayIgPiY2OyB9Ci0rZmkKLSsKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG9iamRpciIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIG9iamRpci4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zfb2JqZGly K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIHJtIC1mIC5saWJzIDI+L2Rldi9udWxsCi0rbWtkaXIgLmxpYnMgMj4vZGV2L251bGwKLStp ZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBsdF9jdl9vYmpkaXI9LmxpYnMKLStlbHNlCi0rICAj IE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90Lgot KyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkKLStybWRpciAubGlicyAyPi9kZXYvbnVsbAotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X29iamRpciIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9vYmpkaXIiID4mNjsgfQotK29iamRpcj0kbHRfY3Zfb2JqZGly Ci0rCi0rCi0rCi0rCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgIyBBSVggc29t ZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBz b21lCi0rICAjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50 IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4K LSsgIGlmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICBD T0xMRUNUX05BTUVTPQotKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUwotKyAgZmkKLSsgIDs7Ci0r ZXNhYwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90 aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKLSsjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxs IGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotK1hzZWQ9J3NlZCAtZSAxcy9e WC8vJwotK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtcXCJcXGAkXFxcXF1cKS9cXFwxL2cnCi0rCi0r IyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0r ZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woW1xcIlxcYFxcXFxdXCkvXFxcMS9nJwotKwotKyMgU2Vk IHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJp YWJsZSBpbiBhCi0rIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotK2RlbGF5X3Zhcmlh YmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0 aW9uIHRvIGF2b2lkIGFjY2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25zCi0r bm9fZ2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCi0rCi0rIyBDb25zdGFudHM6Ci0rcm09InJtIC1m IgotKwotKyMgR2xvYmFsIHZhcmlhYmxlczoKLStkZWZhdWx0X29maWxlPWxpYnRvb2wKLStjYW5f YnVpbGRfc2hhcmVkPXllcwotKwotKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAuYScg YXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBNU1ZDLAotKyMgd2hpY2ggbmVlZHMg Jy5saWInKS4KLStsaWJleHQ9YQotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgotK29m aWxlPSIkZGVmYXVsdF9vZmlsZSIKLSt3aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xkIgot KwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1hciIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotKyAgYWNf Y3ZfcHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNl Ci0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4g JFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAg ICBhY19jdl9wcm9nX0FSPSIke2FjX3Rvb2xfcHJlZml4fWFyIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2Zp Ci0rZmkKLStBUj0kYWNfY3ZfcHJvZ19BUgotK2lmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBUiIgPiY1Ci0rJGFzX2VjaG8gIiRB UiIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3Qg LXogIiRhY19jdl9wcm9nX0FSIjsgdGhlbgotKyAgYWNfY3RfQVI9JEFSCi0rICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgImFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KLStzZXQgZHVtbXkgYXI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQVIr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9BUj0i JGFjX2N0X0FSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgK LStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wcm9nX2FjX2N0X0FSPSJhciIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkK LStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQVI9 JGFjX2N2X3Byb2dfYWNfY3RfQVIKLStpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQVIiID4mNQotKyRhc19l Y2hvICIkYWNfY3RfQVIiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBp ZiB0ZXN0ICJ4JGFjX2N0X0FSIiA9IHg7IHRoZW4KLSsgICAgQVI9ImZhbHNlIgotKyAgZWxzZQot KyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m Mjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBBUj0kYWNfY3RfQVIKLSsg IGZpCi0rZWxzZQotKyAgQVI9IiRhY19jdl9wcm9nX0FSIgotK2ZpCi0rCi0raWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk e2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9wcm9nX1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgYWNf Y3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rICAgIGFjX2N2X3Byb2dfUkFOTElCPSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNf c2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rUkFOTElCPSRhY19jdl9wcm9nX1JBTkxJQgotK2lmIHRl c3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkUkFOTElCIiA+JjUKLSskYXNfZWNobyAiJFJBTkxJQiIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJ QiI7IHRoZW4KLSsgIGFjX2N0X1JBTkxJQj0kUkFOTElCCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0 IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3Mu Ci0rc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5M SUIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNf Y3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0icmFubGliIgotKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotK2ZpCi0rZmkKLSthY19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCi0raWYg dGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdF9SQU5MSUIiID4mNQotKyRhc19lY2hvICIkYWNfY3RfUkFOTElC IiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19j dF9SQU5MSUIiID0geDsgdGhlbgotKyAgICBSQU5MSUI9IjoiCi0rICBlbHNlCi0rICAgIGNhc2Ug JGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190 b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIFJBTkxJQj0kYWNfY3RfUkFOTElCCi0rICBm aQotK2Vsc2UKLSsgIFJBTkxJQj0iJGFjX2N2X3Byb2dfUkFOTElCIgotK2ZpCi0rCi0raWYgdGVz dCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0k MgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0rICBh Y19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK1NUUklQPSRhY19jdl9wcm9nX1NUUklQCi0raWYgdGVzdCAt biAiJFNUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JFNUUklQIiA+JjUKLSskYXNfZWNobyAiJFNUUklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVu Ci0rICBhY19jdF9TVFJJUD0kU1RSSVAKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1t eSBzdHJpcDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0 IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNf Y3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19j dF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAotK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJ UCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9T VFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9TVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0geDsgdGhlbgotKyAg ICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29s X3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMK LSsgICAgU1RSSVA9JGFjX2N0X1NUUklQCi0rICBmaQotK2Vsc2UKLSsgIFNUUklQPSIkYWNfY3Zf cHJvZ19TVFJJUCIKLStmaQotKwotKwotK29sZF9DQz0iJENDIgotK29sZF9DRkxBR1M9IiRDRkxB R1MiCi0rCi0rIyBTZXQgc2FuZSBkZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJpYWJsZXMKLSt0ZXN0 IC16ICIkQVIiICYmIEFSPWFyCi0rdGVzdCAteiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1jcnUK LSt0ZXN0IC16ICIkQVMiICYmIEFTPWFzCi0rdGVzdCAteiAiJENDIiAmJiBDQz1jYwotK3Rlc3Qg LXogIiRMVENDIiAmJiBMVENDPSRDQwotK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9 JENGTEFHUwotK3Rlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKLSt0ZXN0IC16 ICIkTEQiICYmIExEPWxkCi0rdGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgotK3Rlc3Qg LXogIiRNQUdJQ19DTUQiICYmIE1BR0lDX0NNRD1maWxlCi0rdGVzdCAteiAiJE5NIiAmJiBOTT1u bQotK3Rlc3QgLXogIiRTRUQiICYmIFNFRD1zZWQKLSt0ZXN0IC16ICIkT0JKRFVNUCIgJiYgT0JK RFVNUD1vYmpkdW1wCi0rdGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKLSt0ZXN0IC16ICIk U1RSSVAiICYmIFNUUklQPToKLSt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwot KwotKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hp dmVzLgotK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJwot K29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxpYicKLStvbGRfcG9zdHVuaW5z dGFsbF9jbWRzPQotKwotK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBjYXNlICRob3N0 X29zIGluCi0rICBvcGVuYnNkKikKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9z dGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKLSsgICAgOzsKLSsgICopCi0rICAg IG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRv bGRsaWIiCi0rICAgIDs7Ci0rICBlc2FjCi0rICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hp dmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLStmaQotKwotK2ZvciBjY190ZW1wIGluICRjb21w aWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29t cGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRp c3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikg YnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIg fCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIE9u bHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWly ZXMgaXQKLStjYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotK2ZpbGVfbWFnaWMqKQotKyAg aWYgdGVzdCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgotKyAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9Zmls ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZS4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkTUFH SUNfQ01EIGluCi0rW1xcLypdIHwgID86W1xcL10qKQotKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9 IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRo LgotKyAgOzsKLSsqKQotKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCi0rICBsdF9z YXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgIGFjX2R1bW15PSIvdXNyL2Jp biRQQVRIX1NFUEFSQVRPUiRQQVRIIgotKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0r ICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9 LgotKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxlOyB0aGVuCi0r ICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIvJHthY190b29sX3ByZWZpeH1maWxl IgotKyAgICAgIGlmIHRlc3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2Fz ZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9t YWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwo LipcKSJgCi0rCSAgTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZh bCAkZmlsZV9tYWdpY19jbWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAot KwkgICAgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAg IDoKLSsJICBlbHNlCi0rCSAgICBjYXQgPDxFT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUg Y29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCi0rKioqICRm aWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2du aXplLgotKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25p emUgc2hhcmVkIGxpYnJhcmllcwotKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUg Y3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQgb24gc2hhcmVk IGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAotKyoqKiBs aWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVs ZXNzLCB5b3UKLSsqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lz dGVtIG1hbmFnZXIgYW5kL29yIHRvCi0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKLSsKLStFT0YK LSsJICBmaSA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBicmVhawotKyAgICBmaQotKyAg ZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICBNQUdJQ19DTUQ9IiRsdF9zYXZlX01BR0lD X0NNRCIKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rCi0rTUFHSUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJ Q19DTUQiCi0raWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRNQUdJQ19DTUQiID4mNQotKyRhc19lY2hvICIkTUFHSUNf Q01EIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotK2lmIHRlc3QgLXogIiRs dF9jdl9wYXRoX01BR0lDX0NNRCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZp eCI7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBm aWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgZmlsZS4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkTUFHSUNfQ01EIGluCi0rW1xc LypdIHwgID86W1xcL10qKQotKyAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsqKQot KyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgIGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFSQVRP UiRQQVRIIgotKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIElGUz0iJGx0X3Nh dmVfaWZzIgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0 IC1mICRhY19kaXIvZmlsZTsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNf ZGlyL2ZpbGUiCi0rICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhl bgotKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotKwkiZmlsZV9tYWdpYyAiKikKLSsJ ICBmaWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVf bWFnaWMgXCguKlwpImAKLSsJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJ ICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYv bnVsbCB8Ci0rCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhl bgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgIGNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdhcm5p bmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywK LSsqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5v dCByZWNvZ25pemUuCi0rKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRv IHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCi0rKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZm ZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0Ci0rKioqIGRlcGVuZCBv biBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29s Ci0rKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBO ZXZlcnRoZWxlc3MsIHlvdQotKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8g eW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KLSsqKiogYnVnLWxpYnRvb2xAZ251Lm9yZwot KwotK0VPRgotKwkgIGZpIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAg IGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3Nh dmVfTUFHSUNfQ01EIgotKyAgOzsKLStlc2FjCi0rZmkKLSsKLStNQUdJQ19DTUQ9IiRsdF9jdl9w YXRoX01BR0lDX0NNRCIKLStpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1Ci0rJGFzX2VjaG8g IiRNQUdJQ19DTUQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBlbHNl Ci0rICAgIE1BR0lDX0NNRD06Ci0rICBmaQotK2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0r Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1kc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0 aWw7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERT WU1VVElMIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19EU1lNVVRJTD0iJERTWU1VVElMIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0RTWU1VVElMPSIk e2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStEU1lN VVRJTD0kYWNfY3ZfcHJvZ19EU1lNVVRJTAotK2lmIHRlc3QgLW4gIiREU1lNVVRJTCI7IHRoZW4K LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICREU1lNVVRJTCIgPiY1Ci0r JGFzX2VjaG8gIiREU1lNVVRJTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsK LSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0RTWU1VVElMIjsgdGhlbgotKyAgYWNf Y3RfRFNZTVVUSUw9JERTWU1VVElMCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRz eW11dGlsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVt bXkgZHN5bXV0aWw7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElMIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9E U1lNVVRJTD0iJGFjX2N0X0RTWU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMPSJkc3ltdXRpbCIKLSsgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9J RlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRFNZTVVUSUw9JGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVU SUwKLStpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfRFNZTVVUSUwiID4mNQotKyRhc19lY2hvICIk YWNfY3RfRFNZTVVUSUwiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBp ZiB0ZXN0ICJ4JGFjX2N0X0RTWU1VVElMIiA9IHg7IHRoZW4KLSsgICAgRFNZTVVUSUw9IjoiCi0r ICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5 ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERTWU1VVElM PSRhY19jdF9EU1lNVVRJTAotKyAgZmkKLStlbHNlCi0rICBEU1lNVVRJTD0iJGFjX2N2X3Byb2df RFNZTVVUSUwiCi0rZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhl bgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW5tZWRp dCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7 YWNfdG9vbF9wcmVmaXh9bm1lZGl0OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX05NRURJVCtz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBpZiB0ZXN0IC1uICIkTk1FRElUIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19OTUVESVQ9IiROTUVE SVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0r ICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df Tk1FRElUPSIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2Zp Ci0rTk1FRElUPSRhY19jdl9wcm9nX05NRURJVAotK2lmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTk1FRElUIiA+JjUKLSsk YXNfZWNobyAiJE5NRURJVCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsK LStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX05NRURJVCI7IHRoZW4KLSsgIGFjX2N0X05N RURJVD0kTk1FRElUCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm5tZWRpdCIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG5tZWRpdDsg YWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9OTUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFj X2N0X05NRURJVCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUPSIkYWNfY3RfTk1F RElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwot KyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9n X2FjX2N0X05NRURJVD0ibm1lZGl0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBm aQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9O TUVESVQ9JGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUCi0raWYgdGVzdCAtbiAiJGFjX2N0X05NRURJ VCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9O TUVESVQiID4mNQotKyRhc19lY2hvICIkYWNfY3RfTk1FRElUIiA+JjY7IH0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9OTUVESVQiID0geDsgdGhlbgot KyAgICBOTUVESVQ9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStl c2FjCi0rICAgIE5NRURJVD0kYWNfY3RfTk1FRElUCi0rICBmaQotK2Vsc2UKLSsgIE5NRURJVD0i JGFjX2N2X3Byb2dfTk1FRElUIgotK2ZpCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCtzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9hcHBs ZV9jY19zaW5nbGVfbW9kPW5vCi0rICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9 IjsgdGhlbgotKyAgICMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUg ZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKyAgICMgYnkgZWl0aGVyIHNldHRpbmcgdGhlIGVudmly b25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQotKyAgICMgbm9uLWVtcHR5IGF0IGNvbmZp Z3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKLSsgICAjIGxpbmsg ZmxhZ3MuCi0rICAgZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMK LSsgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAotKyAg ICAgLWR5bmFtaWNsaWIgJHt3bH0tc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jCi0rICAgaWYgdGVz dCAtZiBsaWJjb25mdGVzdC5keWxpYjsgdGhlbgotKyAgICAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xl X21vZD15ZXMKLSsgICAgIHJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsgICBmaQotKyAgIHJt IGNvbmZ0ZXN0LmMKLSsgICAgICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID4mNQotKyRhc19lY2hvICIkbHRf Y3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY2OyB9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZyIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlu a2VyIGZsYWcuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJv bHNfbGlzdCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZl X0xERkxBR1M9JExERkxBR1MKLSsgICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsg ICAgICBMREZMQUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVz dC5zeW0iCi0rICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNf Y193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAm JiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAg fTsgdGhlbgotKyAgbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllcwotK2Vsc2UKLSsg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19s aXN0PW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0r ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBMREZMQUdTPSIk c2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9j dl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNjsgfQotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuWzAxMjNdKQotKyAgICAgIF9sdF9kYXJfYWxsb3df dW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKLSsgICAgZGFyd2lu MS4qKQotKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNl ICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKyAgICBkYXJ3aW4qKQotKyAgICAg ICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVm YXVsdHMKLSsgICAgICAjIHRvIHRoZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0 aGUgZGVwbG95bWVudAotKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlv dSBsb3ZlIGl0PwotKyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0s JGhvc3QgaW4KLSsgICAxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbls5MV0qKQotKyAg ICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNf bG9va3VwJyA7OwotKyAgIDEwLlswMTJdKikKLSsgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVk PScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsK LSsgICAxMC4qKQotKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5l ZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMK LSsgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2QiID0gInllcyI7IHRoZW4K LSsgICAgICBfbHRfZGFyX3NpbmdsZV9tb2Q9JyRzaW5nbGVfbW9kdWxlJwotKyAgICBmaQotKyAg ICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nICR7d2x9LWV4cG9ydGVkX3N5bWJvbHNfbGlz dCwkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltJwotKyAgICBlbHNlCi0r ICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0ifiROTUVESVQgLXMgXCRvdXRwdXRfb2JqZGlyL1wk e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltIFwke2xpYn0iCi0rICAgIGZpCi0rICAgIGlmIHRlc3Qg IiREU1lNVVRJTCIgIT0gIjoiOyB0aGVuCi0rICAgICAgX2x0X2RzeW11dGlsPSJ+JERTWU1VVElM IFwkbGliIHx8IDoiCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZHN5bXV0aWw9Ci0rICAgIGZpCi0r ICAgIDs7Ci0rICBlc2FjCi0rCi0rCi0rZW5hYmxlX2Rsb3Blbj1ubwotK2VuYWJsZV93aW4zMl9k bGw9bm8KLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1sb2NrIHdhcyBnaXZl bi4KLStpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4KLSsg IGVuYWJsZXZhbD0kZW5hYmxlX2xpYnRvb2xfbG9jazsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxl X2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCi0rCi0rCi0r IyBDaGVjayB3aGV0aGVyIC0td2l0aC1waWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9w aWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0iJHdp dGh2YWwiCi0rZWxzZQotKyAgcGljX21vZGU9ZGVmYXVsdAotK2ZpCi0rCi0rdGVzdCAteiAiJHBp Y19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0Ci0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQg Y29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKLSt0YWduYW1lPQotK2x0X3NhdmVf Q0M9IiRDQyIKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGls ZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xp bms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2Nv bXBpbGVyX2dudQotKwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291 cmNlcy4KLSthY19leHQ9YwotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxl ZCBDIHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK29iamV4dD0kb2JqZXh0Ci0rCi0rIyBDb2Rl IHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQg aW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBtYWlu KCl7cmV0dXJuKDApO30nCi0rCi0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQs IHVzZSBDQy4KLStMVENDPSR7TFRDQy0iJENDIn0KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgZmxh Z3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCi0rTFRDRkxBR1M9JHtMVENGTEFHUy0iJENG TEFHUyJ9Ci0rCi0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50 cy4KLStjb21waWxlcj0kQ0MKLSsKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Yg c2ltcGxlIHRlc3QgY29kZQotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAi JGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29u ZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAot KyRybSBjb25mdGVzdCoKLSsKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hv ICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRh Y19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0 LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJHJtIC1y IGNvbmZ0ZXN0KgotKwotKwotKwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPQot KwotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1 aWx0aW5fZmxhZz0nIC1mbm8tYnVpbHRpbicKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2Vw dGlvbnMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAt Zm5vLXJ0dGkgLWZuby1leGNlcHRpb25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9w cm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlf ZXhjZXB0aW9ucz1ubwotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNo byAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAg bHRfY29tcGlsZXJfZmxhZz0iLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKLSsgICAjIEluc2Vy dCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBv cgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMp IGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90 IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWdu IChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAg IyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVz aW5nIHNlZC4KLSsgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsg ICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAg LWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1l ICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjgx NzU6ICRsdF9jb21waWxlXCIiID4mNSkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRl c3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAg ZWNobyAiJGFzX21lOjgxNzk6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRh Y19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUgY29t cGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6 ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRo ZSB1c3VhbCBvdXRwdXQuCi0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUi IHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14g KisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25m dGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRo ZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnM9eWVzCi0rICAg ICBmaQotKyAgIGZpCi0rICAgJHJtIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25z IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+ JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25z IiA9IHh5ZXM7IHRoZW4KLSsgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9IiRs dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25z IgotK2Vsc2UKLSsgICAgOgotK2ZpCi0rCi0rZmkKLSsKLStsdF9wcm9nX2NvbXBpbGVyX3dsPQot K2x0X3Byb2dfY29tcGlsZXJfcGljPQotK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPQotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0 byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBv cHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsgIGlmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctc3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAg ICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9j ZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBs ZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICMg YWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhp bmcgYmV0dGVyLAotKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAg ICA7OwotKwotKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2Yz KiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNl IE9TZXMuCi0rICAgICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3My KikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVs bCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEg ZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAgICAjIEFs dGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Ig b2xkLXN0eWxlCi0rICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JUJwotKyAgICAgIDs7Ci0rCi0r ICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24g dGhpcyBwbGF0Zm9ybQotKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhf RFlMSUIgZmlsZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24nCi0r ICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdj YyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5z dGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7 Ci0rCi0rICAgIG1zZG9zZGpncHAqKQotKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0Mg ZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCi0rICAgICAgIyBv biBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICA7 OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgot KwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBI UC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0r ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0 aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJ QycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQot KyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdo IHRoZSBzeXN0ZW0gY29tcGlsZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikK LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGlmIHRlc3QgIiRob3N0 X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29y Ci0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBlbHNlCi0rCWx0 X3Byb2dfY29tcGlsZXJfc3RhdGljPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rICAg ICAgZmkKLSsgICAgICA7OwotKyAgICAgIGRhcndpbiopCi0rICAgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBh bGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r ICAgICAgICAgeGxjKikKLSsgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXFub2NvbW1v bicKLSsgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICAgIDs7Ci0r ICAgICAgIGVzYWMKLSsgICAgICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIq IHwgb3MyKikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBj YW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9u IGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JUJwotKyAgICAgIDs7Ci0rCi0rICAg IGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9 Jy1XbCwnCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0 LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQK LSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0nK1onCi0rCTs7Ci0rICAg ICAgZXNhYwotKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPwotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljPScke3dsfS1hICR7d2x9YXJjaGl2ZScKLSsgICAgICA7OwotKwotKyAgICBpcml4 NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1X bCwnCi0rICAgICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBu ZXdzb3M2KQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgbGludXgq IHwgaypic2QqLWdudSkKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGljYyog fCBlY2MqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwlsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLUtQSUMnCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctc3RhdGljJwotKyAgICAg ICAgOzsKLSsgICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikKLSsgICAgICAg ICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGls ZXIsCi0rCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCi0rCWx0X3Byb2dfY29t cGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycKLSsJbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBjY2MqKQot KyAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhh IGNvZGUgaXMgUElDLgotKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hh cmVkJwotKyAgICAgICAgOzsKLSsgICAgICAqKQotKyAgICAgICAgY2FzZSBgJENDIC1WIDI+JjEg fCBzZWQgNXFgIGluCi0rCSpTdW5cIEMqKQotKwkgICMgU3VuIEMgNS45Ci0rCSAgbHRfcHJvZ19j b21waWxlcl9waWM9Jy1LUElDJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRp YycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwkgIDs7Ci0rCSpTdW5cIEYqKQot KwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRo ZSBsaW5rZXIKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJ ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMq 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 ICAgIGVzYWMKLSsgIGZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGx0X3Byb2dfY29tcGlsZXJfcGljIiA+JjUKLSskYXNfZWNobyAiJGx0X3Byb2dfY29tcGlsZXJf cGljIiA+JjY7IH0KLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFj dHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWMiOyB0 aGVuCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxl ciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3MiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29y a3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPW5vCi0rICBhY19vdXRmaWxlPWNvbmZ0 ZXN0LiRhY19vYmpleHQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+ IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBsdF9jb21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxl cl9waWMgLURQSUMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRo ZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRh aW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRh Y19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMK LSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hv dWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBh IHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21w aWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAg IChldmFsIGVjaG8gIlwiXCRhc19tZTo4NDY1OiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2 YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo4NDY5OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0Zmls ZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0 aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBh cmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJGVjaG8gIlgk X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4 cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIy Ci0rICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNv bmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRybSBjb25mdGVzdCoKLSsKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBp bGVyX3BpY193b3JrcyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193 b3JrcyIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jr cyIgPSB4eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljIGluCi0rICAg ICAiIiB8ICIgIiopIDs7Ci0rICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpYz0iICRsdF9wcm9n X2NvbXBpbGVyX3BpYyIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGls ZXJfcGljPQotKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCi0rZmkK LSsKLStmaQotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBu b3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgotKyAgKmRqZ3BwKikKLSsgICAg bHRfcHJvZ19jb21waWxlcl9waWM9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9wcm9nX2NvbXBp bGVyX3BpYz0iJGx0X3Byb2dfY29tcGlsZXJfcGljIC1EUElDIgotKyAgICA7OwotK2VzYWMKLSsK LSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtz LgotKyMKLSt3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1c IiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdv cmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcg JGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zf cHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNf d29ya3M9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZM QUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVz dC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBs aW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6 ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVz dCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0 aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRl Y2hvICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0 ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25m dGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2 L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15 ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9z dGF0aWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJHJtIC1yIGNvbmZ0ZXN0Kgot KyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNQot KyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNjsgfQotKwot K2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MiID0geHllczsgdGhl bgotKyAgICA6Ci0rZWxzZQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0KLStmaQotKwot KwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3Vw cG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBp ZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbytzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVy X2Nfbz1ubwotKyAgICRybSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0 ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxl X2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxl cl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9w dGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAj ICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUg ZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWlu IGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEg aHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBp bGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFc fSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwu OiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2Zs YWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6ODU2OTogJGx0X2NvbXBpbGVcIiIgPiY1 KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0 YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTo4 NTczOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0 ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNv bXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25p emVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRlY2hv ICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2Nv bmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIg Pm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8 IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4K LSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCi0rICAgICBmaQotKyAgIGZpCi0r ICAgY2htb2QgdSt3IC4gMj4mNQotKyAgICRybSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29t cGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1w bGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJHJtIG91dC9p aV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRybSBvdXQvKiAmJiBybWRpciBv dXQKLSsgICBjZCAuLgotKyAgIHJtZGlyIGNvbmZ0ZXN0Ci0rICAgJHJtIGNvbmZ0ZXN0KgotKwot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29t cGlsZXJfY19vIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7 IH0KLSsKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2df Y29tcGlsZXJfY19vIiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgotKyAg IyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRo ZSB1c2VyCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2Fu IGxvY2sgd2l0aCBoYXJkIGxpbmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBj YW4gbG9jayB3aXRoIGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KLSsgIGhhcmRfbGlua3M9eWVzCi0r ICAkcm0gY29uZnRlc3QqCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwg JiYgaGFyZF9saW5rcz1ubwotKyAgdG91Y2ggY29uZnRlc3QuYQotKyAgbG4gY29uZnRlc3QuYSBj b25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1ubwotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVz dC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRoYXJkX2xpbmtzIiA+JjUKLSskYXNfZWNobyAiJGhhcmRfbGlua3Mi ID4mNjsgfQotKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxg LWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2Ug LWonIG1heSBiZSB1bnNhZmUiID4mMjt9Ci0rICAgIG5lZWRfbG9ja3M9d2FybgotKyAgZmkKLStl bHNlCi0rICBuZWVkX2xvY2tzPW5vCi0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBz aGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAk Y29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7 IH0KLSsKLSsgIHJ1bnBhdGhfdmFyPQotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICBlbmFi bGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPW5vCi0rICBhcmNoaXZlX2NtZHM9Ci0rICBh cmNoaXZlX2V4cHN5bV9jbWRzPQotKyAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcz0KLSsgIG9s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPQotKyAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj PQotKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWM9 Ci0rICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQotKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZD0KLSsgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9Ci0rICBoYXJkY29kZV9kaXJl Y3Q9bm8KLSsgIGhhcmRjb2RlX21pbnVzX0w9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9 dW5zdXBwb3J0ZWQKLSsgIGxpbmtfYWxsX2RlcGxpYnM9dW5rbm93bgotKyAgaGFyZGNvZGVfYXV0 b21hdGljPW5vCi0rICBtb2R1bGVfY21kcz0KLSsgIG1vZHVsZV9leHBzeW1fY21kcz0KLSsgIGFs d2F5c19leHBvcnRfc3ltYm9scz1ubwotKyAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJv YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8v J1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgIyBpbmNsdWRlX2V4cHN5 bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3 YXlzKgotKyAgIyBpbmNsdWRlZCBpbiB0aGUgc3ltYm9sIGxpc3QKLSsgIGluY2x1ZGVfZXhwc3lt cz0KLSsgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Ygc3lt Ym9scyB0byBleGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBgKSQn LCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5lLiAg RXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5kIGBi YycsCi0rICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsgIGV4 Y2x1ZGVfZXhwc3ltcz0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJwot KyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBu YW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBi dXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBs aWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5 IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRl IGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJl ZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgotKyAgZXh0cmFj dF9leHBzeW1zX2NtZHM9Ci0rICAjIEp1c3QgYmVpbmcgcGFyYW5vaWQgYWJvdXQgZW5zdXJpbmcg dGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCi0rICBmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsg ZG8KLSsgIGNhc2UgJGNjX3RlbXAgaW4KLSsgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBj Y2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OwotKyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBw dXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFrOzsK LSsgIGVzYWMKLStkb25lCi0rY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhzZWQg LWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCi0rCi0rICBjYXNlICRob3N0X29z IGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZD KysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVu IG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsg ICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0 aGVuCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgq KQotKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0g TVNWQysrKQotKyAgICB3aXRoX2dudV9sZD15ZXMKLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAg ICB3aXRoX2dudV9sZD1ubwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgbGRfc2hsaWJzPXllcwot KyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICAjIElmIGFyY2hpdmVf Y21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQotKyAgICB3bGFyYz0n JHt3bH0nCi0rCi0rICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJl ZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCi0rICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJl ZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQotKyAgICAjIGhlcmUg YWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCi0rICAgIHJ1bnBhdGhf dmFyPUxEX1JVTl9QQVRICi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LS1y cGF0aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0t LWV4cG9ydC1keW5hbWljJwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0t d2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25v LXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCi0rCXdob2xlX2FyY2hpdmVfZmxhZ19z cGVjPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13 aG9sZS1hcmNoaXZlJwotKyAgICAgIGVsc2UKLSsgIAl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0K LSsgICAgZmkKLSsgICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCi0rICAgIGNhc2UgYCRM RCAtdiAyPi9kZXYvbnVsbGAgaW4KLSsgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAq XCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4w LjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAg ICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBN YW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lv bnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMK LSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4WzMtOV0qKQotKyAgICAgICMgT24gQUlYL1BQQywg dGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUi ICE9IGlhNjQ7IHRoZW4KLSsJbGRfc2hsaWJzPW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioq IFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBp cyByZXBvcnRlZAotKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBs aWJyYXJpZXMgb24gQUlYLgotKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNo YXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hh cmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28g dGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VP RgotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2 ZV9jbWRzPSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmlu ZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8g IiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGli cmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJ QiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51 c19MPXllcwotKwotKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5v cGVucHJvamVjdHMubmV0PiByZXBvcnRzCi0rICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2Yg ZHluYW1pYyBsaWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKLSsgICAgICAjIHRvIHZl cnNpb24gNCwgaXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQK LSsgICAgICAjIHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vz bid0IG1hdGNoIHRoZQotKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBv dGhlciBwbGF0Zm9ybXMsIHdlIGNhbid0IHVzZQotKyAgICAgICMgdGhlbS4KLSsgICAgICBsZF9z aGxpYnM9bm8KLSsgICAgICA7OwotKwotKyAgICBiZW9zKikKLSsgICAgICBpZiAkTEQgLS1oZWxw IDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRo ZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2Vu YmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBv cnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1F Ci0rCWFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJ bGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBjeWd3aW4qIHwgbWlu Z3cqIHwgcHczMiopCi0rICAgICAgIyBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBu byBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctTCRsaWJkaXInCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsg ICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGli b2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15b QkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvJ1wnJyAtZSAnXCcnL15bQUlUV11b IF0vcy8uKlsgXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwotKyAg ICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsg dGhlbgotKyAgICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxl LWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsJ IyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3Qg bGluZQotKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4u LgotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1i b2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29i amRpci8kc29uYW1lLmRlZjsKLSsJZWxzZQotKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZGVmOwotKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpk aXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgotKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29u YW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1p bXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3NobGlicz1ubwotKyAgICAg IGZpCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICBoYXJkY29kZV9k aXJlY3Q9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCi0rICAgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMu eCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgotKyAgICAg ICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2Ug KDB4MTAwMDAwMDAgYnkKLSsgICAgICAjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBj b25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0rICAgICAgIyBjb25zdW1pbmcg YW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9t LAotKyAgICAgICMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAw IGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKLSsgICAgICAjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAw eDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsgICAgICBhcmNoaXZl X2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQk fSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgYXJj aGl2ZV9leHBzeW1fY21kcz0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9v YmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xz LWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKLSsgICAgICA7OwotKwotKyAgICBnbnUqIHwgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAg ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lLCRo b3N0X2NwdSBpbgotKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0rCSAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGlu ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVu Y2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5p ZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNf ZmxhZycKLSsJICA7OwotKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3Jv dXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7 d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3Qg IC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252 XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKLSsJZWNjKixp YTY0KiB8IGljYyosaWE2NCopCQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9h ZGRmbGFnPScgLWlfZHluYW1pYycgOzsKLSsJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJ bnRlbCBGb3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFt aWMgLW5vZm9yX21haW4nIDs7Ci0rCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNv bXBpbGVyCi0rCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKLSsJZXNhYwotKwljYXNl IGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJ ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZl bmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252 XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAk ZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAg dG1wX3NoYXJlZGZsYWc9Jy1HJyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwot KwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKikKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXNo YXJlZCcgOzsKLSsJZXNhYwotKwlhcmNoaXZlX2NtZHM9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIi JHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0rCWlmIHRlc3QgJHN1cHBvcnRzX2Fub25fdmVy c2lvbmluZyA9IHllczsgdGhlbgotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRlY2hvICJ7IGds b2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKyAgY2F0ICRleHBvcnRfc3lt Ym9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu dmVyfgotKyAgJGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu dmVyfgotKwkgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZl cnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0r CWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVw IF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJs ZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCi0rCXdsYXJjPQotKyAg ICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2 ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHds JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBz b2xhcmlzKikKLSsgICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYv bnVsbDsgdGhlbgotKwlsZF9zaGxpYnM9bm8KLSsJY2F0IDw8RU9GIDE+JjIKLSsKLSsqKiogV2Fy bmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJs eQotKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVy ZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9y dC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2Ug Mi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQ QVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBp cwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VPRgotKyAgICAgIGVsaWYgJExE IC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9u dWxsOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hp dmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3 bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0r ICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYq IHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQotKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgot KyAgICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xWzAtNV0uKikKLSsJbGRf c2hsaWJzPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBSZWxlYXNl cyBvZiB0aGUgR05VIGxpbmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90Ci0rKioqIHJl bGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3Jl LCBsaWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBX ZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYu OTEuMC4zIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlvdXIg UEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIg aXMKLSsqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rCTs7Ci0rCSop Ci0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBl bGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSdg dGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tcnBhdGgsJGxpYmRpcmAnCi0rCSAg ICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25h bWUgLW8gJGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUsXCR7U0NPQUJTUEFUSDor JHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUsLXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCi0rCSAgZWxzZQotKwkgICAgbGRfc2hsaWJzPW5vCi0rCSAgZmkKLSsJ OzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBhcmNo aXZlX2NtZHM9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgd2xhcmM9Ci0rICAgICAgaGFyZGNv ZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7 OwotKwotKyAgICAqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9y dGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsg ICAgICBlbHNlCi0rCWxkX3NobGlicz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNh YwotKwotKyAgICBpZiB0ZXN0ICIkbGRfc2hsaWJzIiA9IG5vOyB0aGVuCi0rICAgICAgcnVucGF0 aF92YXI9Ci0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KLSsgICAgICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0rICAg IGZpCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3Vy IHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICBhaXgzKikKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAg IGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSck TEQgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzIC1iRTokZXhwb3J0X3N5bWJvbHMgLVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdT ICRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKLSsgICAgICAjIE5vdGU6IHRoaXMgbGlua2Vy IGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQotKyAgICAgICMg YXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KLSsgICAgICBoYXJkY29kZV9taW51 c19MPXllcwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KLSsJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5v ciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCi0rCSMgYnJva2VuIGNvbGxlY3Qy LgotKwloYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIGFpeFs0LTldKikKLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgotKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1 bHQsIHNvIHdlIGRvbid0Ci0rCSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgotKwlhaXhf dXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rCW5vX2Vu dHJ5X2ZsYWc9IiIKLSsgICAgICBlbHNlCi0rCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVu IHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgotKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRv IEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0rCWlmICROTSAt ViAyPiYxIHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGV4cG9ydF9zeW1ib2xz X2NtZHM9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChc JDIgPT0gIlQiKSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwk MywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9z eW1ib2xzJwotKwllbHNlCi0rCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CQ3BnICRsaWJv YmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09 ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJp bnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKwlmaQotKwlhaXhf dXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rCSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVz ZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAotKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAt YnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSsJIyBuZWVkIHRvIGRvIHJ1bnRpbWUg bGlua2luZy4KLSsJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUt OV0qKQotKwkgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbwotKyAgCSAgaWYgKHRlc3QgJGxk X2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KLSsg IAkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsgIAkgICAgYnJlYWsKLSsgIAkgIGZp Ci0rCSAgZG9uZQotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcK LSsJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBXaGVu IGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNh bgotKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMu ICBJZiBsaW5raW5nIGEgbGlicmFyeQotKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJl cnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICAgIyBDWFhGTEFH Uy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsg ICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERG TEFHUy4KLSsKLSsgICAgICBhcmNoaXZlX2NtZHM9JycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9 eWVzCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAgICBsaW5rX2Fs bF9kZXBsaWJzPXllcwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWNh c2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rCSMgV2Ugb25seSB3YW50 IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKwkjIGJlbG93IGZv ciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5h bWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNv bGxlY3QybmFtZSIgJiYgXAotKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCBy ZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKLSsJICB0aGVuCi0rICAJICAjIFdlIGhhdmUgcmV3 b3JrZWQgY29sbGVjdDIKLSsgIAkgIDoKLSsJICBlbHNlCi0rICAJICAjIFdlIGhhdmUgb2xkIGNv bGxlY3QyCi0rICAJICBoYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKLSsgIAkgICMgSXQgZmFp bHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsg IAkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29k ZV9taW51c19MCi0rICAJICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsgIAkg IGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct TCRsaWJkaXInCi0rICAJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQotKwkgIGZpCi0rCSAg OzsKLSsJZXNhYwotKwlzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJaWYgdGVzdCAiJGFpeF91c2Vf cnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxh ZyAiJyR7d2x9LUcnCi0rCWZpCi0rICAgICAgZWxzZQotKwkjIG5vdCB1c2luZyBnY2MKLSsJaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgIAkjIFZpc3VhbEFnZSBDKyssIFZlcnNp b24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKyAgCSMgY2hva2Vz IG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2Zs YWc9Jy1HJwotKwllbHNlCi0rCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0g eWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICBlbHNlCi0rCSAgICBz aGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJwotKwkgIGZpCi0rCWZpCi0rICAgICAgZmkKLSsKLSsg ICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVn aW5uaW5nIHdpdGgKLSsgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8g Z2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgotKyAgICAgIGFsd2F5c19leHBv cnRfc3ltYm9scz15ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIg PSB5ZXM7IHRoZW4KLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGlt ZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVy cm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJYWxsb3dfdW5kZWZpbmVk X2ZsYWc9Jy1iZXJvaycKLSsgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBm cm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8 Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsKLStsdF9h aXhfbGlicGF0aF9zZWQ9JwotKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCS9e MC8gewotKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0rCSAgICBwCi0rCX0KLSsgICAgfScKLSth aXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VE IC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsjIENoZWNrIGZvciBhIDY0LWJpdCBvYmpl Y3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRo IjsgdGhlbgotKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+ L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rZmkKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRl c3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRo PSIvdXNyL2xpYjovbGliIjsgZmkKLSsKLSsgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJYXJjaGl2ZV9leHBz eW1fY21kcz0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxp YnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZWNobyAiJHt3bH0ke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9y dF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIg JGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIteiBub2Rl ZnMiCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2Zs YWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3ds fSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUg dGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4 ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChh Y190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9 OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmlu Z3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAot Kwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+ L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBm b3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3Qg LXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9z ZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0r Ci0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsg dGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rCSBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkg ICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxh Z3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVj ZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIG5vX3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVybm90 b2snCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9y dGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2 ZXMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJGNvbnZlbmllbmNlJwotKwkgIGFyY2hp dmVfY21kc19uZWVkX2xjPXllcwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJh ZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9leHBz eW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTok ZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlm aQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2 ZV9jbWRzPSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmlu ZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8g IiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGli cmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJ QiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51 c19MPXllcwotKyAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGljcyBv biB0aGUgR05VIGxkIHNlY3Rpb24KLSsgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7OwotKwot KyAgICBic2RpWzQ1XSopCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1yZHluYW1p YwotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgICAj IFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2lu ZwotKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAg ICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nICcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKyAgICAg ICMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rICAgICAg bGliZXh0PWxpYgotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3Qg LnNvIGZpbGVzLgotKyAgICAgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgICAgICMgRklYTUU6IFNl dHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsgICAgICBhcmNoaXZlX2NtZHM9 JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZWNobyAiJGRlcGxpYnMiIHwg JFNFRCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKyAgICAg ICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2Ug YnVpbGQgYSBETEwuCi0rICAgICAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcz0ndHJ1ZScKLSsg ICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFt LgotKyAgICAgIG9sZF9hcmNoaXZlX2NtZHM9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRf ZGVwbGlicycKLSsgICAgICBmaXhfc3JjZmlsZV9wYXRoPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUi YCcKLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAg IDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICAgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyXSkKLSsgICAgICAgICBhbGxvd191 bmRlZmluZWRfZmxhZz0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAgICAg OzsKLSsgICAgICAgKikgIyBEYXJ3aW4gMS4zIG9uCi0rICAgICAgICAgaWYgdGVzdCAteiAke01B Q09TWF9ERVBMT1lNRU5UX1RBUkdFVH0gOyB0aGVuCi0rICAgICAgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZz0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJl c3MnCi0rICAgICAgICAgZWxzZQotKyAgICAgICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5U X1RBUkdFVH0gaW4KLSsgICAgICAgICAgICAgMTAuWzAxMl0pCi0rICAgICAgICAgICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAk e3dsfXN1cHByZXNzJwotKyAgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAgIDEwLiopCi0r ICAgICAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXVuZGVmaW5lZCAke3ds fWR5bmFtaWNfbG9va3VwJwotKyAgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICBlc2FjCi0r ICAgICAgICAgZmkKLSsgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sYz1ubwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubwotKyAgICAgIGhhcmRjb2Rl X2F1dG9tYXRpYz15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVuc3VwcG9ydGVk Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JycKLSsgICAgICBsaW5rX2FsbF9kZXBs aWJzPXllcwotKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyA7IHRoZW4KLSsgICAgCW91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKyAgICAgICAgYXJjaGl2ZV9jbWRzPSJcJENDIC1keW5h bWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGli cyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0 cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICAgbW9kdWxl X2NtZHM9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGli b2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgICAg IGFyY2hpdmVfZXhwc3ltX2NtZHM9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBc JG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xp YiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcg JHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGls fSIKLSsgICAgICAgIG1vZHVsZV9leHBzeW1fY21kcz0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBv cnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5c JENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRk ZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgotKyAgICBlbHNlCi0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgIHhs YyopCi0rICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAgICAgICAg YXJjaGl2ZV9jbWRzPSckQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7 d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgbW9kdWxl X2NtZHM9JyRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpz ICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgICAgICAjIERvbid0IGZpeCB0aGlzIGJ5 IHVzaW5nIHRoZSBsZCAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0IGRvZXNuJ3QgZXhp c3QgaW4gb2xkZXIgZGFyd2luIGxkcwotKyAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J3Nl ZCAtZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRl eHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+ JENDIC1xbWtzaHJvYmogJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29u YW1lICR4bGN2ZXJzdHJpbmd+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3lt Ym9scy5leHBzeW0gJHtsaWJ9JwotKyAgICAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHM9J3NlZCAt ZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBv cnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JEND ICRhbGxvd191bmRlZmluZWRfZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJz JGNvbXBpbGVyX2ZsYWdzfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltICR7bGlifScKLSsgICAgICAgICAgOzsKLSsgICAgICAgKikKLSsgICAgICAgICBs ZF9zaGxpYnM9bm8KLSsgICAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgZGd1eCopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgbGRfc2hsaWJz PW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8g aW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCi0rICAgICMgc3VwcG9ydC4g IEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNpdCBj KytydDAubwotKyAgICAjIGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlm aWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUKLSsgICAgIyBleHRyYSBzcGFjZSkuCi0r ICAgIGZyZWVic2QyLjIqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycK LSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFy ZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAg ICA7OwotKwotKyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0Qg MiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCi0rICAgIGZyZWVic2QyKikKLSsgICAgICBhcmNo aXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX21p bnVzX0w9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0r Ci0rICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hh cmVkIGxpYnJhcmllcy4KLSsgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgIGFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAg ICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v Ci0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1z aGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicK LSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+ JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0g JGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZmkKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVz Ci0rCi0rICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2gg UEFUSCwKLSsgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFy eS4KLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAgICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYz0nJHt3bH0tRScKLSsgICAgICA7OwotKwotKyAgICBocHV4MTAqKQotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckTEQgLWIgK2ggJHNvbmFtZSArYiAk aW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwot KyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yPToKLSsKLSsJaGFyZGNvZGVfZGlyZWN0PXllcwotKwlleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCi0rCi0rCSMgaGFyZGNvZGVfbWludXNfTDogTm90 IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwloYXJkY29kZV9taW51c19MPXllcwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsKLSsgICAgaHB1eDExKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAt YSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEq NjQqKQotKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2 NCopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAk e3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMg JHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAg ICAgZWxzZQotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2Nt ZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRD QyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hp dmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFs bF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg OzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5v OyB0aGVuCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGly JwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsKLSsJY2FzZSAkaG9zdF9jcHUgaW4K LSsJaHBwYSo2NCp8aWE2NCopCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nK2Ig JGxpYmRpcicKLSsJICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsJICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyPW5vCi0rCSAgOzsKLSsJKikKLSsJICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rCSAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDog Tm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQg bG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsJICA7 OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4Niog fCBub25zdG9wdXgqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3 bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJ YXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz IC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNp b24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSctcnBhdGggJGxp YmRpcicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9 LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToK LSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCop Ci0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYv bnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlhcmNo aXZlX2NtZHM9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAg ICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBvcGVuYnNkKikKLSsgICAgICBpZiB0ZXN0IC1mIC91 c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotKwloYXJkY29kZV9kaXJlY3Q9eWVzCi0rCWhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KLSsJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAt IHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNk Mi44LXBvd2VycGMiOyB0aGVuCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2Zs YWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2 ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9z eW1ib2xzJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJk aXInCi0rCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwllbHNlCi0rCSAg Y2FzZSAkaG9zdF9vcyBpbgotKwkgICBvcGVuYnNkWzAxXS4qIHwgb3BlbmJzZDIuWzAtN10gfCBv cGVuYnNkMi5bMC03XS4qKQotKwkgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rCSAgICAgOzsKLSsJICAgKikKLSsJICAgICBh cmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck e3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAgZXNhYwotKyAgICAgICAgZmkKLSsg ICAgICBlbHNlCi0rCWxkX3NobGlicz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg b3MyKikKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAg ICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1 cHBvcnRlZAotKyAgICAgIGFyY2hpdmVfY21kcz0nJGVjaG8gIkxJQlJBUlkgJGxpYm5hbWUgSU5J VElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJUFRJ T04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gREFU QSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUgTk9OU0hBUkVE IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIG9sZF9h cmNoaXZlX0Zyb21fbmV3X2NtZHM9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5h ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICA7OwotKwotKyAgICBvc2YzKikK LSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxh Zz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCWFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9y ZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAg ICAgZWxzZQotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicK LSsJYXJjaGl2ZV9jbWRzPSckTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5 ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0r ICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0rICAgICAgOzsKLSsKLSsgICAgb3Nm NCogfCBvc2Y1KikJIyBhcyBvc2YzKiB3aXRoIHRoZSBhZGRpdGlvbiBvZiAtbXN5bSBmbGFnCi0r ICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHM9JyRDQyAt c2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9 LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKLSsgICAgICBlbHNlCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29s dmVkIFwqJwotKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11 cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJ YXJjaGl2ZV9leHBzeW1fY21kcz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBw cmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25l OyBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkkTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9IC1pbnB1dCAkbGliLmV4cCAkbGlua2VyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJz IC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNp b24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGlifiRybSAkbGliLmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxl ciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct cnBhdGggJGxpYmRpcicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3I9OgotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIG5vX3VuZGVmaW5lZF9m bGFnPScgLXogdGV4dCcKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwl3bGFy Yz0nJHt3bH0nCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCAke3dsfSRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGliLmV4 cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFnc34kcm0gJGxpYi5leHAnCi0rICAgICAgZWxzZQotKwl3bGFyYz0nJwotKwlhcmNoaXZl X2NtZHM9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSck ZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1l ICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGli LmV4cH4KLSsgIAkkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kcm0gJGxpYi5l eHAnCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJk aXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rICAg ICAgKikKLSsJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBs aW5rZXIgb3B0aW9ucywKLSsJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdD QyBkaXNjYXJkcyBpdCB3aXRob3V0IGAkd2wnLAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBu b3QgdG8gcmVvcmRlci4KLSsgCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAy LjUuMT8pCi0rCWlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCSAgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWM9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3 bH1kZWZhdWx0ZXh0cmFjdCcKLSsJZWxzZQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSct eiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JwotKwlmaQotKwk7Owot KyAgICAgIGVzYWMKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwotKyAgICAgIDs7Ci0rCi0r ICAgIHN1bm9zNCopCi0rICAgICAgaWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsg dGhlbgotKwkjIFVzZSAkQ0MgdG8gbGluayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93 cyBpbiBzb21lIGV4dHJhIC5vCi0rCSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBz ZWN0aW9ucyB3b3JrLgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlh cmNoaXZlX2NtZHM9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcwot KyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KQotKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9y IGluCi0rCXNuaSkKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBoYXJkY29kZV9kaXJlY3Q9eWVz ICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PwotKwk7OwotKwlzaWVtZW5zKQotKwkgICMjIExEIGlz IGxkIGl0IG1ha2VzIGEgUExBTUxJQgotKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVs ZS4KLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCi0rCSAgcmVsb2FkX2NtZHM9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9v YmpzJwotKwkgIGhhcmRjb2RlX2RpcmVjdD1ubwotKyAgICAgICAgOzsKLSsJbW90b3JvbGEpCi0r CSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51 YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIGhhcmRjb2RlX3NobGli cGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICBzeXN2NC4zKikKLSsgICAgICBhcmNoaXZl X2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjPSctQmV4cG9ydCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpN UCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK LSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAot KwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKLSsJbGRfc2hsaWJzPXllcwotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4 V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKLSsgICAg ICBub191bmRlZmluZWRfZmxhZz0nJHt3bH0teix0ZXh0JwotKyAgICAgIGFyY2hpdmVfY21kc19u ZWVkX2xjPW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIHJ1bnBh dGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0n JENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UK LSsJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLUcg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsK LSsgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKLSsgICAgICAjIE5vdGU6IFdlIGNh biBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAot KyAgICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMg dXNlZCBmcm9tIGxpYmMgdG8KLSsgICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBt ZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsgICAgICAjIGV2ZXIgbGluayBjb3Jy ZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0Ci0rICAgICAg IyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMg aGVhdnktaGFuZGVkCi0rICAgICAgIyBhcyAteiBkZWZzLgotKyAgICAgIG5vX3VuZGVmaW5lZF9m bGFnPScke3dsfS16LHRleHQnCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXos bm9kZWZzJwotKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCi0rICAgICAgaGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9J2B0ZXN0 IC16ICIkU0NPQUJTUEFUSCIgJiYgZWNobyAke3dsfS1SLCRsaWJkaXJgJwotKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3I9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsg ICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJleHBvcnQnCi0rICAgICAgcnVu cGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCxcJHtTQ09BQlNQQVRIOisk e2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGli ZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgsXCR7U0NPQUJTUEFU SDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3dsfS1CZXhw b3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJk aXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgdXRzNCopCi0rICAgICAgYXJjaGl2ZV9jbWRz PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAg IGxkX3NobGlicz1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlicyIgPiY1Ci0rJGFzX2VjaG8gIiRs ZF9zaGxpYnMiID4mNjsgfQotK3Rlc3QgIiRsZF9zaGxpYnMiID0gbm8gJiYgY2FuX2J1aWxkX3No YXJlZD1ubwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/Ci0r IwotK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGMiIGluCi0reHx4eWVzKQotKyAgIyBBc3N1 bWUgLWxjIHNob3VsZCBiZSBhZGRlZAotKyAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9eWVzCi0rCi0r ICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KLSsgICAgY2FzZSAkYXJjaGl2ZV9jbWRzIGluCi0rICAgIConficqKQotKyAgICAgICMgRklY TUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsg ICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxl ciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAjIHN5c3Rl bXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAt bGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJl IGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KLSsgICAgICAk cm0gY29uZnRlc3QqCi0rICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIg PiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQot KyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4K LSsgICAgICAgIHNvbmFtZT1jb25mdGVzdAotKyAgICAgICAgbGliPWNvbmZ0ZXN0Ci0rICAgICAg ICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKLSsgICAgICAgIGRlcGxpYnM9Ci0rICAgICAg ICB3bD0kbHRfcHJvZ19jb21waWxlcl93bAotKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9w aWMKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYK LSsgICAgICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAg bGlibmFtZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0k YWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPQotKyAg ICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzIDJc PlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiIpID4mNQotKyAgKGV2 YWwgJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+ XCYxKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAg dGhlbgotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCi0rICAgICAgICBlbHNlCi0rCSAgYXJj aGl2ZV9jbWRzX25lZWRfbGM9eWVzCi0rICAgICAgICBmaQotKyAgICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAgICBlbHNlCi0rICAg ICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAgICRybSBjb25mdGVz dCoKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9j bWRzX25lZWRfbGMiID4mNQotKyRhc19lY2hvICIkYXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNjsg fQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0 aWNzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJp c3RpY3MuLi4gIiA+JjY7IH0KLStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSds aWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxs X2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFs PQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24K LSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLSsKLStpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3aW4qKSBsdF9h d2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19hcmc9Ii9ebGli cmFyaWVzOi8iIDs7Ci0rICBlc2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50 LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8v IiAtZSAicyw9LywvLGciYAotKyAgaWYgZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3Jl cCAnOycgPi9kZXYvbnVsbCA7IHRoZW4KLSsgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIg dGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgotKyAgICAjIG90aGVyd2lzZSBk ZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMK LSsgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlu cyAiOyIgYnV0IHRoYXQgc2hvdWxkCi0rICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVy ZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgotKyAgICBsdF9zZWFyY2hf cGF0aF9zcGVjPWBlY2hvICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9n J2AKLSsgIGVsc2UKLSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJGx0X3NlYXJjaF9w YXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICBmaQotKyAg IyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBz dGVwIHRocm91Z2ggaXQKLSsgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5Lgot KyAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAk Q1BQRkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rl di9udWxsYAotKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwot KyAgICBpZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsg ICAgICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9z cGVjICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVz dCAtZCAiJGx0X3N5c19wYXRoIiAmJiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIk bHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9u ZQotKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3Nw ZWMgfCBhd2sgJwotK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0X2Zvbz0iIjsK LSsgIGx0X2NvdW50PTA7Ci0rICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgewot KyAgICBpZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAgaWYgKCRsdF9p ID09ICIuLiIpIHsKLSsgICAgICAgIGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAg ICAgIGlmIChsdF9jb3VudCA9PSAwKSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRf Zm9vOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgbHRfY291bnQtLTsKLSsgICAgICAg IH0KLSsgICAgICB9Ci0rICAgIH0KLSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJl cVtsdF9mb29dKys7IH0KLSsgIGlmIChsdF9mcmVxW2x0X2Zvb10gPT0gMSkgeyBwcmludCBsdF9m b287IH0KLSt9J2AKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAkbHRfc2VhcmNo X3BhdGhfc3BlY2AKLStlbHNlCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vz ci9saWIgL3Vzci9sb2NhbC9saWIiCi0rZmkKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hh cmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBu bywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8g YmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2Fz ZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMg bm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRo ZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBB SVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwg Y29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVu Y2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0 aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0 bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlz IHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3Ig dG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8 IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19H TlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwot KwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8IGdyZXAgeWVzID4gL2Rldi9udWxs OyB0aGVuCi0rCToKLSsgICAgICBlbHNlCi0rCWNhbl9idWlsZF9zaGFyZWQ9bm8KLSsgICAgICBm aQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZl cnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVj dAotKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVy c2lvbmluZyBzdXBwb3J0IHRvCi0rICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3Mg Y2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVs aW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAo b24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbwotKyAgICAgICMgaW5zdGVhZCBv ZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90Ci0rICAg ICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgotKyAgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgICBlbHNlCi0rICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJl ZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKLSsgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFy ZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKLSsgICAgICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBmaQotKyAgICBz aGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIGZpCi0rICA7OwotKwotK2FtaWdhb3MqKQotKyAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICMgQ3Jl YXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCi0rICBmaW5p c2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7 IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwp XC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRybSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxp YnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhs aWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFy eS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNk aVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmln ICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJp Yi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNv LmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2 L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93 Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0r Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsg IHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMs bWluZ3cqIHwgeWVzLHB3MzIqKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRs bC5hJwotKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0 aW5zdGFsbF9jbWRzCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUg XCR7ZmlsZX1gfgotKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcn XCR7YmFzZV9maWxlfSdcJydpO2VjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbGRpcj0kZGVz dGRpci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGly IC1wIFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8k ZGxuYW1lfgotKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWUnCi0rICAgIHBvc3R1bmlu c3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxu YW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJHJtIFwkZGxw YXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3ln JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHts aWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGli IgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KikKLSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRp dGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8g JHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0 fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRp cnMgfCBncmVwICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJz LD0vLC8sZyJgCi0rICAgICAgaWYgZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCBn cmVwICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0 IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1p bmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2Vh cmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxl dHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dp biBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAj IGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3 IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5p ZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8g IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0rICAgICAg ZWxzZQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsgICAgcHczMiopCi0rICAgICAgIyBwdzMyIERMTHMgdXNlICdw dycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdg ZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwg JFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3Vm Zml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICA7OwotKyAgZXNhYwotKyAgZHlu YW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBz ZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgotKyAgc2hsaWJw YXRoX3Zhcj1QQVRICi0rICA7OwotKwotK2RhcndpbiogfCByaGFwc29keSopCi0rICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKLSsgIHZlcnNpb25fdHlwZT1kYXJ3aW4KLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHt2ZXJzdWZmaXh9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElC UkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8g LnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStk Z3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAg OzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBo YXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcg bWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0 OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAg ICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7 Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25f dHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBm cmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAg ICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVy c2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVl YnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBm cmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0Llsw LTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7Owot KyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsg IGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXll cwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNv bmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJl ZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90 eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg Y2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAg ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk bGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4K LSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0g WDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4 MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9s aWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAgaHBwYSo2NCopCi0rICAgICBzaHJl eHRfY21kcz0nLnNsJwotKyAgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICAgZHluYW1p Y19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKLSsgICAgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAotKyAgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgot KyAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICAgOzsKLSsgICAq KQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg ZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgK LSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMg KnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsg IHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4WzMt OV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0nSW50 ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikK LSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0 b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0 aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWlyaXgK LSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9u PW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGlic3Vm Zj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29s Lm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoiLTMy ICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNobGli c3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlw bjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIg bGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRi bWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsK LSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0rICAg IGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hs aWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91 c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwg YW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYq KQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXgg RUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubwotKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1 bmFjY2VwdGFibGUuCi0rICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZv ciBmYXN0X2luc3RhbGwKLSsgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli JHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0rICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1 ZmZ9IgotKwotKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBh dGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJh PWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9k ZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lw ID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWyAJXSpod2Nh cFsgCV0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0 ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRv IHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0r ICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFy aWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJy b2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVz IHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4g YWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsg ICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHlu YW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZl cnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251 bGw7IHRoZW4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcK LSsgICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRp cicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxzZQot KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGli bmFtZX0ke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVs Zl9zbycKLSsgIGZpCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAg OzsKLSsKLStuZXdzb3M2KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rICA7OwotKwotK250by1xbngqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4 Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9 c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRf bGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBh dCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgot KyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKSBuZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAg ICopICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMK LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAi b3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg b3BlbmJzZDIuWzg5XSB8IG9wZW5ic2QyLls4OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKwk7OwotKyAgICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwotKyAgZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0n JG5hbWUnCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsg IGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAot KyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3Iv bGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBk eW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1s aW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxk ZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3Rh bGxfY21kcz0nY2htb2QgK3ggJGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25f dHlwZT1zdW5vcwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcK LSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXIn Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAg ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7Owot KwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3Zl bmRvciBpbgotKyAgICBzbmkpCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5v Ci0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPScke3dsfS1CbGFyZ2VkeW5zeW0nCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgK LSsgICAgICA7OwotKyAgICBzaWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg ICAgIDs7Ci0rICAgIG1vdG9yb2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAg IG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot KyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9s aWInCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVz dCAtZCAvdXNyL25lYyA7dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7 c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3Nw ZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBmaQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281 djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlw ZT1mcmVlYnNkLWVsZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0r ICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGli IC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Nj cy9saWIgL3Vzci9saWInCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg ICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7Owot KyAgICBlc2FjCi0rICBmaQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGli JwotKyAgOzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsg IGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkZHluYW1pY19saW5rZXIiID4mNQotKyRhc19lY2hvICIkZHluYW1pY19s aW5rZXIiID4mNjsgfQotK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVpbGRf c2hhcmVkPW5vCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIgotK2ZpCi0rCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIgotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYyIKLStmaQotKwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRf Y3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9y ZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19z YXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFU SCIKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8g aGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIg PiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uPQotK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjIiB8fCBcCi0rICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiB8fCBcCi0rICAgdGVz dCAiWCRoYXJkY29kZV9hdXRvbWF0aWMiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4g aGFyZGNvZGUgbm9uLWV4aXN0YW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2Rl X2RpcmVjdCIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lk IGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0byByZWxpbmss IG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsgICAg ICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBv bmUKLSsgICAgICMjIHRlc3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICkiICE9IG5vICYmCi0rICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4K LSsgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRp cmVjdG9yeS4KLSsgICAgaGFyZGNvZGVfYWN0aW9uPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdl IGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlz dGluZyBkaXJzLgotKyAgICBoYXJkY29kZV9hY3Rpb249aW1tZWRpYXRlCi0rICBmaQotK2Vsc2UK LSsgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhh cmRjb2RlIGV4aXN0aW5nCi0rICAjIGRpcmVjdG9yaWVzLgotKyAgaGFyZGNvZGVfYWN0aW9uPXVu c3VwcG9ydGVkCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFy ZGNvZGVfYWN0aW9uIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbiIgPiY2OyB9Ci0r Ci0raWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KLSsgICMgRmFzdCBp bnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwot K2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAg IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9u IGlzIG5vdCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQot KwotK3N0cmlwbGliPQotK29sZF9zdHJpcGxpYj0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9z c2libGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC1uICIkU1RSSVAiICYmICRTVFJJUCAtViAyPiYx IHwgZ3JlcCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCi0rICB0ZXN0IC16ICIkb2xkX3N0 cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgotKyAgdGVzdCAt eiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5 ZXMiID4mNjsgfQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9z dF9vcyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICBk YXJ3aW4qKQotKyAgICAgICBpZiB0ZXN0IC1uICIkU1RSSVAiIDsgdGhlbgotKyAgICAgICAgIHN0 cmlwbGliPSIkU1RSSVAgLXgiCi0rICAgICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCi0r ICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSsk YXNfZWNobyAieWVzIiA+JjY7IH0KLSsgICAgICAgZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsg ICAgICAgOzsKLSsgICAqKQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAgIDs7Ci0rICBlc2FjCi0rZmkKLSsK LStpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9kbG9w ZW49dW5rbm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9kbG9w ZW5fc2VsZl9zdGF0aWM9dW5rbm93bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAgbHRf Y3ZfZGxvcGVuX2xpYnM9Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsgICAg bHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAg IGx0X2N2X2Rsb3Blbl9zZWxmPXllcwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiopCi0r ICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQot KyAgIDs7Ci0rCi0rICBjeWd3aW4qKQotKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKLSsgICAg bHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgOzsKLSsKLSsgIGRhcndpbiopCi0rICAjIGlmIGxpYmRs IGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAotKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X2xpYl9kbF9kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwot K0xJQlM9Ii1sZGwgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZv aWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJl dHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJv dG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRl cm4gIkMiCi0rI2VuZGlmCi0rY2hhciBkbG9wZW4gKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLSty ZXR1cm4gZGxvcGVuICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIk YWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgot KyAgYWNfY3ZfbGliX2RsX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWFjX2N2X2xpYl9kbF9kbG9wZW49bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVz dC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKLSsk YXNfZWNobyAiJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3Zf bGliX2RsX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBs dF9jdl9kbG9wZW5fbGlicz0iLWxkbCIKLStlbHNlCi0rCi0rICAgIGx0X2N2X2Rsb3Blbj0iZHls ZCIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcwot KwotK2ZpCi0rCi0rICAgOzsKLSsKLSsgICopCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBzaGxfbG9hZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19zaGxfbG9hZCtz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStf QUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKy8qIERlZmluZSBz aGxfbG9hZCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xh cmVzIHNobF9sb2FkLgotKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNs YXJlcyBnZXR0aW1lb2ZkYXkuICAqLwotKyNkZWZpbmUgc2hsX2xvYWQgaW5ub2N1b3VzX3NobF9s b2FkCi0rCi0rLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFy IHNobF9sb2FkICgpOyBiZWxvdy4KLSsgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5o PiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgICA8bGltaXRzLmg+IGV4aXN0cyBl dmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotKwotKyNpZmRlZiBfX1NURENfXwot KyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNl bmRpZgotKwotKyN1bmRlZiBzaGxfbG9hZAotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVm IF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgc2hsX2xvYWQgKCk7Ci0r LyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQg aW1wbGVtZW50cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rp b25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBh bmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJf c2hsX2xvYWQgfHwgZGVmaW5lZCBfX3N0dWJfX19zaGxfbG9hZAotK2Nob2tlIG1lCi0rI2VuZGlm Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gc2hsX2xvYWQgKCk7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX3NobF9sb2FkPXllcwot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfZnVuY19zaGxfbG9h ZD1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY1Ci0rJGFz X2VjaG8gIiRhY19jdl9mdW5jX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2Z1 bmNfc2hsX2xvYWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIgot K2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xv YWQgaW4gLWxkbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAt bGRsZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbGQgICRMSUJTIgotK2NhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55 IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIg YmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBzaGxf bG9hZCAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBzaGxfbG9hZCAoKTsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNf dHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0r ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg ewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9kbGRfc2hsX2xv YWQ9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9saWJf ZGxkX3NobF9sb2FkPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19j dl9saWJfZGxkX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfc2hs X2xvYWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9k bG9wZW5fbGlicz0iLWxkbGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciBkbG9wZW4iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9w ZW4uLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfZGxvcGVuK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rLyogRGVmaW5lIGRsb3BlbiB0byBh biBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGRsb3Blbi4K LSsgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9m ZGF5LiAgKi8KLSsjZGVmaW5lIGRsb3BlbiBpbm5vY3VvdXNfZGxvcGVuCi0rCi0rLyogU3lzdGVt IGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5 cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGRsb3BlbiAoKTsgYmVsb3cu Ci0rICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVm aW5lZCwgc2luY2UKLSsgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcg Y29tcGlsZXJzLiAgKi8KLSsKLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5o PgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgZGxv cGVuCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4g IkMiCi0rI2VuZGlmCi0rY2hhciBkbG9wZW4gKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVm aW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdh eXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAot KyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFu IGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfZGxvcGVuIHx8IGRlZmluZWQgX19zdHVi X19fZGxvcGVuCi0rY2hva2UgbWUKLSsjZW5kaWYKLSsKLStpbnQKLSttYWluICgpCi0rewotK3Jl dHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRh Y19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwot K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVz IHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0r ICBhY19jdl9mdW5jX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWFjX2N2X2Z1bmNfZGxvcGVuPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZ TQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf aXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9m dW5jX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5jX2Rsb3BlbiIgPiY2OyB9Ci0r aWYgdGVzdCAieCRhY19jdl9mdW5jX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rs b3Blbj0iZGxvcGVuIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBk bG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3Bl bitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0r Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlk ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsg ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFy IGRsb3BlbiAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVz PSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0g LWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVu PXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2Rs X2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2Rs X2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInll czsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRs IgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxv cGVuIGluIC1sc3ZsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAt bHN2bGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3BlbitzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxzdmxkICAkTElCUyIKLStjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YK LStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFu eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxv cGVuICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewot KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15 ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9zdmxk X2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJf c3ZsZF9kbG9wZW4iID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA9 IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJz PSItbHN2bGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBkbGRfbGluayBpbiAtbGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRs ZF9saW5rIGluIC1sZGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9saWJfZGxkX2Rs ZF9saW5rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsZCAgJExJ QlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsg ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH Q0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp bGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYK LStjaGFyIGRsZF9saW5rICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsZF9saW5r ICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgYWNfY3ZfbGli X2RsZF9kbGRfbGluaz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r CWFjX2N2X2xpYl9kbGRfZGxkX2xpbms9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lN Ci0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9p cGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj X2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjUKLSskYXNf ZWNobyAiJGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3Zf bGliX2RsZF9kbGRfbGluayIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxkX2xp bmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkK LSsKLSsKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsgICAgOzsKLSsgIGVzYWMKLSsK LSsgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rs b3Blbj15ZXMKLSsgIGVsc2UKLSsgICAgZW5hYmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNh c2UgJGx0X2N2X2Rsb3BlbiBpbgotKyAgZGxvcGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQ RkxBR1MiCi0rICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBG TEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRM REZMQUdTIgotKyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExE RkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJ QlMiCi0rICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKLSsKLSsgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9w ZW4gaXRzZWxmIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBj YW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3Nl bGYrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRf Y3ZfZGxvcGVuX3NlbGY9Y3Jvc3MKLStlbHNlCi0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191 c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCi0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgot KyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEwOTcxICJjb25maWd1cmUi Ci0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0rCi0rI2lmIEhBVkVfRExGQ05fSAotKyNpbmNsdWRl IDxkbGZjbi5oPgotKyNlbmRpZgotKwotKyNpbmNsdWRlIDxzdGRpby5oPgotKwotKyNpZmRlZiBS VExEX0dMT0JBTAotKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKLSsjZWxzZQot KyMgIGlmZGVmIERMX0dMT0JBTAotKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwK LSsjICBlbHNlCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKLSsjICBlbmRpZgotKyNlbmRp ZgotKwotKy8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBj b21tYW5kIGxpbmUgaWYgd2UKLSsgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUg cGxhdGZvcm0uICovCi0rI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCi0rIyAgaWZkZWYgUlRMRF9M QVpZCi0rIyAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCi0rIyAgZWxzZQot KyMgICAgaWZkZWYgRExfTEFaWQotKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExf TEFaWQotKyMgICAgZWxzZQotKyMgICAgICBpZmRlZiBSVExEX05PVwotKyMgICAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCi0rIyAgICAgIGVsc2UKLSsjICAgICAgICBpZmRl ZiBETF9OT1cKLSsjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVwotKyMg ICAgICAgIGVsc2UKLSsjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKLSsjICAg ICAgICBlbmRpZgotKyMgICAgICBlbmRpZgotKyMgICAgZW5kaWYKLSsjICBlbmRpZgotKyNlbmRp ZgotKwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpOwot KyNlbmRpZgotKwotK3ZvaWQgZm5vcmQoKSB7IGludCBpPTQyO30KLStpbnQgbWFpbiAoKQotK3sK LSsgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cp OwotKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247Ci0rCi0rICBpZiAoc2VsZikKLSsgICAg ewotKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rs bm9fdXNjb3JlOwotKyAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVz ID0gJGx0X2RsbmVlZF91c2NvcmU7Ci0rICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCi0rICAg IH0KLSsgIGVsc2UKLSsgICAgcHV0cyAoZGxlcnJvciAoKSk7Ci0rCi0rICAgIGV4aXQgKHN0YXR1 cyk7Ci0rfQotK0VPRgotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf bGlua1wiIikgPiY1Ci0rICAoZXZhbCAkYWNfbGluaykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYv bnVsbDsgdGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKLSsg ICAgbHRfc3RhdHVzPSQ/Ci0rICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KLSsgICAgICB4JGx0X2Rs bm9fdXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZj15ZXMgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91 c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgq KSBsdF9jdl9kbG9wZW5fc2VsZj1ubyA7OwotKyAgICBlc2FjCi0rICBlbHNlIDoKLSsgICAgIyBj b21waWxhdGlvbiBmYWlsZWQKLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8KLSsgIGZpCi0rZmkK LStybSAtZnIgY29uZnRlc3QqCi0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxv cGVuX3NlbGYiID4mNjsgfQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9 IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9 XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHBy b2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAi JGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3Rh dGljPWNyb3NzCi0rZWxzZQotKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0 X2RsbmVlZF91c2NvcmU9MgotKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNv bmZ0ZXN0LiRhY19leHQgPDxFT0YKLSsjbGluZSAxMTA3MSAiY29uZmlndXJlIgotKyNpbmNsdWRl ICJjb25mZGVmcy5oIgotKwotKyNpZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxmY24uaD4K LSsjZW5kaWYKLSsKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9HTE9CQUwK LSsjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UKLSsjICBpZmRlZiBE TF9HTE9CQUwKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCi0rIyAgZWxzZQot KyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBX ZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5l IGlmIHdlCi0rICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAq LwotKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVwotKyMgIGlmZGVmIFJUTERfTEFaWQotKyMgICAg ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQotKyMgIGVsc2UKLSsjICAgIGlmZGVm IERMX0xBWlkKLSsjICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKLSsjICAg IGVsc2UKLSsjICAgICAgaWZkZWYgUlRMRF9OT1cKLSsjICAgICAgICBkZWZpbmUgTFRfRExMQVpZ X09SX05PVwlSVExEX05PVwotKyMgICAgICBlbHNlCi0rIyAgICAgICAgaWZkZWYgRExfTk9XCi0r IyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKLSsjICAgICAgICBlbHNl Ci0rIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCi0rIyAgICAgICAgZW5kaWYK LSsjICAgICAgZW5kaWYKLSsjICAgIGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWZk ZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KTsKLSsjZW5kaWYKLSsK LSt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpz ZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBz dGF0dXMgPSAkbHRfZGx1bmtub3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBp ZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsK LSsgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5l ZWRfdXNjb3JlOwotKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwotKyAgICB9Ci0rICBlbHNl Ci0rICAgIHB1dHMgKGRsZXJyb3IgKCkpOwotKwotKyAgICBleGl0IChzdGF0dXMpOwotK30KLStF T0YKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4m NQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4K LSsgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1 cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkg bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29y ZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3du fHgqKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6 Ci0rICAgICMgY29tcGlsYXRpb24gZmFpbGVkCi0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRp Yz1ubwotKyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4m NQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjY7IH0KLSsgICAgZmkK LSsKLSsgICAgQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgotKyAgICBMREZMQUdTPSIkc2F2ZV9M REZMQUdTIgotKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgotKyAgICA7OwotKyAgZXNhYwotKwotKyAg Y2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxm PSRsdF9jdl9kbG9wZW5fc2VsZiA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24g OzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgotKyAg eWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0 aWMgOzsKLSsgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OwotKyAgZXNh YwotK2ZpCi0rCi0rCi0rIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5 IGJlIGJ1aWx0Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIGxpYnRv b2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg aWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQotKyRh c19lY2hvICIkY2FuX2J1aWxkX3NoYXJlZCIgPiY2OyB9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVz Li4uICIgPiY2OyB9Ci0rdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVf c2hhcmVkPW5vCi0rCi0rIyBPbiBBSVgsIHNoYXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJy YXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCi0rIyBhcmUgYWxsIGJ1aWx0IGZyb20g UElDLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhl bgotKyAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAg IHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgIGZpCi0rICA7OwotKwotK2FpeFs0 LTldKikKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9y dW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgIGZpCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc2hhcmVkIiA+JjUKLSskYXNfZWNo byAiJGVuYWJsZV9zaGFyZWQiID4mNjsgfQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4uLiAiID4m NjsgfQotKyMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMg aXMgeWVzLgotK3Rlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXll cwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+ JjUKLSskYXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQotKwotKyMgVGhlIGVsc2UgY2xh dXNlIHNob3VsZCBvbmx5IGZpcmUgd2hlbiBib290c3RyYXBwaW5nIHRoZQotKyMgbGlidG9vbCBk aXN0cmlidXRpb24sIG90aGVyd2lzZSB5b3UgZm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCi0rIyB3 aXRoIHlvdXIgcGFja2FnZSwgYW5kIHlvdSB3aWxsIGdldCBjb21wbGFpbnRzIHRoYXQgdGhlcmUg YXJlCi0rIyBubyBydWxlcyB0byBnZW5lcmF0ZSBsdG1haW4uc2guCi0raWYgdGVzdCAtZiAiJGx0 bWFpbiI7IHRoZW4KLSsgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0 aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIgY29tbWFuZHMgdGhyb3VnaAotKyAgIyB3aXRob3V0 IHJlbW92YWwgb2YgXCBlc2NhcGVzLgotKyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiA7IHRoZW4KLSsgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsgIGZpCi0rICAjIE5vdyBxdW90 ZSBhbGwgdGhlIHRoaW5ncyB0aGF0IG1heSBjb250YWluIG1ldGFjaGFyYWN0ZXJzIHdoaWxlIGJl aW5nCi0rICAjIGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VCU1RlZCB2YWx1ZXMu ICBXZSB0YWtlIGNvcGllcyBvZiB0aGUKLSsgICMgdmFyaWFibGVzIGFuZCBxdW90ZSB0aGUgY29w aWVzIGZvciBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdC4KLSsgIGZvciB2YXIgaW4g ZWNobyBvbGRfQ0Mgb2xkX0NGTEFHUyBBUiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIgTE5fUyBMVEND IExUQ0ZMQUdTIE5NIFwKLSsgICAgU0VEIFNIRUxMIFNUUklQIFwKLSsgICAgbGlibmFtZV9zcGVj IGxpYnJhcnlfbmFtZXNfc3BlYyBzb25hbWVfc3BlYyBleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0r ICAgIG9sZF9zdHJpcGxpYiBzdHJpcGxpYiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hfY21kcyBmaW5p c2hfZXZhbCBcCi0rICAgIGRlcGxpYnNfY2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFnIHJlbG9hZF9j bWRzIG5lZWRfbG9ja3MgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3MgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRf cG9zdHVuaW5zdGFsbF9jbWRzIFwKLSsgICAgY29tcGlsZXIgXAotKyAgICBDQyBcCi0rICAgIExE IFwKLSsgICAgbHRfcHJvZ19jb21waWxlcl93bCBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj IFwKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgXAotKyAgICBsdF9wcm9nX2NvbXBpbGVy X25vX2J1aWx0aW5fZmxhZyBcCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCi0rICAg IHRocmVhZF9zYWZlX2ZsYWdfc3BlYyBcCi0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIFwK LSsgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcyBcCi0rICAgIG9sZF9hcmNo aXZlX2NtZHMgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIFwKLSsgICAgcHJlZGVw X29iamVjdHMgXAotKyAgICBwb3N0ZGVwX29iamVjdHMgXAotKyAgICBwcmVkZXBzIFwKLSsgICAg cG9zdGRlcHMgXAotKyAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGggXAotKyAgICBjb21waWxl cl9saWJfc2VhcmNoX2RpcnMgXAotKyAgICBhcmNoaXZlX2NtZHMgXAotKyAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzIFwKLSsgICAgcG9zdGluc3RhbGxfY21kcyBcCi0rICAgIHBvc3R1bmluc3RhbGxf Y21kcyBcCi0rICAgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIFwKLSsgICAgYWxsb3df dW5kZWZpbmVkX2ZsYWcgXAotKyAgICBub191bmRlZmluZWRfZmxhZyBcCi0rICAgIGV4cG9ydF9z eW1ib2xzX2NtZHMgXAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIFwKLSsgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3IgXAotKyAgICBoYXJkY29kZV9hdXRvbWF0aWMgXAotKyAgICBtb2R1bGVfY21kcyBcCi0rICAg IG1vZHVsZV9leHBzeW1fY21kcyBcCi0rICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLSsg ICAgZml4X3NyY2ZpbGVfcGF0aCBcCi0rICAgIGV4Y2x1ZGVfZXhwc3ltcyBcCi0rICAgIGluY2x1 ZGVfZXhwc3ltczsgZG8KLSsKLSsgICAgY2FzZSAkdmFyIGluCi0rICAgIG9sZF9hcmNoaXZlX2Nt ZHMgfCBcCi0rICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMgfCBcCi0rICAgIGFyY2hpdmVf Y21kcyB8IFwKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kcyB8IFwKLSsgICAgbW9kdWxlX2NtZHMg fCBcCi0rICAgIG1vZHVsZV9leHBzeW1fY21kcyB8IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHMgfCBcCi0rICAgIGV4cG9ydF9zeW1ib2xzX2NtZHMgfCBcCi0rICAgIGV4dHJh Y3RfZXhwc3ltc19jbWRzIHwgcmVsb2FkX2NtZHMgfCBmaW5pc2hfY21kcyB8IFwKLSsgICAgcG9z dGluc3RhbGxfY21kcyB8IHBvc3R1bmluc3RhbGxfY21kcyB8IFwKLSsgICAgb2xkX3Bvc3RpbnN0 YWxsX2NtZHMgfCBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMgfCBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYykKLSsgICAgICAjIERvdWJs ZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwi XGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwi IC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxg XFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRl Y2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIK LSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICBjYXNlICRsdF9lY2hvIGluCi0r ICAqJ1wkMCAtLWZhbGxiYWNrLWVjaG8iJykKLSsgICAgbHRfZWNobz1gJGVjaG8gIlgkbHRfZWNo byIgfCAkWHNlZCAtZSAncy9cXFxcXFxcJDAgLS1mYWxsYmFjay1lY2hvIiQvJDAgLS1mYWxsYmFj ay1lY2hvIi8nYAotKyAgICA7OwotKyAgZXNhYwotKwotK2NmZ2ZpbGU9IiR7b2ZpbGV9VCIKLSsg IHRyYXAgIiRybSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1Ci0rICAkcm0gLWYgIiRjZmdm aWxlIgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRvZmlsZSIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJG9maWxlIiA+JjY7fQotKwotKyAgY2F0IDw8 X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCi0rIyEgJFNIRUxMCi0rCi0rIyBgJGVjaG8gIiRjZmdmaWxl IiB8IHNlZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGlu ZyBzdXBwb3J0IHNlcnZpY2VzLgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJFBST0dS QU0gKEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RBTVApCi0rIyBOT1RFOiBDaGFuZ2VzIG1h ZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDogbG9vayBhdCBsdG1haW4uc2guCi0rIwotKyMg Q29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbDoKLSsj IE9yaWdpbmFsbHkgYnkgR29yZG9uIE1hdHppZ2tlaXQgPGdvcmRAZ251LmFpLm1pdC5lZHU+LCAx OTk2Ci0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0r IyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQotKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0r IwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dy YW0gdGhhdCBjb250YWlucyBhCi0rIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkg QXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0 aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgotKwot KyMgQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4KLStTRUQ9JGx0 X1NFRAotKwotKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJp bmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCi0rWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgotKwot KyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3Rv cnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2 L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLSsjIFRoZSBuYW1lcyBvZiB0aGUgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLSthdmFpbGFibGVfdGFn cz0KLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIENPTkZJRwotKwotKyMgTGlidG9vbCB3YXMgY29u ZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2Vk IDFxYDoKLSsKLSsjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCi0r U0hFTEw9JGx0X1NIRUxMCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGli cmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhl ciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5h YmxlX3N0YXRpYwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcg c2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19u ZWVkX2xjCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVu IHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljCi0rYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGlj X3J1bnRpbWVzPSRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzCi0rCi0rIyBXaGV0 aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0 YWxsPSRlbmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBUaGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9h bGlhcz0kaG9zdF9hbGlhcwotK2hvc3Q9JGhvc3QKLStob3N0X29zPSRob3N0X29zCi0rCi0rIyBU aGUgYnVpbGQgc3lzdGVtLgotK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcwotK2J1aWxkPSRidWls ZAotK2J1aWxkX29zPSRidWlsZF9vcwotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBu b3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotK2VjaG89JGx0X2VjaG8KLSsKLSsjIFRoZSBhcmNo aXZlci4KLStBUj0kbHRfQVIKLStBUl9GTEFHUz0kbHRfQVJfRkxBR1MKLSsKLSsjIEEgQyBjb21w aWxlci4KLStMVENDPSRsdF9MVENDCi0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xUQ0ZM QUdTPSRsdF9MVENGTEFHUwotKwotKyMgQSBsYW5ndWFnZS1zcGVjaWZpYyBjb21waWxlci4KLStD Qz0kbHRfY29tcGlsZXIKLSsKLSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/ Ci0rd2l0aF9nY2M9JEdDQwotKwotKyMgQW4gRVJFIG1hdGNoZXIuCi0rRUdSRVA9JGx0X0VHUkVQ Ci0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgotK0xEPSRsdF9MRAot KwotKyMgV2hldGhlciB3ZSBuZWVkIGhhcmQgb3Igc29mdCBsaW5rcy4KLStMTl9TPSRsdF9MTl9T Ci0rCi0rIyBBIEJTRC1jb21wYXRpYmxlIG5tIHByb2dyYW0uCi0rTk09JGx0X05NCi0rCi0rIyBB IHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbQotK1NUUklQPSRsdF9TVFJJUAotKwotKyMgVXNlZCB0 byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyAiZmlsZSIKLStN QUdJQ19DTUQ9JE1BR0lDX0NNRAotKwotKyMgVXNlZCBvbiBjeWd3aW46IERMTCBjcmVhdGlvbiBw cm9ncmFtLgotK0RMTFRPT0w9IiRETExUT09MIgotKwotKyMgVXNlZCBvbiBjeWd3aW46IG9iamVj dCBkdW1wZXIuCi0rT0JKRFVNUD0iJE9CSkRVTVAiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogYXNz ZW1ibGVyLgotK0FTPSIkQVMiCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQg Y29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpkaXIKLSsKLSsj IEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCi0rcmVsb2FkX2ZsYWc9JGx0 X3JlbG9hZF9mbGFnCi0rcmVsb2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzCi0rCi0rIyBIb3cgdG8g cGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9n X2NvbXBpbGVyX3dsCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0r b2JqZXh0PSIkYWNfb2JqZXh0IgotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAi YSIpLgotK2xpYmV4dD0iJGxpYmV4dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9y bWFsbHkgIi5zbyIpLgotK3NocmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRh YmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMg QWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgot K3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpYwotK3BpY19tb2RlPSRwaWNfbW9kZQot KwotKyMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kPwotK21heF9jbWRf bGVuPSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KLSsKLSsjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5l b3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KLStjb21waWxlcl9jX289JGx0X2x0X2N2 X3Byb2dfY29tcGlsZXJfY19vCi0rCi0rIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBj b21waWxhdGlvbj8KLStuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tzCi0rCi0rIyBEbyB3ZSBuZWVk IHRoZSBsaWIgcHJlZml4IGZvciBtb2R1bGVzPwotK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJf cHJlZml4Ci0rCi0rIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRf dmVyc2lvbj0kbmVlZF92ZXJzaW9uCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQu Ci0rZGxvcGVuX3N1cHBvcnQ9JGVuYWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9m IHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxm Ci0rCi0rIyBXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBz dXBwb3J0ZWQuCi0rZGxvcGVuX3NlbGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGlj Ci0rCi0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtf c3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBDb21waWxlciBm bGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxhZz0kbHRf bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8g YWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSRsdF9l eHBvcnRfZHluYW1pY19mbGFnX3NwZWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUg c2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMKLSsKLSsjIENvbXBpbGVyIGZsYWcg dG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KLSt0aHJlYWRfc2FmZV9mbGFnX3NwZWM9 JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlYwotKwotKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUu Ci0rdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKLSsKLSsjIEZvcm1hdCBvZiBsaWJyYXJ5IG5h bWUgcHJlZml4LgotK2xpYm5hbWVfc3BlYz0kbHRfbGlibmFtZV9zcGVjCi0rCi0rIyBMaXN0IG9m IGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJl IGxpbmtzLgotKyMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5k cyB3aXRoIC1sTkFNRS4KLStsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3Bl YwotKwotKyMgVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9t IHRoZSByZWFsIG5hbWUuCi0rc29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCi0rCi0rIyBDb21t YW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK1JB TkxJQj0kbHRfUkFOTElCCi0rb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcwot K29sZF9wb3N0aW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0 dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENyZWF0ZSBh biBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwotKwotKyMgQ3JlYXRl IGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJl ZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2 ZV9mcm9tX2V4cHN5bXNfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5z dGFsbCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzCi0r YXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kcwotK3Bvc3RpbnN0YWxs X2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKLStwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1 bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1v ZHVsZSAoYXNzdW1lZCBzYW1lIGFzIGFib3ZlIGlmIGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9t b2R1bGVfY21kcwotK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzCi0r Ci0rIyBDb21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRf c3RyaXBsaWIKLStzdHJpcGxpYj0kbHRfc3RyaXBsaWIKLSsKLSsjIERlcGVuZGVuY2llcyB0byBw bGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFy ZWQgbGlicmFyeS4KLStwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHMKLSsKLSsjIERl cGVuZGVuY2llcyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3Jl YXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9v YmplY3RzCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJl aW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcHJlZGVwcz0kbHRf cHJlZGVwcwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJl aW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcG9zdGRlcHM9JGx0 X3Bvc3RkZXBzCi0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxl ciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJfbGliX3NlYXJj aF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnMKLSsKLSsjIFRoZSBsaWJyYXJ5IHNl YXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0r IyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoCi0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRl bnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0k bHRfZGVwbGlic19jaGVja19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGli c19jaGVja19tZXRob2QgPT0gZmlsZV9tYWdpYy4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9t YWdpY19jbWQKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVu ZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9h bGxvd191bmRlZmluZWRfZmxhZwotKwotKyMgRmxhZyB0aGF0IGZvcmNlcyBubyB1bmRlZmluZWQg c3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWcKLSsKLSsj IENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBp biBhIGRpcmVjdG9yeS4KLStmaW5pc2hfY21kcz0kbHRfZmluaXNoX2NtZHMKLSsKLSsjIFNhbWUg YXMgYWJvdmUsIGJ1dCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dCBu b3Qgc2hvd24uCi0rZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFsCi0rCi0rIyBUYWtlIHRoZSBv dXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5h bWVzLgotK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw ZQotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJh dGlvbgotK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NkZWNsCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBh ZGRyZXNzIHBhaXIKLStnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcwotKwotKyMgVGhpcyBpcyB0aGUgc2hh cmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgotK3J1bnBhdGhfdmFyPSRydW5wYXRo X3ZhcgotKwotKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZS4KLStz aGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCi0rCi0rIyBJcyBzaGxpYnBhdGggc2VhcmNoZWQg YmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBhdGg/Ci0rc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsjIEhvdyB0 byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBhbiBleGVjdXRhYmxlLgotK2hh cmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uCi0rCi0rIyBXaGV0aGVyIHdlIHNob3VsZCBo YXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9fbGli cz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGlu dG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwk bGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5n LCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmluZyBsaW5r aW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4K LStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBh IHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJO QU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCi0r IyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0Ci0r Ci0rIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhh cmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWlu dXNfTD0kaGFyZGNvZGVfbWludXNfTAotKwotKyMgU2V0IHRvIHllcyBpZiB1c2luZyBTSExJQlBB VEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8KLSsjIHRoZSByZXN1 bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0 aF92YXIKLSsKLSsjIFNldCB0byB5ZXMgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRv bWF0aWNhbGx5IGhhcmRjb2RlcyBESVIgaW50byB0aGUgbGlicmFyeQotKyMgYW5kIGFsbCBzdWJz ZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCi0raGFy ZGNvZGVfYXV0b21hdGljPSRoYXJkY29kZV9hdXRvbWF0aWMKLSsKLSsjIFZhcmlhYmxlcyB3aG9z ZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAot KyMgcmVzdG9yZWQgYXQgcmVsaW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9 IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0 IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLSts aW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBDb21waWxlLXRpbWUgc3lz dGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKwotKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJj aCBwYXRoIGZvciBsaWJyYXJpZXMKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRz cmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCi0rZml4X3NyY2ZpbGVfcGF0aD0kbHRfZml4X3NyY2Zp bGVfcGF0aAotKwotKyMgU2V0IHRvIHllcyBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJl ZC4KLSthbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9scwotKwotKyMg VGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19j bWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFj dCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJh Y3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0 aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNs dWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwotKwotKyMgU3ltYm9scyB0aGF0IG11c3Qg YWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1z Ci0rCi0rIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCi0rCi0rX19FT0ZfXwotKwotKwotKyAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAgIGNhdCA8PFxFT0YgPj4gIiRjZmdmaWxlIgot KwotKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHBy b2dyYW0uICBGb3Igc29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMg ZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEgcHVmZiBv ZiBzbW9rZS4KLStpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4K LSsgIENPTExFQ1RfTkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwotK2ZpCi0rRU9GCi0r ICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIFdlIHVzZSBzZWQgaW5zdGVhZCBvZiBjYXQgYmVjYXVz ZSBiYXNoIG9uIERKR1BQIGdldHMgY29uZnVzZWQgaWYKLSsgICMgaWYgZmluZHMgbWl4ZWQgQ1Iv TEYgYW5kIExGLW9ubHkgbGluZXMuICBTaW5jZSBzZWQgb3BlcmF0ZXMgaW4KLSsgICMgdGV4dCBt b2RlLCBpdCBwcm9wZXJseSBjb252ZXJ0cyBsaW5lcyB0byBDUi9MRi4gIFRoaXMgYmFzaCBwcm9i bGVtCi0rICAjIGlzIHJlcG9ydGVkbHkgZml4ZWQsIGJ1dCB3aHkgbm90IHJ1biBvbiBvbGQgdmVy c2lvbnMgdG9vPwotKyAgc2VkICckcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgfHwgKHJtIC1m ICIkY2ZnZmlsZSI7IGV4aXQgMSkKLSsKLSsgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwg XAotKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAt ZiAiJGNmZ2ZpbGUiKQotKyAgY2htb2QgK3ggIiRvZmlsZSIKLSsKLStlbHNlCi0rICAjIElmIHRo ZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRl Ci0rICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5k IGNyZWF0ZSB0aGUKLSsgICMgbGlidG9vbCBzY3JpcHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNo byAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFp bl9pbiI7IHRoZW4KLSsgICAgdGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAg ZmkKLStmaQotKwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2 X2NfY29tcGlsZXJfZ251Ci0rCi0rQ0M9IiRsdF9zYXZlX0NDIgotKwotKwotKyMgQ2hlY2sgd2hl dGhlciAtLXdpdGgtdGFncyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX3RhZ3Mrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfdGFnczsgdGFnbmFtZXM9IiR3aXRodmFsIgot K2ZpCi0rCi0rCi0raWYgdGVzdCAtZiAiJGx0bWFpbiIgJiYgdGVzdCAtbiAiJHRhZ25hbWVzIjsg dGhlbgotKyAgaWYgdGVzdCAhIC1mICIke29maWxlfSI7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG91dHB1dCBmaWxlIFxgJG9maWxlJyBkb2VzIG5vdCBl eGlzdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogb3V0cHV0IGZpbGUgXGAkb2Zp bGUnIGRvZXMgbm90IGV4aXN0IiA+JjI7fQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgLXogIiRMVEND IjsgdGhlbgotKyAgICBldmFsICJgJFNIRUxMICR7b2ZpbGV9IC0tY29uZmlnIHwgZ3JlcCAnXkxU Q0M9J2AiCi0rICAgIGlmIHRlc3QgLXogIiRMVENDIjsgdGhlbgotKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBvdXRwdXQgZmlsZSBcYCRvZmlsZScgZG9lcyBub3Qg bG9vayBsaWtlIGEgbGlidG9vbCBzY3JpcHQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IG91dHB1dCBmaWxlIFxgJG9maWxlJyBkb2VzIG5vdCBsb29rIGxpa2UgYSBsaWJ0b29sIHNj cmlwdCIgPiYyO30KLSsgICAgZWxzZQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiB1c2luZyBcYExUQ0M9JExUQ0MnLCBleHRyYWN0ZWQgZnJvbSBcYCRvZmlsZSci ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIFxgTFRDQz0kTFRDQycsIGV4 dHJhY3RlZCBmcm9tIFxgJG9maWxlJyIgPiYyO30KLSsgICAgZmkKLSsgIGZpCi0rICBpZiB0ZXN0 IC16ICIkTFRDRkxBR1MiOyB0aGVuCi0rICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25m aWcgfCBncmVwICdeTFRDRkxBR1M9J2AiCi0rICBmaQotKwotKyAgIyBFeHRyYWN0IGxpc3Qgb2Yg YXZhaWxhYmxlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBpbiAkb2ZpbGUuCi0rICAjIE5vdGUgdGhh dCB0aGlzIGFzc3VtZXMgdGhlIGVudGlyZSBsaXN0IGlzIG9uIG9uZSBsaW5lLgotKyAgYXZhaWxh YmxlX3RhZ3M9YGdyZXAgIl5hdmFpbGFibGVfdGFncz0iICIke29maWxlfSIgfCAkU0VEIC1lICdz L2F2YWlsYWJsZV90YWdzPVwoLiokXCkvXDEvJyAtZSAncy9cIi8vZydgCi0rCi0rICBsdF9zYXZl X2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgIGZvciB0YWduYW1l IGluICR0YWduYW1lczsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICMgQ2hlY2sg d2hldGhlciB0YWduYW1lIGNvbnRhaW5zIG9ubHkgdmFsaWQgY2hhcmFjdGVycwotKyAgICBjYXNl IGAkZWNobyAiWCR0YWduYW1lIiB8ICRYc2VkIC1lICdzOlstX0FCQ0RFRkdISUpLTE1OT1BRUlNU VVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwLC9dOjpnJ2AgaW4KLSsg ICAgIiIpIDs7Ci0rICAgICopICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog aW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBpbnZhbGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSsJOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiBncmVwICJeIyAjIyMgQkVHSU4g TElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQiIDwgIiR7b2ZpbGV9IiA+IC9kZXYvbnVsbAot KyAgICB0aGVuCi0rICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHRh ZyBuYW1lIFwiJHRhZ25hbWVcIiBhbHJlYWR5IGV4aXN0cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IHRhZyBuYW1lIFwiJHRhZ25hbWVcIiBhbHJlYWR5IGV4aXN0cyIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgZmkKLSsKLSsgICAgIyBVcGRhdGUgdGhl IGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ3MuCi0rICAgIGlmIHRlc3QgLW4gIiR0YWduYW1lIjsgdGhl bgotKyAgICAgIGVjaG8gYXBwZW5kaW5nIGNvbmZpZ3VyYXRpb24gdGFnIFwiJHRhZ25hbWVcIiB0 byAkb2ZpbGUKLSsKLSsgICAgICBjYXNlICR0YWduYW1lIGluCi0rICAgICAgQ1hYKQotKwlpZiB0 ZXN0IC1uICIkQ1hYIiAmJiAoIHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgotKwkgICAgKCAodGVz dCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rCSAg ICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KLSsJICBhY19leHQ9Y3BwCi0rYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsK LSsKLSsKLSsKLSthcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSthbGxvd191bmRlZmluZWRf ZmxhZ19DWFg9Ci0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubwotK2FyY2hpdmVfZXhwc3lt X2NtZHNfQ1hYPQotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9Ci0raGFyZGNvZGVfZGly ZWN0X0NYWD1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPQotK2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfbGRfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPQot K2hhcmRjb2RlX21pbnVzX0xfQ1hYPW5vCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5z dXBwb3J0ZWQKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPW5vCi0rbW9kdWxlX2NtZHNfQ1hYPQot K21vZHVsZV9leHBzeW1fY21kc19DWFg9Ci0rbGlua19hbGxfZGVwbGlic19DWFg9dW5rbm93bgot K29sZF9hcmNoaXZlX2NtZHNfQ1hYPSRvbGRfYXJjaGl2ZV9jbWRzCi0rbm9fdW5kZWZpbmVkX2Zs YWdfQ1hYPQotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0KLStlbmFibGVfc2hhcmVkX3dp dGhfc3RhdGljX3J1bnRpbWVzX0NYWD1ubwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJl Zm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6Ci0rcHJlZGVwX29iamVjdHNf Q1hYPQotK3Bvc3RkZXBfb2JqZWN0c19DWFg9Ci0rcHJlZGVwc19DWFg9Ci0rcG9zdGRlcHNfQ1hY PQotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9k aXJzX0NYWD0KLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNl cy4KLSthY19leHQ9Y3BwCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVk IEMrKyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHRfQ1hYPSRvYmpleHQKLSsKLSsj IENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsjIENvZGUgdG8gYmUg dXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50 IG1haW4oaW50LCBjaGFyICpbXSkgeyByZXR1cm4oMCk7IH0nCi0rCi0rIyBsdG1haW4gb25seSB1 c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0 LgotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0k e0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVk LCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxs b3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JEND Ci0rCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUK LSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19jb21waWxlIiAyPiYx ID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9j b21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gY29uZnRlc3QqCi0r Ci0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9saW5r X3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNfbGluayIgMj4mMSA+L2Rl di9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKLStfbHRfbGlua2Vy X2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRybSAtciBjb25mdGVzdCoKLSsKLSsK LSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2x0X3Nh dmVfQ0M9JENDCi0rbHRfc2F2ZV9MRD0kTEQKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPSRHWFgK LStsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAotK2x0X3NhdmVfcGF0aF9MRD0kbHRf Y3ZfcGF0aF9MRAotK2lmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRo ZW4KLSsgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAotK2Vsc2UKLSsg ICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAotK2ZpCi0raWYgdGVzdCAtbiAiJHtsdF9jdl9w YXRoX0xEQ1hYK3NldH0iOyB0aGVuCi0rICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hY Ci0rZWxzZQotKyAgJGFzX3Vuc2V0IGx0X2N2X3BhdGhfTEQKLStmaQotK3Rlc3QgLXogIiR7TERD WFgrc2V0fSIgfHwgTEQ9JExEQ1hYCi0rQ0M9JHtDWFgtImMrKyJ9Ci0rY29tcGlsZXI9JENDCi0r Y29tcGlsZXJfQ1hYPSRDQwotK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2Fz ZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpb XFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpb XFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwot K2RvbmUKLStjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8l JScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIFdlIGRvbid0IHdhbnQgLWZuby1l eGNlcHRpb24gd2VuIGNvbXBpbGluZyBDKysgY29kZSwgc28gc2V0IHRoZQotKyMgbm9fYnVpbHRp bl9mbGFnIHNlcGFyYXRlbHkKLStpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgbHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYPScgLWZuby1idWlsdGluJwotK2Vsc2UKLSsg IGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0KLStmaQotKwotK2lmIHRlc3Qg IiRHWFgiID0geWVzOyB0aGVuCi0rICAjIFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmlndXJh dGlvbgotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251LWxkIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRo X2dudV9sZDsgdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzCi0rZWxzZQot KyAgd2l0aF9nbnVfbGQ9bm8KLStmaQotKwotK2FjX3Byb2c9bGQKLStpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBh IHBhdGguCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxkIHVz ZWQgYnkgJENDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0Mu Li4gIiA+JjY7IH0KLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1taW5ndyopCi0rICAgICMgZ2Nj IGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSsg ICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUn YCA7OwotKyAgKikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1 YCA7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAgICAjIEFjY2VwdCBhYnNvbHV0 ZSBwYXRocy4KLSsgICAgW1xcL10qIHwgPzpbXFwvXSopCi0rICAgICAgcmVfZGlyZWx0PScvW14v XVteL10qL1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAot KyAgICAgIGFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAg IHdoaWxlIGVjaG8gJGFjX3Byb2cgfCBncmVwICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYx OyBkbwotKwlhY19wcm9nPWBlY2hvICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAot KyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKLSsgICAg ICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3Qg dXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAgICAjIElmIGl0 IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCi0rICAg IHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4u ICIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBub24tR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBs ZC4uLiAiID4mNjsgfQotK2ZpCi0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRP UgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0r ICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19k aXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhl bgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVj ayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJz aW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25s eSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1H TlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAy PiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3Qg IiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIk d2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkK LSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9 IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkK LStmaQotKwotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQotKyRhc19lY2hv ICIkTEQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rdGVzdCAteiAiJExEIiAm JiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBm b3VuZCBpbiBcJFBBVEgiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRh YmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAo JExEKSBpcyBHTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIg KCRMRCkgaXMgR05VIGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9s ZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21l IEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAg aW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAg OzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUK LSskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KLSt3aXRoX2dudV9sZD0kbHRf Y3ZfcHJvZ19nbnVfbGQKLSsKLSsKLSsKLSsgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBs ZCBhcyB0aGUgdW5kZXJseWluZyBsaW5rZXIsIHNpbmNlIHRoZQotKyAgIyBhcmNoaXZpbmcgY29t bWFuZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCi0rICBpZiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxp YicKLSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsKLSsgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19DWFg9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAgIyBJZiBh cmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAg IyBYWFggSSB0aGluayB3bGFyYyBjYW4gYmUgZWxpbWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkg bmVlZCB0bwotKyAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1N KQotKyAgICB3bGFyYz0nJHt3bH0nCi0rCi0rICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1 cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsgICAgaWYgZXZhbCAiYCRDQyAtcHJpbnQt cHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfCBcCi0rCWdyZXAgJ25vLXdob2xlLWFyY2hpdmUn ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIk d2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1h cmNoaXZlJwotKyAgICBlbHNlCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQot KyAgICBmaQotKyAgZWxzZQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAgICB3bGFyYz0KLSsKLSsg ICAgIyBBIGdlbmVyaWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3Jl YXRpb24KLSsgICAgIyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1 c2VzIHRoZSBuYXRpdmUKLSsgICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9z c2libGUsIHRoaXMgc2V0dGluZyBzaG91bGQKLSsgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2 YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCi0rICAgICMgdGhlIHBsYXRm b3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCi0rICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsgIGZpCi0rCi0rICAjIENvbW1hbmRz IHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KLSsgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwg Z3JlcCAiXC1MIicKLSsKLStlbHNlCi0rICBHWFg9bm8KLSsgIHdpdGhfZ251X2xkPW5vCi0rICB3 bGFyYz0KLStmaQotKwotKyMgUE9SVE1FOiBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBz eXN0ZW0ncyBDKysgbGluayBjaGFyYWN0ZXJpc3RpY3MKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0 cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+ JjY7IH0KLStsZF9zaGxpYnNfQ1hYPXllcwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeDMqKQot KyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgbGRf c2hsaWJzX0NYWD1ubwotKyAgICA7OwotKyAgYWl4WzQtOV0qKQotKyAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1 biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKLSsgICAgICAjIGhhdmUgdG8g ZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0r ICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsgICAgICBub19lbnRyeV9mbGFnPSIiCi0r ICAgIGVsc2UKLSsgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rICAgICAgIyBU ZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0r ICAgICAgIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxB R1MsIHdlCi0rICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsgICAgICBjYXNl ICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCi0rCWZvciBsZF9m bGFnIGluICRMREZMQUdTOyBkbwotKwkgIGNhc2UgJGxkX2ZsYWcgaW4KLSsJICAqLWJydGwqKQot KwkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgICA7Owot KwkgIGVzYWMKLSsJZG9uZQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICBleHBfc3ltX2Zs YWc9Jy1iZXhwb3J0JwotKyAgICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgZmkK LSsKLSsgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBi dWlsdCwgQUlYIGxkIGNhbgotKyAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxl IG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsgICAgIyBvciBwcm9ncmFtIHJl c3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAg IyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBp cyBub3QKLSsgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9j IHRvIExERkxBR1MuCi0rCi0rICAgIGFyY2hpdmVfY21kc19DWFg9JycKLSsgICAgaGFyZGNvZGVf ZGlyZWN0X0NYWD15ZXMKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9JzonCi0r ICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKwotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHll czsgdGhlbgotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiop Ci0rICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwg dGhlIGNoZWNrCi0rICAgICAgIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29y ayB1bmRlciA0LjMrCi0rCWNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xs ZWN0MmAKLSsJaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAotKwkgICBzdHJpbmdzICIk Y29sbGVjdDJuYW1lIiB8IGdyZXAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0rCXRoZW4K LSsJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsJICA6Ci0rCWVsc2UKLSsJICAjIFdl IGhhdmUgb2xkIGNvbGxlY3QyCi0rCSAgaGFyZGNvZGVfZGlyZWN0X0NYWD11bnN1cHBvcnRlZAot KwkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5p bnN0YWxsZWQKLSsJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRp bmcgaGFyZGNvZGVfbWludXNfTAotKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2lu ZwotKwkgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPSctTCRsaWJkaXInCi0rCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9 Ci0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVkJwot KyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwlz aGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsgICAgICBmaQotKyAgICBlbHNl Ci0rICAgICAgIyBub3QgdXNpbmcgZ2NjCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KLSsJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJ QS02NCwgQmV0YSAzIFJlbGVhc2UKLSsJIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5n IGxpbmUgaXMgY29ycmVjdDoKLSsJc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgIGVsc2UKLSsJaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgc2hhcmVkX2Zs YWc9JyR7d2x9LUcnCi0rCWVsc2UKLSsJICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJwotKwlm aQotKyAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBk b2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAjIHVuZGVyc2NvcmUg KF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhw b3J0LgotKyAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPXllcwotKyAgICBpZiB0ZXN0ICIk YWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIFdhcm5pbmcgLSB3 aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKLSsg ICAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEg YnJva2VuIGxpYnJhcnkuCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSctYmVyb2sn Ci0rICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBl bmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2Vk PScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMv XjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1 bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2Fp eF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4n dCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFp eF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRT RUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r aWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xp YiI7IGZpCi0rCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJs aWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0rCi0rICAgICAgYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9IlwkQ0MiJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBs aWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngk e2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGVjaG8gIiR7d2x9JHthbGxvd191 bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBv cnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICBlbHNlCi0rICAgICAgaWYgdGVzdCAiJGhv c3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9 Ii16IG5vZGVmcyIKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFn IicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRu b19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxh Z30gJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rICAgICAgZWxzZQot KwkjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQg aW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KLSsJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7 Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhl ZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVy MQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0 ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3Qg IiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0lt cG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkk L1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRl c3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3Nl ZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRo aW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBk dW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRs dF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAot KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAi JGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0r CWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOici JGFpeF9saWJwYXRoIgotKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4g dGltZSBsb2FkaW5nIGZsYWdzLAotKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwg YnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCi0rCW5vX3VuZGVmaW5lZF9mbGFnX0NY WD0nICR7d2x9LWJlcm5vdG9rJwotKwlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1i ZXJvaycKLSsJIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2Jq ZWN0cyBmcm9tIGFyY2hpdmVzCi0rCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJGNvbnZl bmllbmNlJwotKwlhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCSMgVGhpcyBpcyBzaW1p bGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMu Ci0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRf b2JqZGlyLyRzb25hbWUnCi0rICAgICAgZmkKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGJlb3Mq KQotKyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9 dW5zdXBwb3J0ZWQKLSsgICAgICAjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBz YXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rICAgICAgIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAg VGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQotKyAgICAgIGFyY2hpdmVf Y21kc19DWFg9JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgZWxzZQotKyAgICAgIGxkX3No bGlic19DWFg9bm8KLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGNob3J1cyopCi0rICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rICAgICAgKikKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAg ICA7OwotKwotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAjIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgQ1hYKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVz cywKLSsgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1MJGxpYmRpcicKLSsgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0rICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9 bm8KLSsgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9eWVzCi0rCi0r ICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsg dGhlbgotKyAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2Ut YmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICAjIElmIHRo ZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0r ICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4K LSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0naWYgdGVzdCAieGAkU0VEIDFxICRleHBv cnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KLSsJY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKyAgICAgIGVsc2UKLSsJZWNobyBFWFBPUlRTID4gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgZml+Ci0rICAgICAgJENDIC1zaGFyZWQgLW5v c3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICBlbHNlCi0rICAgICAgbGRfc2hsaWJzX0NYWD1u bwotKyAgICBmaQotKyAgOzsKLSsgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgIGFy Y2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8K LSsgICAgICBoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGli cGF0aF92YXJfQ1hYPXVuc3VwcG9ydGVkCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNf Q1hYPScnCi0rICAgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rICAgICAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfQ1hYPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICAgICAgaWYgdGVz dCAiJEdYWCIgPSB5ZXMgOyB0aGVuCi0rICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2Vj aG8nCi0rICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFn cyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2lu Z2xlX21vZCR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBtb2R1bGVfY21kc19DWFg9IlwkQ0MgXCRh bGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRp ci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdz IC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2lu Z2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICAgIG1v ZHVsZV9leHBzeW1fY21kc19DWFg9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMg PiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93 X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNv bXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAg ICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KLSsg ICAgICAgIGFyY2hpdmVfY21kc19DWFg9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1u b3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwk YWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMg XCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJp bmcke19sdF9kc3ltdXRpbH0iCi0rICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2Vk ICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1l fS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIg LW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGls ZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRf ZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsgICAgICBmaQotKyAgICAgIGVsc2UK LSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgeGxjKikKLSsgICAgICAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1xbWtzaHJvYmogJHt3bH0tc2luZ2xlX21vZHVsZSAkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFs bF9uYW1lICR7d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCi0rICAgICAg ICAgIG1vZHVsZV9jbWRzX0NYWD0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1i dW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgICAgICMgRG9u J3QgZml4IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywg aXQgZG9lc24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCi0rICAgICAgICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJz LF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5h bWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICR7d2x9LXNpbmdsZV9tb2R1bGUgJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+ bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9 JwotKyAgICAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSdzZWQgLWUgInMsIy4qLCwiIC1l ICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAk b3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFn c35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xp Yn0nCi0rICAgICAgICAgIDs7Ci0rICAgICAgICopCi0rICAgICAgICAgbGRfc2hsaWJzX0NYWD1u bwotKyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICBmaQotKyAgICAgICAgOzsKLSsK LSsgIGRndXgqKQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGVjKysqKQotKwkj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJzX0NY WD1ubwotKwk7OwotKyAgICAgIGdoY3gqKQotKwkjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgot KwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJz X0NYWD1ubwotKwk7OwotKyAgICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAg OzsKLSsgIGZyZWVic2RbMTJdKikKLSsgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRl ZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9yZSBzd2l0Y2ggdG8gRUxGCi0rICAgIGxkX3NobGli c19DWFg9bm8KLSsgICAgOzsKLSsgIGZyZWVic2QtZWxmKikKLSsgICAgYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYPW5vCi0rICAgIDs7Ci0rICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICMg RnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQg RUxGCi0rICAgICMgY29udmVudGlvbnMKLSsgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgOzsK LSsgIGdudSopCi0rICAgIDs7Ci0rICBocHV4OSopCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcl9DWFg9OgotKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1F JwotKyAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAgICBoYXJkY29kZV9taW51c19MX0NY WD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJCQkjIGJ1dCBhcyB0aGUgZGVmYXVs dAotKwkJCQkjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwotKyAgICBjYXNlICRjY19iYXNl bmFtZSBpbgotKyAgICBDQyopCi0rICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgIDs7Ci0rICAgIGFD QyopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+ JENDIC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgot KyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAgICAgICMKLSsgICAgICAjIFRo ZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBm cm9tCi0rICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3 ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRo ZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rICAgICAgIyBkZXBlbmRlbmNp ZXMuCi0rICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8IGdyZXAgIlstXUwiYDsgbGlzdD0iIjsg Zm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9 IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7 IGVjaG8gJGxpc3QnCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJHJtICRvdXRwdXRfb2JqZGly LyRzb25hbWV+JENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFs bF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0 X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWIn Ci0rICAgICAgZWxzZQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgZmkKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBocHV4MTAqfGhwdXgxMSopCi0rICAgIGlmIHRlc3Qg JHdpdGhfZ251X2xkID0gbm87IHRoZW4KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9DWFg9OgotKwotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8 aWE2NCopIDs7Ci0rICAgICAgKikKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3 bH0tRScKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgICBjYXNlICRob3N0 X2NwdSBpbgotKyAgICBocHBhKjY0KnxpYTY0KikKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hY PW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsgICAgICA7OwotKyAg ICAqKQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rICAgICAgaGFyZGNvZGVfbWlu dXNfTF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJCQkJCSAgICAgICMgYnV0 IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCQkgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICBDQyopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwls ZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgICAgYUNDKikKLSsJY2FzZSAkaG9zdF9jcHUgaW4K LSsJaHBwYSo2NCopCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0k c29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIGFyY2hpdmVf Y21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0 aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj dHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsJIyBDb21tYW5kcyB0byBtYWtl IGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhp ZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJ IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQot KwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRo ZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0n dGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3Jl cCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25m dGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxp c3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhl bgotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqKQotKwkgICAgICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRz b25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgIDs7Ci0rCSAgICBpYTY0KikKLSsJICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2gg JHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkg ICAgICA7OwotKwkgICAgKikKLSsJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg LW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFs bF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAg ZmkKLSsJZWxzZQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAotKwkgIGxkX3NobGlic19DWFg9bm8KLSsJZmkKLSsJOzsKLSsgICAgZXNhYwotKyAgICA7Owot KyAgaW50ZXJpeFszLTldKikKLSsgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubwotKyAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0NYWD0nJHt3bH0tRScKLSsgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNv bXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgotKyAgICAjIEluc3RlYWQsIHNoYXJl ZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0r ICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBh IHNsb3cgdmVyeSBtZW1vcnkKLSsgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nl c3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAotKyAgICAjIDI1NiBLaUItYWxp Z25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5r Ci0rICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9y ZSBzYnJrKDIpIHNwYWNlLgotKyAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAk e3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQg KyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nc2Vk ICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+ JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5 NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgOzsKLSsgIGlyaXg1 KiB8IGlyaXg2KikKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCSMg U0dJIEMrKwotKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1z ZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2Jq ZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwotKwkjICJDQyAtYXIiLCB3aGVyZSAiQ0Mi IGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJIyBuZWNlc3NhcnkgdG8gbWFr ZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSMgaW4gdGhlIGFy Y2hpdmUuCi0rCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGli ICRvbGRvYmpzJwotKwk7OwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu Ci0rCSAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3ds fSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24g JHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3ds fSR2ZXJzdHJpbmdgIC1vICRsaWInCi0rCSAgZmkKLSsJZmkKLSsJbGlua19hbGxfZGVwbGlic19D WFg9eWVzCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19D WFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9DWFg9OgotKyAgICA7OwotKyAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIElu Yy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFy ZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIu c2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIg bmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwlhcmNoaXZlX2NtZHNfQ1hYPSd0 ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7 fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3Rl bXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRl bXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ndGVt cGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31d XCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1w ZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1w bGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRlbXBs aWIgJGxpYicKLSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBv dXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmls ZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnku Ci0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRo aXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZp bGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0 IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVz LgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgZ3JlcCAibGQi YDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBs aXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICou JG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCi0r Ci0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGgsJGxpYmRpcicK LSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwot KwotKwkjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0 ZWQgdXNpbmcKLSsJIyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNv bXBpbGVyLgotKwlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIg JG9sZG9ianMnCi0rCTs7Ci0rICAgICAgaWNwYyopCi0rCSMgSW50ZWwgQysrCi0rCXdpdGhfZ251 X2xkPXllcwotKwkjIHZlcnNpb24gOC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRp cGx5IGRlZmluZWQgc3ltYm9scwotKwkjIGlmIHdlIGFkZCAkcHJlZGVwX29iamVjdHMgYW5kICRw b3N0ZGVwX29iamVjdHMsIGhvd2V2ZXIgNy4xIGFuZAotKwkjIGVhcmxpZXIgZG8gbm90IGFkZCB0 aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJKiJWZXJz aW9uIDcuIiopCi0rICAJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgIAkgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICA7 OwotKwkqKSAgIyBWZXJzaW9uIDguMCBvciBuZXdlcgotKwkgIHRtcF9pZHluPQotKwkgIGNhc2Ug JGhvc3RfY3B1IGluCi0rCSAgICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7Ci0rCSAg ZXNhYwotKyAgCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCciJHRtcF9p ZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRs aWInCi0rCSAgOzsKLSsJZXNhYwotKwlhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCWV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJOzsKLSsgICAgICBwZ0NDKiB8IHBnY3BwKikKLSsg ICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCi0rCWFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt ZSAtbyAkbGliJwotKyAgCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwotKwloYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwl3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRj b252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9 XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5j ZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICAgIDs7Ci0rICAgICAgY3h4KikK LSsJIyBDb21wYXEgQysrCi0rCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAk bGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJwotKwotKwly dW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n LXJwYXRoICRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJ IyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBs aXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdz IGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBU aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIg ZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5l ZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3Qg Z2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQiYDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0IHwg JFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGlu ICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAk eiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRs aXN0JwotKwk7OwotKyAgICAgICopCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgot KwkqU3VuXCBDKikKLSsJICAjIFN1biBDKysgNS45Ci0rCSAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hY PScgLXpkZWZzJwotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMn Ci0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKLSsJICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5p ZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwi IHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVj aG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwotKwkg ICMgTm90IHN1cmUgd2hldGhlciBzb21ldGhpbmcgYmFzZWQgb24KLSsJICAjICRDQyAkQ0ZMQUdT IC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCi0rCSAg IyB3b3VsZCBiZSBiZXR0ZXIuCi0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0r Ci0rCSAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVh dGVkIHVzaW5nCi0rCSAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29t cGlsZXIuICBUaGlzIGlzCi0rCSAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRl ZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICBvbGRf YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICA7Owot Kwllc2FjCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGx5bnhvcyopCi0rICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICBsZF9zaGxpYnNfQ1hY PW5vCi0rICAgIDs7Ci0rICBtODhrKikKLSsgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0Ci0rICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgOzsKLSsgIG12cyop Ci0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgY3h4KikKLSsJIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8KLSsJOzsK LSsgICAgICAqKQotKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK LSsJbGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBuZXRic2Qq KQotKyAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9u dWxsOyB0aGVuCi0rICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hhcmVhYmxlICAtbyAk bGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRs aW5rZXJfZmxhZ3MnCi0rICAgICAgd2xhcmM9Ci0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgIGZpCi0rICAgICMgV29ya2Fy b3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKLSsgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwg Z3JlcCBjb25mdGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCi0r ICAgIDs7Ci0rICBvcGVuYnNkMiopCi0rICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZh aXJseSBicm9rZW4KLSsgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICA7OwotKyAgb3BlbmJzZCop Ci0rICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rICAgICAgaGFyZGNv ZGVfZGlyZWN0X0NYWD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwot KyAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg LW8gJGxpYicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBh dGgsJGxpYmRpcicKLSsgICAgICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2Qy LjgtcG93ZXJwYyI7IHRoZW4KLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5 bWJvbHMgLW8gJGxpYicKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScK LSsJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRj b252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgIGZpCi0rICAg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAgIGVsc2UKLSsgICAgICBsZF9z aGxpYnNfQ1hYPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBvc2YzKikKLSsgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4g KEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQg bGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wi IGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFt ZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwlhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1w ZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1c KS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBl eHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBs aWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9 OgotKwotKwkjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNy ZWF0ZWQgdXNpbmcKLSsJIyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysr IGNvbXBpbGVyLgotKwlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRs aWIgJG9sZG9ianMnCi0rCi0rCTs7Ci0rICAgICAgUkNDKikKLSsJIyBSYXRpb25hbCBDKysgMi40 LjEKLSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3No bGlic19DWFg9bm8KLSsJOzsKLSsgICAgICBjeHgqKQotKwlhbGxvd191bmRlZmluZWRfZmxhZ19D WFg9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lv biAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCi0rCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsK LSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhh dCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZs YWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJ IyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGls ZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdl IG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9u J3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29u ZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQiIHwgZ3JlcCAtdiAibGQ6ImA7IHRlbXBsaXN0 PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7 IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2Jq ZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztl c2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7OwotKyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgi ID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgIGFsbG93X3VuZGVm aW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBk YXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsKLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz Ci0rCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCi0rCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgb3V0cHV0 X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4 dCAyPiYxIHwgZ3JlcCAiXC1MIicKLSsKLSsJZWxzZQotKwkgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgIGxkX3NobGlic19DWFg9bm8KLSsJZmkKLSsJOzsK LSsgICAgZXNhYwotKyAgICA7OwotKyAgb3NmNCogfCBvc2Y1KikKLSsgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICBLQ0MqKQotKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtB SSkgQysrIENvbXBpbGVyCi0rCi0rCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGli cmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZv ciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAo d2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwlhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0 PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9c XFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9 XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7 IG12IFwkdGVtcGxpYiAkbGliJwotKwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n JHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9Ogot KwotKwkjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0 ZWQgdXNpbmcKLSsJIyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJb2xkX2FyY2hpdmVfY21kc19D WFg9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJwotKwk7OwotKyAgICAgIFJDQyopCi0rCSMgUmF0 aW9uYWwgQysrIDIuNC4xCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgICAgY3h4KikKLSsJYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfQ1hYPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwlhcmNoaXZlX2NtZHNf Q1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAt c29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2ZvciBpIGluIGBjYXQgJGV4 cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRp IiA+PiAkbGliLmV4cDsgZG9uZX4KLSsJICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkg ICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1l ICRzb25hbWUgLVdsLC1pbnB1dCAtV2wsJGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm JiBlY2hvIC1zZXRfdmVyc2lvbgkkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0 X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+Ci0rCSAgJHJtICRsaWIuZXhwJwotKwotKwlo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJkaXInCi0rCWhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVy IHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJIyBsaW5raW5n IGEgc2hhcmVkIGxpYnJhcnkuCi0rCSMKLSsJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBh IHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkjIGV4cGxpY2l0bHkgbGlua2lu ZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkjIGZyb20g dGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5 Ci0rCSMgZGVwZW5kZW5jaWVzLgotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9 YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQi IHwgZ3JlcCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXChe LipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsg ZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpl eHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JwotKwk7Owot KyAgICAgICopCi0rCWlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSBubzsgdGhlbgotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91 bnJlc29sdmVkICR7d2x9XConCi0rCSBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0rCSAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rCSAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICMgd2hhdCAiaGlkZGVu IiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICMg bGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSck Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgIlwtTCIn Ci0rCi0rCWVsc2UKLSsJICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsJICBsZF9zaGxpYnNfQ1hYPW5vCi0rCWZpCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsK LSsgIHBzb3MqKQotKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICA7OwotKyAgc3Vub3M0KikKLSsgICAgY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBDQyopCi0rCSMgU3VuIEMrKyA0LngKLSsJIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGlic19DWFg9bm8K LSsJOzsKLSsgICAgICBsY2MqKQotKwkjIEx1Y2lkCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgICAgKikK LSsJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGli c19DWFg9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgc29sYXJpcyopCi0rICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgQ0MqKQotKwkjIFN1biBDKysgNC4yLCA1LnggYW5k IENlbnRlcmxpbmUgQysrCi0rICAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0r CW5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKLSsJYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycK LSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+ Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhw fiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkkQ0MgLUcke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAgJHt3bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNvbmFtZSAtbyAkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFnc34kcm0gJGxpYi5leHAnCi0rCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSct UiRsaWJkaXInCi0rCWhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rCWNhc2UgJGhvc3Rf b3MgaW4KLSsJICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rCSAgKikK LSsJICAgICMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlu a2VyIG9wdGlvbnMsCi0rCSAgICAjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLgot KwkgICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJICAg IHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAt eiBkZWZhdWx0ZXh0cmFjdCcKLSsJICAgIDs7Ci0rCWVzYWMKLSsJbGlua19hbGxfZGVwbGlic19D WFg9eWVzCi0rCi0rCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkjIEFyY2hp dmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJ IyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlz Ci0rCSMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBp bmNsdWRlZAotKwkjIGluIHRoZSBhcmNoaXZlLgotKwlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJOzsKLSsgICAgICBnY3gqKQotKwkjIEdyZWVu IEhpbGxzIEMrKyBDb21waWxlcgotKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0rCSMgVGhlIEMrKyBjb21waWxl ciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZlLgotKwlvbGRfYXJjaGl2ZV9jbWRz X0NYWD0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCTs7Ci0r ICAgICAgKikKLSsJIyBHTlUgQysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKLSsJaWYg dGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAg bm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0teiAke3dsfWRlZnMnCi0rCSAgaWYgJENDIC0t dmVyc2lvbiB8IGdyZXAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSck ZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1l ICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGli LmV4cH4KLSsJCSRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRs aWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzfiRybSAkbGliLmV4cCcKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBj b21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgot KwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9s aW5rX2NtZD0iJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBn cmVwIFwiXC1MXCIiCi0rCSAgZWxzZQotKwkgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWly ZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcwotKwkgICAgIyBwbGF0Zm9ybS4KLSsJICAgIGFy Y2hpdmVfY21kc19DWFg9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRl Y2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUg InMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIu ZXhwfgotKwkJJENDIC1HIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzfiRybSAkbGliLmV4cCcKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxl ciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVu IiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAg IyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0iJENDIC1HICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCBcIlwtTFwi IgotKwkgIGZpCi0rCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIg JHdsJGxpYmRpcicKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgc29sYXJpczIuWzAtNV0gfCBz b2xhcmlzMi5bMC01XS4qKSA7OwotKwkgICopCi0rCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1k ZWZhdWx0ZXh0cmFjdCcKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwk7OwotKyAgICBlc2Fj Ci0rICAgIDs7Ci0rICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJl Ny5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotKyAgICBub191 bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgYXJjaGl2ZV9jbWRzX25lZWRf bGNfQ1hYPW5vCi0rICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgIHJ1bnBh dGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICBDQyopCi0rCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAg ICAgICopCi0rCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsJOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KikKLSsgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2ly ZSwgYmVjYXVzZSB3ZSBkbyBub3QKLSsgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3Vs ZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAjIGFsd2F5cyBiZSB1 bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsgICAg IyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2Ug LXogdGV4dAotKyAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xz IGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgIyBhcyAteiBkZWZzLgotKyAgICAjIEZv ciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3 YXlzCi0rICAgICMgdXNlIGFic29sdXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmll cywgYW5kIGV4Y2x1ZGUgdGhlCi0rICAgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxl cyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCi0rICAgICMgcmVxdWlyZXMgdGhhdCB5b3Ug Y29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0rICAgICMgU28gdGhh dCBiZWhhdmlvdXIgaXMgb25seSBlbmFibGVkIGlmIFNDT0FCU1BBVEggaXMgc2V0IHRvIGEKLSsg ICAgIyBub24tZW1wdHkgdmFsdWUgaW4gdGhlIGVudmlyb25tZW50LiAgTW9zdCBsaWtlbHkgb25s eSB1c2VmdWwgZm9yCi0rICAgICMgY3JlYXRpbmcgb2ZmaWNpYWwgZGlzdHJpYnV0aW9ucyBvZiBw YWNrYWdlcy4KLSsgICAgIyBUaGlzIGlzIGEgaGFjayB1bnRpbCBsaWJ0b29sIG9mZmljaWFsbHkg c3VwcG9ydHMgYWJzb2x1dGUgcGF0aAotKyAgICAjIG5hbWVzIGZvciBzaGFyZWQgbGlicmFyaWVz LgotKyAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgYWxsb3df dW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LG5vZGVmcycKLSsgICAgYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYPW5vCi0rICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVj aG8gJHt3bH0tUiwkbGliZGlyYCcKLSsgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9 JzonCi0rICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKyAgICBleHBvcnRfZHluYW1pY19m bGFnX3NwZWNfQ1hYPScke3dsfS1CZXhwb3J0JwotKyAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BB VEgnCi0rCi0rICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgQ0MqKQotKwlhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGly fS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJ YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3lt Ym9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwk7OwotKyAgICAgICop Ci0rCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDor JHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFs bF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKwk7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICB0YW5kZW0qKQotKyAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgIE5DQyopCi0rCSMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJbGRfc2hsaWJzX0NY WD1ubwotKwk7OwotKyAgICAgICopCi0rCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgICAgOzsK LSsgIHZ4d29ya3MqKQotKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICA7OwotKyAgKikKLSsgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgIGxkX3NobGlic19DWFg9 bm8KLSsgICAgOzsKLStlc2FjCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGxkX3NobGlic19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0r dGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK0dD Q19DWFg9IiRHWFgiCi0rTERfQ1hYPSIkTEQiCi0rCi0rY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8 PEVPRgotK2NsYXNzIEZvbwotK3sKLStwdWJsaWM6Ci0rICBGb28gKHZvaWQpIHsgYSA9IDA7IH0K LStwcml2YXRlOgotKyAgaW50IGE7Ci0rfTsKLStFT0YKLSsKLStpZiB7IChldmFsIGVjaG8gIiRh c19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxl KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgIyBQ YXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLSsgICMg b2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotKwotKyAgIyBTZW50aW5lbCB1 c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQotKyAgIyB0 aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCi0rICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPW5v Ci0rCi0rICAjIFRoZSBgKicgaW4gdGhlIGNhc2UgbWF0Y2hlcyBmb3IgYXJjaGl0ZWN0dXJlcyB0 aGF0IHVzZSBgY2FzZScgaW4KLSsgICMgJG91dHB1dF92ZXJib3NlX2NtZCBjYW4gdHJpZ2dlciBn bG9iIGV4cGFuc2lvbiBkdXJpbmcgdGhlIGxvb3AKLSsgICMgZXZhbCB3aXRob3V0IHRoaXMgc3Vi c3RpdHV0aW9uLgotKyAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9YCRlY2hvICJYJG91dHB1dF92 ZXJib3NlX2xpbmtfY21kIiB8ICRYc2VkIC1lICIkbm9fZ2xvYl9zdWJzdCJgCi0rCi0rICBmb3Ig cCBpbiBgZXZhbCAkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWRgOyBkbwotKyAgICBjYXNlICRwIGlu Ci0rCi0rICAgIC1MKiB8IC1SKiB8IC1sKikKLSsgICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFj ZSBzcGFjZSBiZXR3ZWVuICIte0wsUn0iIGFuZCB0aGUgcGF0aC4KLSsgICAgICAgIyBSZW1vdmUg dGhlIHNwYWNlLgotKyAgICAgICBpZiB0ZXN0ICRwID0gIi1MIiBcCi0rCSAgfHwgdGVzdCAkcCA9 ICItUiI7IHRoZW4KLSsJIHByZXY9JHAKLSsJIGNvbnRpbnVlCi0rICAgICAgIGVsc2UKLSsJIHBy ZXY9Ci0rICAgICAgIGZpCi0rCi0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVw c19kb25lIiA9IG5vOyB0aGVuCi0rCSBjYXNlICRwIGluCi0rCSAtTCogfCAtUiopCi0rCSAgICMg SW50ZXJuYWwgY29tcGlsZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQot KwkgICAjIHByb3ZpZGVkIHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRl ciB0aGUKLSsJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBw cm9jZXNzIHRoZW0uCi0rCSAgIGlmIHRlc3QgLXogIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhf Q1hYIjsgdGhlbgotKwkgICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7cHJldn0k e3B9IgotKwkgICBlbHNlCi0rCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtj b21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSAke3ByZXZ9JHtwfSIKLSsJICAgZmkKLSsJICAg OzsKLSsJICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0 IGJlaW5nCi0rCSAjIGxpbmtlZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4K LSsJIGVzYWMKLSsgICAgICAgZWxzZQotKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBzX0NYWCI7IHRo ZW4KLSsJICAgcG9zdGRlcHNfQ1hYPSIke3ByZXZ9JHtwfSIKLSsJIGVsc2UKLSsJICAgcG9zdGRl cHNfQ1hYPSIke3Bvc3RkZXBzX0NYWH0gJHtwcmV2fSR7cH0iCi0rCSBmaQotKyAgICAgICBmaQot KyAgICAgICA7OwotKwotKyAgICAqLiRvYmpleHQpCi0rICAgICAgICMgVGhpcyBhc3N1bWVzIHRo YXQgdGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBzaG93cyB1cAotKyAgICAgICAjIG9uY2UgaW4g dGhlIGNvbXBpbGVyIG91dHB1dC4KLSsgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRv YmpleHQiOyB0aGVuCi0rCSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcwotKwkgY29udGlu dWUKLSsgICAgICAgZmkKLSsKLSsgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBz X2RvbmUiID0gbm87IHRoZW4KLSsJIGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0 aGVuCi0rCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0rCSAgIHByZWRlcF9v YmplY3RzX0NYWD0iJHByZWRlcF9vYmplY3RzX0NYWCAkcCIKLSsJIGZpCi0rICAgICAgIGVsc2UK LSsJIGlmIHRlc3QgLXogIiRwb3N0ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgotKwkgICBwb3N0ZGVw X29iamVjdHNfQ1hYPSIkcCIKLSsJIGVsc2UKLSsJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHBv c3RkZXBfb2JqZWN0c19DWFggJHAiCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwot KyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KLSsKLSsgICAgZXNhYwotKyAgZG9uZQotKwot KyAgIyBDbGVhbiB1cC4KLSsgIHJtIC1mIGEub3V0IGEuZXhlCi0rZWxzZQotKyAgZWNobyAibGli dG9vbC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCi0rZmkK LSsKLSskcm0gLWYgY29uZmVzdC4kb2JqZXh0Ci0rCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJz X0NYWD0KLStpZiB0ZXN0IC1uICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCI7IHRoZW4K LSsgIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFg9YGVjaG8gIiAke2NvbXBpbGVyX2xpYl9z ZWFyY2hfcGF0aF9DWFh9IiB8ICR7U0VEfSAtZSAncyEgLUwhICFnJyAtZSAncyFeICEhJ2AKLStm aQotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQg aXMgYnJva2VuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIEludGVy aXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJh dGhlciB0aGFuCi0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysr IiB0byBEVFJULgotKyAgcHJlZGVwX29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3RzX0NY WD0KLSsgIHBvc3RkZXBzX0NYWD0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKyAg ICAjCi0rICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFy eSBpcwotKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNw ZWNpZnlpbmcKLSsgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBh cwotKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCi0rICAgIGNhc2UgIiAk Q1hYICRDWFhGTEFHUyAiIGluCi0rICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQotKyAgICAg IHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYg dGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBwb3N0ZGVw c19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsg IGVzYWMKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg Q0MqKQotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJh cnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBz cGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4g YXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIg JENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAg ICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAg ICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNoYXJlZCBsaWJy YXJpZXMgZm9yCi0rICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1LjYsIGVsc2Ug UElDIG9iamVjdHMgZnJvbSBhbiBvbGQKLSsgICAgIyBhcmNoaXZlIHdpbGwgYmUgbGlua2VkIGlu dG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KLSsgICAgaWYgdGVzdCAiJHNv bGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KLSsgICAgICBwb3N0ZGVwc19DWFg9Jy1s aWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsg IDs7Ci0rZXNhYwotKwotK2Nhc2UgIiAkcG9zdGRlcHNfQ1hYICIgaW4KLSsqIiAtbGMgIiopIGFy Y2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubyA7OwotK2VzYWMKLSsKLStsdF9wcm9nX2NvbXBpbGVy X3dsX0NYWD0KLStsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfQ1hYPQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsg ICMgQysrIHNwZWNpZmljIGNhc2VzIGZvciBwaWMsIHN0YXRpYywgd2wsIGV0Yy4KLSsgIGlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2ws JwotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMnCi0rCi0rICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMu Ci0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cg c3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSct QnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGFtaWdhb3MqKQotKyAgICAgICMg RklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGlicmFy aWVzLCBidXQKLSsgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZl bnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAjIGxpa2UgYC1tNjgwNDAnLgot KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFs d2F5cy1yZXN0b3JlLWE0JwotKyAgICAgIDs7Ci0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYq IHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKyAgICBtaW5ndyogfCBjeWd3 aW4qIHwgb3MyKiB8IHB3MzIqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNv dXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZv ciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1w bGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3Rp bGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBv cnQpIGxpYnJhcmllcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLURETExfRVhQ T1JUJwotKyAgICAgIDs7Ci0rICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAgICAgICMgQ29tbW9uIHN5bWJvbHMg bm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1mbm8tY29tbW9uJwotKyAgICAgIDs7Ci0rICAgICpkamdwcCopCi0rICAgICAgIyBE SkdQUCBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCi0rICAgICAgbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYPQotKyAgICAgIDs7Ci0rICAgIGludGVyaXhbMy05XSopCi0r ICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9r ZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMg YXQgcnVudGltZS4KLSsgICAgICA7OwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAt ZCAvdXNyL25lYzsgdGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9LUtjb25mb3JtX3Bp YwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhl IGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBu b3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2 NCp8aWE2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct ZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVs c2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeFs0LTldKikKLSsJIyBBbGwgQUlY IGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICMg QUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCSAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJZWxzZQotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKwlmaQotKwk7OwotKyAgICAgIGNo b3J1cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBI aWxscyBDKysgQ29tcGlsZXIKLSsJICAjIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsIENYWCk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1h aW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9s aWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJICA7OwotKwllc2FjCi0r CTs7Ci0rICAgICAgIGRhcndpbiopCi0rICAgICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24g dGhpcyBwbGF0Zm9ybQotKyAgICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4g TUhfRFlMSUIgZmlsZXMKLSsgICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAg ICAgeGxjKikKLSsgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXFub2NvbW1v bicKLSsgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKyAgICAgICAg ICAgOzsKLSsgICAgICAgICBlc2FjCi0rICAgICAgIDs7Ci0rICAgICAgZGd1eCopCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCSAgZWMrKyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9Jy1LUElDJwotKwkgICAgOzsKLSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysr IENvbXBpbGVyCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7 OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJzZCogfCBkcmFn b25mbHkqKQotKwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAgaHB1eDkqIHwg aHB1eDEwKiB8IGhwdXgxMSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkg ICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgaWYgdGVzdCAiJGhvc3Rf Y3B1IiAhPSBpYTY0OyB0aGVuCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1on Ci0rCSAgICBmaQotKwkgICAgOzsKLSsJICBhQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9LWEg JHt3bH1hcmNoaXZlJwotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqfGlh NjQqKQotKwkgICAgICAjICtaIHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJwotKwkgICAgICA7OwotKwkgICAgZXNh YwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGludGVy aXgqKQotKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBzaGFyZWQg bGlicykKLSsJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBwb3J0PwotKwk7OwotKyAgICAgIGlyaXg1 KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0Mq KQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJwotKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJ QyBpcyB0aGUgZGVmYXVsdC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJ OzsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgot KwkgIEtDQyopCi0rCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLWZQSUMnCi0rCSAgICA7OwotKwkgIGljcGMqIHwgZWNwYyopCi0rCSAgICAjIEludGVsIEMr KwotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY PSctc3RhdGljJwotKwkgICAgOzsKLSsJICBwZ0NDKiB8IHBnY3BwKikKLSsJICAgICMgUG9ydGxh bmQgR3JvdXAgQysrIGNvbXBpbGVyLgotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1X bCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mcGljJwotKwkgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJ ICAgICMgQ29tcGFxIEMrKwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5 LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRy dTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PQotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkgICAg KlN1blwgQyopCi0rCSAgICAgICMgU3VuIEMrKyA1LjkKLSsJICAgICAgbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYPSctS1BJQycKLSsJICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSct QnN0YXRpYycKLSsJICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1Rb3B0aW9uIGxkICcK LSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBs eW54b3MqKQotKwk7OwotKyAgICAgIG04OGsqKQotKwk7OwotKyAgICAgIG12cyopCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCSAgY3h4KikKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLVcgYyxleHBvcnRhbGwnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0r CTs7Ci0rICAgICAgbmV0YnNkKikKLSsJOzsKLSsgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSop Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgS0NDKikKLSsJICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYPSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIDs7Ci0rCSAgUkNDKikKLSsJICAgICMg UmF0aW9uYWwgQysrIDIuNC4xCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMn Ci0rCSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKwotKwkgICAg bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElD IGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCi0rCSAgICAjIExpbnV4 IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCi0rCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFg9Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25f c2hhcmVkJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAg IHBzb3MqKQotKwk7OwotKyAgICAgIHNvbGFyaXMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgot KwkgIENDKikKLSsJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKLSsJ ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9 Jy1Rb3B0aW9uIGxkICcKLSsJICAgIDs7Ci0rCSAgZ2N4KikKLSsJICAgICMgR3JlZW4gSGlsbHMg QysrIENvbXBpbGVyCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1QSUMnCi0rCSAg ICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgc3Vub3M0KikKLSsJ Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICAjIFN1biBDKysgNC54Ci0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJICBsY2MqKQotKwkgICAgIyBMdWNp ZAotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJwotKwkgICAgOzsKLSsJICAq KQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHRhbmRlbSopCi0rCWNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rCSAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSog fCBzY281djYqIHwgT3BlblVOSVgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikK LSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0n LUJzdGF0aWMnCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgdnh3b3JrcyopCi0rCTs7 Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubwot Kwk7OwotKyAgICBlc2FjCi0rICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYIiA+JjY7IH0KLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUg dGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19j b21waWxlcl9waWNfQ1hYIjsgdGhlbgotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3 b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFggd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3Bp Y193b3Jrc19DWFg9bm8KLSsgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAg IGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAg IyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJp YWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIs IG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBk b2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xs YXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5 LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lk IGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNF RCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcg XAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwK LSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRh c19tZToxMzQ4MDogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIg Mj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICBlY2hvICIkYXNfbWU6MTM0ODQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlm IChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAg IyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90 IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhl ciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9p bGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3Qg ISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2 L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPXll cwotKyAgICAgZmkKLSsgICBmaQotKyAgICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jr c19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hY IiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NY WCIgPSB4eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCBpbgot KyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIg JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxk X3NoYXJlZF9DWFg9bm8KLStmaQotKwotK2ZpCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3Ig cGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6 Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgIDs7Ci0r ICAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiRsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFggLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBp bGVyX3dsX0NYWCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFhcIgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29t cGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3JrcyIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2Zs YWcgd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3Rh dGljX3dvcmtzX0NYWCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9bm8K LSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90 bXBfc3RhdGljX2ZsYWciCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBj b25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25m dGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmln LmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRlY2hvICJYJF9s dF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAot KyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIK LSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRo ZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9eWVzCi0r ICAgICAgIGZpCi0rICAgICBlbHNlCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzX0NYWD15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkcm0gLXIgY29uZnRlc3QqCi0r ICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4m NQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA+JjY7 IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIg PSB4eWVzOyB0aGVuCi0rICAgIDoKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWD0KLStmaQotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBp ZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0 Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPW5vCi0rICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rl di9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91 dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4 dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZM QUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29u ZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUg aXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0 aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBj b3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0r ICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAg IC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAt ZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTox MzU4NDogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQv Y29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJy ID4mNQotKyAgIGVjaG8gIiRhc19tZToxMzU4ODogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAg aWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQK LSsgICB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUg dGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUg YXJlIHdhcm5pbmdzCi0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwg JFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAv XiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0 ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0 ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19v X0NYWD15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJHJt IGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkg b3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0 IC1kIG91dC9paV9maWxlcyAmJiAkcm0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2Zp bGVzCi0rICAgJHJtIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgcm1kaXIgY29u ZnRlc3QKLSsgICAkcm0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjUKLSskYXNfZWNo byAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY2OyB9Ci0rCi0rCi0raGFyZF9saW5r cz0ibm90dGVzdGVkIgotK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID0g bm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCi0rICAjIGRvIG5vdCBvdmVyd3Jp dGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQg bGlua3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFy ZCBsaW5rcy4uLiAiID4mNjsgfQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRybSBjb25mdGVzdCoK LSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5v Ci0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8 fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwg JiYgaGFyZF9saW5rcz1ubwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGhhcmRfbGlua3MiID4mNQotKyRhc19lY2hvICIkaGFyZF9saW5rcyIgPiY2OyB9Ci0rICBpZiB0 ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFr ZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAk Q0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2Fm ZSIgPiYyO30KLSsgICAgbmVlZF9sb2Nrcz13YXJuCi0rICBmaQotK2Vsc2UKLSsgIG5lZWRfbG9j a3M9bm8KLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0 aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIg KCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKwotKyAgZXhwb3J0 X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5 bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRf c3ltYm9scycKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeFs0LTldKikKLSsgICAgIyBJZiB3 ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0r ICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5n bGUgd2l0aCBHTlUgbm0KLSsgICAgaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9u dWxsOyB0aGVuCi0rICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQnBnICRsaWJv YmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09 ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJp bnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0r ICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVu aWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJUIikgfHwgKFwkMiA9PSAiRCIpIHx8IChc JDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkMyB9IH0n XCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgZmkKLSsgICAgOzsKLSsgIHB3 MzIqKQotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCi0rICA7Owot KyAgY3lnd2luKiB8IG1pbmd3KikKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAk bGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcn L15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvOy9eLipbIF1fX25tX18vcy9e LipbIF1fX25tX19cKFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltBSVRXXVsg XS9zLy4qWyBdLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICA7Owot KyAgKikKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAkY29udmVu aWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIDs7Ci0rICBlc2FjCi0rICBleGNsdWRlX2V4 cHN5bXNfQ1hYPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCi0rCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgiID4mNQot KyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19DWFgi ID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhw bGljaXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hY IiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHNf Q1hYIGluCi0rICAgIConficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwg d2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQot KyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGgg LWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJl Zm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24n dCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRs eSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAgICAgZWNo byAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0r ICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikg PiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIHNvbmFtZT1jb25mdGVz dAotKyAgICAgICAgbGliPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19v YmpleHQKLSsgICAgICAgIGRlcGxpYnM9Ci0rICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93 bF9DWFgKLSsJcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWAotKyAgICAgICAgY29t cGlsZXJfZmxhZ3M9LXYKLSsgICAgICAgIGxpbmtlcl9mbGFncz0tdgotKyAgICAgICAgdmVyc3Ry aW5nPQotKyAgICAgICAgb3V0cHV0X29iamRpcj0uCi0rICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0 Ci0rICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRf ZmxhZ19DWFgKLSsgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KLSsgICAgICAgIGlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kc19DWFggMlw+XCYx IFx8IGdyZXAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1Ci0rICAoZXZhbCAk YXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+ XCYxKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAg dGhlbgotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAgICAgZWxzZQotKwkg IGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAg ICBlbHNlCi0rICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAg ICRybSBjb25mdGVzdCoKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21k c19uZWVkX2xjX0NYWCIgPiY2OyB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7 Ci0rZXNhYwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWlj IGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFt aWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsgfQotK2xpYnJhcnlfbmFtZXNfc3Bl Yz0KLStsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJwotK3NvbmFtZV9zcGVjPQotK3NocmV4dF9jbWRz PSIuc28iCi0rcG9zdGluc3RhbGxfY21kcz0KLStwb3N0dW5pbnN0YWxsX2NtZHM9Ci0rZmluaXNo X2NtZHM9Ci0rZmluaXNoX2V2YWw9Ci0rc2hsaWJwYXRoX3Zhcj0KLStzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9dW5rbm93bgotK3ZlcnNpb25fdHlwZT1ub25lCi0rZHluYW1pY19saW5rZXI9 IiRob3N0X29zIGxkLnNvIgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3Iv bGliIgotKwotK25lZWRfbGliX3ByZWZpeD11bmtub3duCi0raGFyZGNvZGVfaW50b19saWJzPW5v Ci0rCi0rIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9l cyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCi0rIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJn dW1lbnRzCi0rbmVlZF92ZXJzaW9uPXVua25vd24KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4 MyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJwotKyAgc2hs aWJwYXRoX3Zhcj1MSUJQQVRICi0rCi0rICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBv cnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgOzsKLSsK LSthaXhbNC05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0 ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQK LSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBlbHNlCi0rICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVh dGUgYW4gaW1wb3J0IGZpbGUKLSsgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUg aW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAotKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRo aXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCi0rICAgICMgZGVwZW5kIG9u IGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCi0rICAg ICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCi0rICAgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCi0rICAg ICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05V Q19NSU5PUl9fID49IDk3KScKLSsJICAgZWNobyAnIHllcyAnCi0rCSAgIGVjaG8gJyNlbmRpZic7 IH0gfCAke0NDfSAtRSAtIHwgZ3JlcCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAg IGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAg ZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBz byBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGlu dG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8K LSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1 dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu Ci0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVy KSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxl dCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNo YXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAj IFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdo IEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGlt ZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElCUEFU SAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRs aWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxp YnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGlu IGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVjaG8g IlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wn J2A7IHRlc3QgJHJtIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2Qg L3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMv bGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25l JwotKyAgOzsKLSsKLStiZW9zKikKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0nCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rICBzaGxp YnBhdGhfdmFyPUxJQlJBUllfUEFUSAotKyAgOzsKLSsKLStic2RpWzQ1XSopCi0rICB2ZXJzaW9u X3R5cGU9bGludXgKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9z aGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9j YWwvbGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAv dXNyL2xvY2FsL2xpYiIKLSsgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5z IC91c3IvY29udHJpYi9saWIgYW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBh IGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0byBo YXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWluZ3cq IHwgcHczMiopCi0rICB2ZXJzaW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwi Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2FzZSAk R0NDLCRob3N0X29zIGluCi0rICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiop Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCi0rICAgICMgRExMIGlz IGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKLSsgICAg cG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+Ci0rICAgICAg ZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7 ZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxw YXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAg ICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2ht b2QgYSt4IFwkZGxkaXIvJGRsbmFtZScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1g JFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBk bHBhdGg9JGRpci9cJGRsZGxsfgotKyAgICAgICAkcm0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBj eWd3aW4qKQotKyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhh biAnbGliJwotKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdz L15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJz dWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAgICAgOzsKLSsgICAg bWluZ3cqKQotKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4 Ci0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAt ZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJp ZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgICAgICBp ZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTovJyA+ L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dz IGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKLSsgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJl IHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKLSsgICAgICAgICMgcGF0 aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRs ZSB0aGUKLSsgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0 YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKLSsgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBt aWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKLSsgICAgICAg ICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KLSsg ICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgICAgICBlbHNlCi0rICAgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwg JFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7Owot KyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRo YW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBz ZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cn YCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7 OwotKwotKyAgKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHty ZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAk bGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIg bGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGly ZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7 Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk eWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBu ZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNo YXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKLSsgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4 dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJg JwotKwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIg L3Vzci9saWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JwotKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikKLSsg IGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsg ICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQg YSBuZXcKLSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYgdGVz dCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9v Ympmb3JtYXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJzZFsx MjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVsZiA7OwotKyAgICBl c2FjCi0rICBmaQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAotKyAgY2FzZSAk dmVyc2lvbl90eXBlIGluCi0rICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAg ICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7Owot KyAgICBmcmVlYnNkLSopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXgnCi0rICAgICAgbmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZnJl ZWJzZDIqKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIDs7Ci0r ICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsK LSsgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKLSsgIGZyZWVic2Q0 LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4x LjEpCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5 Ci0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUqKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGli bmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0r ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhwdXgxMCogfCBo cHV4MTEqKQotKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZl cnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIg dmVyc2lvbnMuCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbmVlZF92ZXJzaW9uPW5vCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAg IHNocmV4dF9jbWRzPScuc28nCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyAr bm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgaWYgdGVz dCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2Nh bC9saWIiCi0rICAgIGVsc2UKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsg ICBocHBhKjY0KikKLSsgICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJ Ql9QQVRICi0rICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtu b2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBf NjQiCi0rICAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjCi0rICAgICA7OwotKyAgICopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGR5 bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hMSUJf UEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJl ZCB0byBlbmFibGUgU0hMSUJfUEFUSAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsKLSsg IGVzYWMKLSsgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJy YXJpZXMgYXJlIG1vZGUgNTU1LgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWIn Ci0rICA7OwotKwotK2ludGVyaXhbMy05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStpcml4NSog fCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9w dXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9j dl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51eAotKwllbHNl Ci0rCQl2ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBpcml4NSogfCBu b25zdG9wdXgqKQotKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAg ICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVz IHRvIExECi0rICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIp Ci0rICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4z MnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxp YnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8 Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0IHNobGlic3Vm Zj02NCBsaWJtYWdpYz02NC1iaXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1h Z2ljPW5ldmVyLW1hdGNoOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGli c3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIK LSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1 cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxp bnV4KmFvdXQqIHwgbGludXgqY29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsK LSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkKLSsgIHZl cnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4i IGxkY29uZmlnIC1uICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAjIFRoaXMgaW1wbGllcyBubyBm YXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2ls bCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBj YW4gYmUgZW5hYmxlZC4KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9j YWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp YiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNv bnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7 IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50 ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYg KCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQg LWUgJ3MvIy4qLy87L15bIAldKmh3Y2FwWyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3Mv PVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKLSsg IGZpCi0rCi0rICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxl IHNoYXJlZCBsaWJyYXJpZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkg c3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMgbGlu a2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAgIyBt b3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5 cyBhbmQKLSsgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qg d2FzIHJlbW92ZWQsIGFuZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxp bmtlciBpcyBpbiB1c2UuCi0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwotKyAg OzsKLSsKLStuZXRic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9z YmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChh Lm91dCkgbGQuc28nCi0rICBlbHNlCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGR5bmFt aWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJwotKyAgZmkKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK25ld3NvczYpCi0rICB2ZXJzaW9uX3R5cGU9 bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rbnRvLXFueCop Ci0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92 ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLStvcGVu YnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Ii91c3IvbGliIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVy c2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMu Ci0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5l ZWRfdmVyc2lvbj15ZXMgOzsKLSsgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92 ZXJzaW9uPW5vICA7OwotKyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmln IC1tICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYgdGVz dCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAi JGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQot KwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQot KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStv czIqKQotKyAgbGlibmFtZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFy ZWRfZXh0fSAkbGlibmFtZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAg c2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikK LSsgIHZlcnNpb25fdHlwZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAv dXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgot KyAgOzsKLSsKLStyZG9zKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFy aXMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5l ZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKLSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBl eGVjdXRhYmxlCi0rICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsK LStzdW5vczQqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNy L2V0YyIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9n bnVfbGQiID0geWVzOyB0aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5l ZWRfdmVyc2lvbj15ZXMKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAg ICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsgICAgICBy dW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAg bmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScv bGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsK LStzeXN2NCpNUCopCi0rICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25f dHlwZT1saW51eAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0 fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicK LSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5 c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2 NCp1dzIqKQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNy L2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0rICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgZWxzZQotKyAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc2NvMy4y djUqKQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIC9saWIiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1 Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlu a2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLStpZiB0ZXN0ICIke2x0X2N2X3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLStzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0raWYgdGVzdCAiJHtsdF9j dl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLSsK LSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0 aF92YXIiCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENP TVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3Jh bXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBh dGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KLStoYXJkY29kZV9hY3Rpb25fQ1hYPQotK2lm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCIgfHwgXAotKyAgIHRlc3Qg LW4gIiRydW5wYXRoX3Zhcl9DWFgiIHx8IFwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRp Y19DWFgiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0 YW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9DWFgiICE9IG5v ICYmCi0rICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlz IHNobGlicGF0aF92YXIsIHdlCi0rICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2Ug bWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ugc2hv dWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAjIyB0 ZXN0ICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBDWFgpIiAhPSBubyAm JgotKyAgICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0xfQ1hYIiAhPSBubzsgdGhlbgotKyAgICAj IExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5 LgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNh biBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGlu ZyBkaXJzLgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPWltbWVkaWF0ZQotKyAgZmkKLStlbHNl Ci0rICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBo YXJkY29kZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlvbl9D WFg9dW5zdXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9D WFgiID4mNjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluazsg dGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFibGVf ZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo IiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsgICMg RmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5zdGFs bD1uZWVkbGVzcwotK2ZpCi0rCi0rCi0rIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmly ZSB3aGVuIGJvb3RzdHJhcHBpbmcgdGhlCi0rIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3 aXNlIHlvdSBmb3Jnb3QgdG8gc2hpcCBsdG1haW4uc2gKLSsjIHdpdGggeW91ciBwYWNrYWdlLCBh bmQgeW91IHdpbGwgZ2V0IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUKLSsjIG5vIHJ1bGVzIHRv IGdlbmVyYXRlIGx0bWFpbi5zaC4KLStpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgotKyAgIyBT ZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFs bG93IG91ciBjb21tYW5kcyB0aHJvdWdoCi0rICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2Fw ZXMuCi0rICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgICBzZXRv cHQgTk9fR0xPQl9TVUJTVAotKyAgZmkKLSsgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRo YXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKLSsgICMgY2FyZWZ1bCBu b3QgdG8gb3ZlcnF1b3RlIHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9m IHRoZQotKyAgIyB2YXJpYWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24g b2YgdGhlIGxpYnRvb2wgc2NyaXB0LgotKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZM QUdTIEFSIEFSX0ZMQUdTIEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAotKyAg ICBTRUQgU0hFTEwgU1RSSVAgXAotKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVj IHNvbmFtZV9zcGVjIGV4dHJhY3RfZXhwc3ltc19jbWRzIFwKLSsgICAgb2xkX3N0cmlwbGliIHN0 cmlwbGliIGZpbGVfbWFnaWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKLSsgICAgZGVw bGlic19jaGVja19tZXRob2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCi0r ICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY2RlY2wgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz cyBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYyBcCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMg XAotKyAgICBjb21waWxlcl9DWFggXAotKyAgICBDQ19DWFggXAotKyAgICBMRF9DWFggXAotKyAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WCBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWCBcCi0rICAgIGx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWCBcCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFggXAotKyAgICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNfQ1hYIFwKLSsgICAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWNfQ1hYIFwKLSsgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lc19DWFggXAotKyAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWCBcCi0rICAgIG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHNfQ1hYIFwKLSsgICAgcHJlZGVwX29iamVjdHNfQ1hYIFwKLSsgICAgcG9z dGRlcF9vYmplY3RzX0NYWCBcCi0rICAgIHByZWRlcHNfQ1hYIFwKLSsgICAgcG9zdGRlcHNfQ1hY IFwKLSsgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCBcCi0rICAgIGNvbXBpbGVyX2xp Yl9zZWFyY2hfZGlyc19DWFggXAotKyAgICBhcmNoaXZlX2NtZHNfQ1hYIFwKLSsgICAgYXJjaGl2 ZV9leHBzeW1fY21kc19DWFggXAotKyAgICBwb3N0aW5zdGFsbF9jbWRzX0NYWCBcCi0rICAgIHBv c3R1bmluc3RhbGxfY21kc19DWFggXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k c19DWFggXAotKyAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFggXAotKyAgICBub191bmRlZmlu ZWRfZmxhZ19DWFggXAotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWCBcCi0rICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19sZF9DWFggXAotKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCBcCi0rICAgIGhh cmRjb2RlX2F1dG9tYXRpY19DWFggXAotKyAgICBtb2R1bGVfY21kc19DWFggXAotKyAgICBtb2R1 bGVfZXhwc3ltX2NtZHNfQ1hYIFwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIFwK LSsgICAgZml4X3NyY2ZpbGVfcGF0aF9DWFggXAotKyAgICBleGNsdWRlX2V4cHN5bXNfQ1hYIFwK LSsgICAgaW5jbHVkZV9leHBzeW1zX0NYWDsgZG8KLSsKLSsgICAgY2FzZSAkdmFyIGluCi0rICAg IG9sZF9hcmNoaXZlX2NtZHNfQ1hYIHwgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz X0NYWCB8IFwKLSsgICAgYXJjaGl2ZV9jbWRzX0NYWCB8IFwKLSsgICAgYXJjaGl2ZV9leHBzeW1f Y21kc19DWFggfCBcCi0rICAgIG1vZHVsZV9jbWRzX0NYWCB8IFwKLSsgICAgbW9kdWxlX2V4cHN5 bV9jbWRzX0NYWCB8IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYIHwg XAotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWCB8IFwKLSsgICAgZXh0cmFjdF9leHBzeW1z X2NtZHMgfCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRzIHwgXAotKyAgICBwb3N0aW5zdGFsbF9j bWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyB8 IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgfCBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YyB8IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQotKyAgICAgICMgRG91YmxlLXF1b3RlIGRv dWJsZS1ldmFsZWQgc3RyaW5ncy4KLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBc IlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJcJHNl ZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgotKyAg ICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQk dmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgIGNhc2UgJGx0X2VjaG8gaW4KLSsgIConXCQwIC0t ZmFsbGJhY2stZWNobyInKQotKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRYc2Vk IC1lICdzL1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8iLydg Ci0rICAgIDs7Ci0rICBlc2FjCi0rCi0rY2ZnZmlsZT0iJG9maWxlIgotKwotKyAgY2F0IDw8X19F T0ZfXyA+PiAiJGNmZ2ZpbGUiCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFn bmFtZQotKwotKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwg dW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKLSsKLSsjIFNoZWxsIHRvIHVzZSB3aGVu IGludm9raW5nIHNoZWxsIHNjcmlwdHMuCi0rU0hFTEw9JGx0X1NIRUxMCi0rCi0rIyBXaGV0aGVy IG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGlicz0k ZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJh cmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hldGhlciBvciBu b3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0 b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWAotKwotKyMgV2hldGhlciBvciBu b3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYwot K2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93 aXRoX3N0YXRpY19ydW50aW1lc19DWFgKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXpl IGZvciBmYXN0IGluc3RhbGxhdGlvbi4KLStmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3Rh bGwKLSsKLSsjIFRoZSBob3N0IHN5c3RlbS4KLStob3N0X2FsaWFzPSRob3N0X2FsaWFzCi0raG9z dD0kaG9zdAotK2hvc3Rfb3M9JGhvc3Rfb3MKLSsKLSsjIFRoZSBidWlsZCBzeXN0ZW0uCi0rYnVp bGRfYWxpYXM9JGJ1aWxkX2FsaWFzCi0rYnVpbGQ9JGJ1aWxkCi0rYnVpbGRfb3M9JGJ1aWxkX29z Ci0rCi0rIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNo ZXMuCi0rZWNobz0kbHRfZWNobwotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgotK0FS X0ZMQUdTPSRsdF9BUl9GTEFHUwotKwotKyMgQSBDIGNvbXBpbGVyLgotK0xUQ0M9JGx0X0xUQ0MK LSsKLSsjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCi0rCi0r IyBBIGxhbmd1YWdlLXNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcl9DWFgKLSsK LSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQ19D WFgKLSsKLSsjIEFuIEVSRSBtYXRjaGVyLgotK0VHUkVQPSRsdF9FR1JFUAotKwotKyMgVGhlIGxp bmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KLStMRD0kbHRfTERfQ1hYCi0rCi0rIyBXaGV0 aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsjIEEg QlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KLStOTT0kbHRfTk0KLSsKLSsjIEEgc3ltYm9sIHN0 cmlwcGluZyBwcm9ncmFtCi0rU1RSSVA9JGx0X1NUUklQCi0rCi0rIyBVc2VkIHRvIGV4YW1pbmUg bGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgotK01BR0lDX0NNRD0k TUFHSUNfQ01ECi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCi0r RExMVE9PTD0iJERMTFRPT0wiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4K LStPQkpEVU1QPSIkT0JKRFVNUCIKLSsKLSsjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCi0r QVM9IiRBUyIKLSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0 ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgSG93IHRvIGNy ZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2Zs YWcKLStyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKLSsKLSsjIEhvdyB0byBwYXNzIGEgbGlu a2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCi0rd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJf d2xfQ1hYCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0 PSIkYWNfb2JqZXh0IgotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgot K2xpYmV4dD0iJGxpYmV4dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkg Ii5zbyIpLgotK3NocmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRhYmxlIGZp bGUgc3VmZml4IChub3JtYWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMgQWRkaXRp b25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3BpY19m bGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgKLStwaWNfbW9kZT0kcGljX21vZGUKLSsK LSsjIFdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KLSttYXhfY21kX2xl bj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91 c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9jdl9w cm9nX2NvbXBpbGVyX2Nfb19DWFgKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5n IGNvbXBpbGF0aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIERvIHdlIG5l ZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVkX2xp Yl9wcmVmaXgKLSsKLSsjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0rbmVl ZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRl ZC4KLStkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9wZW4g b2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3Nl bGYKLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlz IHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0 aWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0rbGlu a19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYCi0rCi0rIyBDb21w aWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5fZmxh Zz0kbHRfbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYCi0rCi0rIyBDb21waWxl ciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgotK2V4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWAotKwotKyMgQ29tcGlsZXIgZmxh ZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3do b2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgKLSsK LSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KLSt0aHJl YWRfc2FmZV9mbGFnX3NwZWM9JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19DWFgKLSsKLSsjIExp YnJhcnkgdmVyc2lvbmluZyB0eXBlLgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0rCi0r IyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KLStsaWJuYW1lX3NwZWM9JGx0X2xpYm5h bWVfc3BlYwotKwotKyMgTGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUg cmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KLSsjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9u ZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUUuCi0rbGlicmFyeV9uYW1lc19zcGVj PSRsdF9saWJyYXJ5X25hbWVzX3NwZWMKLSsKLSsjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJy YXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lLgotK3NvbmFtZV9zcGVjPSRsdF9z b25hbWVfc3BlYwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhbiBv bGQtc3R5bGUgYXJjaGl2ZS4KLStSQU5MSUI9JGx0X1JBTkxJQgotK29sZF9hcmNoaXZlX2NtZHM9 JGx0X29sZF9hcmNoaXZlX2NtZHNfQ1hYCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9w b3N0aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmlu c3RhbGxfY21kcwotKwotKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFy ZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9m cm9tX25ld19jbWRzX0NYWAotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNo aXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgKLSsK LSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYSBzaGFyZWQgYXJjaGl2ZS4K LSthcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19DWFgKLSthcmNoaXZlX2V4cHN5bV9jbWRz PSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX0NYWAotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3Rp bnN0YWxsX2NtZHMKLStwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcwot KwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBz YW1lIGFzIGFib3ZlIGlmIGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19DWFgK LSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19DWFgKLSsKLSsjIENv bW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KLStvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxp YgotK3N0cmlwbGliPSRsdF9zdHJpcGxpYgotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJl Zm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJy YXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19DWFgKLSsKLSsjIERlcGVu ZGVuY2llcyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRl IGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmpl Y3RzX0NYWAotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBi ZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcHM9JGx0 X3ByZWRlcHNfQ1hYCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVj dHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwb3N0ZGVw cz0kbHRfcG9zdGRlcHNfQ1hYCi0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhp cyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJf bGliX3NlYXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYCi0rCi0rIyBU aGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdo ZW4gbGlua2luZwotKyMgYSBzaGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNoX3Bh dGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgKLSsKLSsjIE1ldGhvZCB0byBjaGVj ayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgotK2RlcGxp YnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwotKyMgQ29tbWFuZCB0 byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgotK2ZpbGVfbWFn aWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQg bGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWAotKwotKyMgRmxhZyB0aGF0 IGZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9f dW5kZWZpbmVkX2ZsYWdfQ1hYCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRv b2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCi0rZmluaXNoX2NtZHM9JGx0 X2ZpbmlzaF9jbWRzCi0rCi0rIyBTYW1lIGFzIGFib3ZlLCBidXQgYSBzaW5nbGUgc2NyaXB0IGZy YWdtZW50IHRvIGJlIGV2YWxlZCBidXQgbm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9maW5p c2hfZXZhbAotKwotKyMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGlu ZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9m IG5tIGluIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24KLStnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRs dF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAotKwotKyMgVHJhbnNmb3JtIHRoZSBv dXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyCi0rZ2xvYmFsX3N5bWJvbF90b19j X25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3MKLSsKLSsjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJs ZS4KLStydW5wYXRoX3Zhcj0kcnVucGF0aF92YXIKLSsKLSsjIFRoaXMgaXMgdGhlIHNoYXJlZCBs aWJyYXJ5IHBhdGggdmFyaWFibGUuCi0rc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgotKwot KyMgSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNl YXJjaCBwYXRoPwotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRo IGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9D WFgKLSsKLSsjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBs aWJyYXJpZXMuCi0raGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKLSsKLSsj IEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4K LSsjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCi0raGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgK LSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGli ZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVu IGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWAotKwotKyMgV2hldGhl ciB3ZSBuZWVkIGEgc2luZ2xlIC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQu Ci0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9DWFgKLSsKLSsjIFNldCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9 IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5h cnkuCi0raGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfQ1hYCi0rCi0rIyBTZXQgdG8g eWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIg aW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNv ZGVfbWludXNfTF9DWFgKLSsKLSsjIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1E SVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvCi0rIyB0aGUgcmVzdWx0aW5nIGJp bmFyeS4KLStoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NY WAotKwotKyMgU2V0IHRvIHllcyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgaGFyZGNvZGVzIERJUiBpbnRvIHRoZSBsaWJyYXJ5Ci0rIyBhbmQgYWxsIHN1YnNlcXVl bnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KLStoYXJkY29k ZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19DWFgKLSsKLSsjIFZhcmlhYmxlcyB3aG9z ZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAot KyMgcmVzdG9yZWQgYXQgcmVsaW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9 IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0 IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLSts aW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0NYWAotKwotKyMgQ29tcGlsZS10aW1l IHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSRsdF9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIFJ1bi10aW1lIHN5c3RlbSBz ZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0 X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxl IFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9z cmNmaWxlX3BhdGgKLSsKLSsjIFNldCB0byB5ZXMgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVx dWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hY Ci0rCi0rIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgotK2V4cG9ydF9z eW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYCi0rCi0rIyBUaGUgY29tbWFu ZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNo aXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwot KyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3lt Ym9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19DWFgKLSsKLSsjIFN5 bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KLStpbmNsdWRlX2V4cHN5bXM9JGx0 X2luY2x1ZGVfZXhwc3ltc19DWFgKLSsKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAk dGFnbmFtZQotKwotK19fRU9GX18KLSsKLSsKLStlbHNlCi0rICAjIElmIHRoZXJlIGlzIG5vIE1h a2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCi0rICAjIGBjb25m aWcuc3RhdHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUK LSsgICMgbGlidG9vbCBzY3JpcHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwg c2VkIC1lICdzL1wuc2gkLy5pbi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4K LSsgICAgdGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAgZmkKLStmaQotKwot KwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0Mg LWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJEND IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJf Z251Ci0rCi0rQ0M9JGx0X3NhdmVfQ0MKLStMRENYWD0kTEQKLStMRD0kbHRfc2F2ZV9MRAotK0dD Qz0kbHRfc2F2ZV9HQ0MKLSt3aXRoX2dudV9sZGN4eD0kd2l0aF9nbnVfbGQKLSt3aXRoX2dudV9s ZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2x0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQK LStsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKLStsdF9jdl9wcm9nX2dudV9sZGN4eD0k bHRfY3ZfcHJvZ19nbnVfbGQKLStsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9s ZAotKwotKwllbHNlCi0rCSAgdGFnbmFtZT0iIgotKwlmaQotKwk7OwotKwotKyAgICAgIEY3NykK LSsJaWYgdGVzdCAtbiAiJEY3NyIgJiYgdGVzdCAiWCRGNzciICE9ICJYbm8iOyB0aGVuCi0rCi0r YWNfZXh0PWYKLSthY19jb21waWxlPSckRjc3IC1jICRGRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJEY3NyAtbyBjb25mdGVzdCRhY19leGVleHQgJEZGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2Y3 N19jb21waWxlcl9nbnUKLSsKLSsKLSthcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9bm8KLSthbGxv d191bmRlZmluZWRfZmxhZ19GNzc9Ci0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0Y3Nz1ubwotK2Fy Y2hpdmVfZXhwc3ltX2NtZHNfRjc3PQotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9Ci0r aGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PQot K2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfRjc3PQotK2hhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3JfRjc3PQotK2hhcmRjb2RlX21pbnVzX0xfRjc3PW5vCi0raGFyZGNvZGVfYXV0b21hdGlj X0Y3Nz1ubwotK21vZHVsZV9jbWRzX0Y3Nz0KLSttb2R1bGVfZXhwc3ltX2NtZHNfRjc3PQotK2xp bmtfYWxsX2RlcGxpYnNfRjc3PXVua25vd24KLStvbGRfYXJjaGl2ZV9jbWRzX0Y3Nz0kb2xkX2Fy Y2hpdmVfY21kcwotK25vX3VuZGVmaW5lZF9mbGFnX0Y3Nz0KLSt3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19GNzc9Ci0rZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzc9bm8KLSsK LSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZjc3IHRlc3Qgc291cmNlcy4KLSthY19leHQ9 ZgotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBmNzcgdGVzdCBzb3Vy Y2VzLgotK29iamV4dD1vCi0rb2JqZXh0X0Y3Nz0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVz ZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9 IlwKLSsgICAgICBzdWJyb3V0aW5lIHQKLSsgICAgICByZXR1cm4KLSsgICAgICBlbmQKLSsiCi0r Ci0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlu a190ZXN0X2NvZGU9IlwKLSsgICAgICBwcm9ncmFtIHQKLSsgICAgICBlbmQKLSsiCi0rCi0rIyBs dG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3Vy ZSAkQ0MgaXMgc2V0LgotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2Ug Q0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdl cmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1Mi fQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0r Y29tcGlsZXI9JENDCi0rCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBs ZSB0ZXN0IGNvZGUKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwgIiRhY19j b21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0 LmVycgotK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0g Y29uZnRlc3QqCi0rCi0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNfbGlu ayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIK LStfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRybSAtciBjb25m dGVzdCoKLSsKLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1l bnRzLgotK2x0X3NhdmVfQ0M9IiRDQyIKLStDQz0ke0Y3Ny0iZjc3In0KLStjb21waWxlcj0kQ0MK LStjb21waWxlcl9GNzc9JENDCi0rZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCi0rICBj YXNlICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwg KltcXC9dY2NhY2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwg KltcXC9dcHVyaWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBlc2Fj Ci0rZG9uZQotK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4q LyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJh cmllcy4uLiAiID4mNjsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRj YW5fYnVpbGRfc2hhcmVkIiA+JjUKLSskYXNfZWNobyAiJGNhbl9idWlsZF9zaGFyZWQiID4mNjsg fQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRvIGJ1 aWxkIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg dG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotK3Rlc3QgIiRjYW5fYnVpbGRf c2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyMgT24gQUlYLCBzaGFyZWQg bGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFu ZAotKyMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLStjYXNlICRob3N0X29zIGluCi0rYWl4Myop Ci0rICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKyAg aWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9j bWRzflwkUkFOTElCIFwkbGliIgotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWIn Ci0rICBmaQotKyAgOzsKLSthaXhbNC05XSopCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlh NjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCi0rICAgIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICBmaQotKyAg OzsKLStlc2FjCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9z aGFyZWQiID4mNQotKyRhc19lY2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9Ci0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxp YnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0 aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFy ZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVz IHx8IGVuYWJsZV9zdGF0aWM9eWVzCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGVuYWJsZV9zdGF0aWMiID4mNQotKyRhc19lY2hvICIkZW5hYmxlX3N0YXRpYyIgPiY2OyB9 Ci0rCi0rR0NDX0Y3Nz0iJEc3NyIKLStMRF9GNzc9IiRMRCIKLSsKLStsdF9wcm9nX2NvbXBpbGVy X3dsX0Y3Nz0KLStsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Ci0rbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfRjc3PQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsKLSsg IGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3 PSctV2wsJwotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1zdGF0aWMnCi0rCi0r ICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2Rl IGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJ WCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19GNzc9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2Fvcyop Ci0rICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNo YXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0 byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICMgbGlrZSBg LW02ODA0MCcuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctbTY4MDIwIC1yZXNp ZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rCi0r ICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCi0rICAgICAgIyBUaGlzIGhhY2sg aXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwot KyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQg c3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBp Z25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAgICMgKC0t ZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfRjc3PSctRERMTF9FWFBPUlQnCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBz b2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAg ICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsKLSsg ICAgaW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBv cHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2Nh dGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0rCi0rICAgIG1zZG9z ZGpncHAqKQotKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBtZWFuIHdl IHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCi0rICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQg ZG9uJ3Qgc3VwcG9ydCB0aGVtLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3No YXJlZF9GNzc9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgOzsKLSsKLSsgICAg c3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJbHRfcHJvZ19j b21waWxlcl9waWNfRjc3PS1LY29uZm9ybV9waWMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIGhwdXgqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFu ZCA2NC1iaXQgSFAtVVgsIGJ1dAotKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KLSsgICAgICBj YXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlhNjQqKQotKwkjICtaIHRoZSBkZWZh dWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctZlBJQycK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19GNzc9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UK LSsgICAgIyBQT1JUTUUgQ2hlY2sgZm9yIGZsYWcgdG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3Vn aCB0aGUgc3lzdGVtIGNvbXBpbGVyLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeCop Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9j ZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsgICAgICBl bHNlCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLWJuc28gLWJJOi9saWIvc3lzY2Fs bHMuZXhwJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgICBkYXJ3aW4qKQotKyAgICAgICAg IyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAgICAgICAgIyBDb21tb24g c3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgICBjYXNlICRjY19i YXNlbmFtZSBpbgotKyAgICAgICAgIHhsYyopCi0rICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfRjc3PSctcW5vY29tbW9uJwotKyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSct V2wsJwotKyAgICAgICAgIDs7Ci0rICAgICAgIGVzYWMKLSsgICAgICAgOzsKLSsKLSsgICAgbWlu Z3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0 aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAg IyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xz IGZvciBleGFtcGxlKS4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1ERExMX0VY UE9SVCcKLSsgICAgICA7OwotKwotKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKLSsgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5v dCBmb3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0 KnxpYTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2df Y29tcGlsZXJfcGljX0Y3Nz0nK1onCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgICMgSXMgdGhl cmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBi dW5kbGVkIENDPwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nJHt3bH0tYSAk e3dsfWFyY2hpdmUnCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3Rv cHV4KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKLSsgICAgICAjIFBJ QyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWNfRjc3PSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtQSUMnCi0rICAgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBsaW51eCogfCBr KmJzZCotZ251KQotKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgaWNjKiB8IGVj YyopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJwotKwlsdF9wcm9nX2NvbXBpbGVy X3BpY19GNzc9Jy1LUElDJwotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1zdGF0aWMn Ci0rICAgICAgICA7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQot KyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdj YyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJbHRf cHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0n LWZwaWMnCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCi0rICAgICAg ICA7OwotKyAgICAgIGNjYyopCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVds LCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfRjc3PSctbm9uX3NoYXJlZCcKLSsgICAgICAgIDs7Ci0rICAgICAgKikK LSsgICAgICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBDKikKLSsJ ICAjIFN1biBDIDUuOQotKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtQSUMnCi0rCSAg bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsJICBsdF9wcm9nX2NvbXBp bGVyX3dsX0Y3Nz0nLVdsLCcKLSsJICA7OwotKwkqU3VuXCBGKikKLSsJICAjIFN1biBGb3J0cmFu IDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCi0rCSAgbHRf cHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19GNzc9Jy1Cc3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PScnCi0rCSAgOzsK LSsJZXNhYwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBvc2YzKiB8IG9z ZjQqIHwgb3NmNSopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAg ICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfRjc3PSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0r ICAgIHNvbGFyaXMqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLUtQSUMnCi0r ICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKLSsJbHRfcHJvZ19j b21waWxlcl93bF9GNzc9Jy1Rb3B0aW9uIGxkICc7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29t cGlsZXJfd2xfRjc3PSctV2wsJzs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1 bm9zNCopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1Rb3B0aW9uIGxkICcKLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1QSUMnCi0rICAgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCB8IHN5 c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1X bCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHN5 c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rCWx0X3Byb2dfY29t cGlsZXJfcGljX0Y3Nz0nLUtjb25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Rjc3PSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHVu aXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0rICAgICAgbHRfcHJv Z19jb21waWxlcl93bF9GNzc9Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3 PSctS1BJQycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJwot KyAgICAgIDs7Ci0rCi0rICAgIHVuaWNvcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9G Nzc9Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0Y3Nz1u bwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0Y3Nz0nLXBpYycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGlj JwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVp bGRfc2hhcmVkX0Y3Nz1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyIg PiY1Ci0rJGFzX2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzciID4mNjsgfQotKwotKyMK LSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCi0rIwot K2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzciOyB0aGVuCi0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRf cHJvZ19jb21waWxlcl9waWNfRjc3IHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBp ZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyB3b3Jrcy4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfRjc3K3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0Y3Nz1ubwotKyAgYWNfb3V0ZmlsZT1jb25m dGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIg PiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGls ZXJfcGljX0Y3NyIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhl IGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFp bmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFj X2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwot KyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91 bGQgd29yayBjb3JyZWN0bHkuCi0rICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEg dmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KLSsgICBsdF9jb21waWxlPWBlY2hvICIk YWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29t cGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBp bGVyX2ZsYWcmOjsgdCcgXAotKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAg KGV2YWwgZWNobyAiXCJcJGFzX21lOjE1MTY5OiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2 YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZToxNTE3MzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZp bGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUg dGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUg YXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRlY2hvICJY JF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5l eHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVy MgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBj b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY193b3Jrc19GNzc9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJHJtIGNvbmZ0ZXN0Kgot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2df Y29tcGlsZXJfcGljX3dvcmtzX0Y3NyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBp bGVyX3BpY193b3Jrc19GNzciID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21w aWxlcl9waWNfd29ya3NfRjc3IiA9IHh5ZXM7IHRoZW4KLSsgICAgY2FzZSAkbHRfcHJvZ19jb21w aWxlcl9waWNfRjc3IGluCi0rICAgICAiIiB8ICIgIiopIDs7Ci0rICAgICAqKSBsdF9wcm9nX2Nv bXBpbGVyX3BpY19GNzc9IiAkbHRfcHJvZ19jb21waWxlcl9waWNfRjc3IiA7OwotKyAgICAgZXNh YwotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PQotKyAgICAgbHRfcHJvZ19j b21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0Y3Nz1ubwotK2ZpCi0rCi0rZmkKLStjYXNlICRob3N0 X29zIGluCi0rICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJ QyBpcyBtZWFuaW5nbGVzczoKLSsgICpkamdwcCopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0Y3Nz0KLSsgICAgOzsKLSsgICopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0iJGx0 X3Byb2dfY29tcGlsZXJfcGljX0Y3NyIKLSsgICAgOzsKLStlc2FjCi0rCi0rIwotKyMgQ2hlY2sg dG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9JGx0 X3Byb2dfY29tcGlsZXJfd2xfRjc3IGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0Y3N1wiCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3Rt cF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19j b21waWxlcl9zdGF0aWNfd29ya3NfRjc3K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dv cmtzX0Y3Nz1ubwotKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgTERGTEFHUz0iJExE RkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKLSsgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0 ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhl IGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2du aXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0 ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRv IHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICAg JGVjaG8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29u ZnRlc3QuZXhwCi0rICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNv bmZ0ZXN0LmVyMgotKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9k ZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtz X0Y3Nz15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3NfRjc3PXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRybSAtciBj b25mdGVzdCoKLSsgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dv cmtzX0Y3NyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr c19GNzciID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNf d29ya3NfRjc3IiA9IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfRjc3PQotK2ZpCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxl LiRhY19vYmpleHQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJf Y19vX0Y3NytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzc9bm8KLSsgICAkcm0gLXIgY29u ZnRlc3QgMj4vZGV2L251bGwKLSsgICBta2RpciBjb25mdGVzdAotKyAgIGNkIGNvbmZ0ZXN0Ci0r ICAgbWtkaXIgb3V0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBj b25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0 Mi4kYWNfb2JqZXh0IgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0 aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250 YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAk YWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5z Ci0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNo b3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIg fCAkU0VEIFwKLSsgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6 OyB0JyBcCi0rICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsg dCcgXAotKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAi XCJcJGFzX21lOjE1MjczOiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21w aWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9j b25mdGVzdC5lcnIgPiY1Ci0rICAgZWNobyAiJGFzX21lOjE1Mjc3OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIu JGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2ls ZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNF RCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsg ICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4 cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19j b21waWxlcl9jX29fRjc3PXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAuIDI+ JjUKLSsgICAkcm0gY29uZnRlc3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRl IGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlv bgotKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRp ciBvdXQvaWlfZmlsZXMKLSsgICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4KLSsg ICBybWRpciBjb25mdGVzdAotKyAgICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzciID4m NQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3IiA+JjY7IH0KLSsKLSsK LStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vX0Y3NyIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8g bm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNl cgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2Nr IHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxv Y2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXllcwotKyAgJHJt IGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhh cmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRl c3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAy Pi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7 IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1v Jywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBt YXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQot KyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVk IGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBp bGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0r Ci0rICBydW5wYXRoX3Zhcj0KLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0KLSsgIGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfRjc3PW5vCi0rICBhcmNoaXZlX2NtZHNfRjc3 PQotKyAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9Ci0rICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19j bWRzX0Y3Nz0KLSsgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0Y3Nz0KLSsgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19GNzc9Ci0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9 Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNfRjc3PQotKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19GNzc9Ci0rICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0Y3Nz0KLSsgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PQotKyAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubwotKyAg aGFyZGNvZGVfbWludXNfTF9GNzc9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PXVu c3VwcG9ydGVkCi0rICBsaW5rX2FsbF9kZXBsaWJzX0Y3Nz11bmtub3duCi0rICBoYXJkY29kZV9h dXRvbWF0aWNfRjc3PW5vCi0rICBtb2R1bGVfY21kc19GNzc9Ci0rICBtb2R1bGVfZXhwc3ltX2Nt ZHNfRjc3PQotKyAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0Y3Nz1ubwotKyAgZXhwb3J0X3N5bWJv bHNfY21kc19GNzc9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9w aXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9s cycKLSsgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJh dGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKLSsgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBs aXN0Ci0rICBpbmNsdWRlX2V4cHN5bXNfRjc3PQotKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJl IGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKLSsgICMgaXQgd2lsbCBi ZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5p bmcgb3IKLSsgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNs dWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKLSsgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9s IHRoYXQgY29udGFpbnMgYGQnLgotKyAgZXhjbHVkZV9leHBzeW1zX0Y3Nz0nX0dMT0JBTF9PRkZT RVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4qJwotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNF VF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBsYXRm b3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVz ZWQgaWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBw b3J0YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3Mg cHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBzeW1i b2wgdGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2Zp bmFsaXphdGlvbiBzeW1ib2xzLgotKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rICAjIEp1c3Qg YmVpbmcgcGFyYW5vaWQgYWJvdXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCi0r ICBmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KLSsgIGNhc2UgJGNjX3RlbXAgaW4KLSsg ICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7Owot KyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7Owot KyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rY2NfYmFzZW5h bWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9h bGlhcy0lJSJgCi0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwg cHczMiopCi0rICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQg aW4gYSBsb29vb25nIHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRs eSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4K LSsgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8K LSsgICAgZmkKLSsgICAgOzsKLSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1 bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRoX2dudV9sZD15 ZXMKLSsgICAgOzsKLSsgIG9wZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAgICA7Owot KyAgZXNhYwotKwotKyAgbGRfc2hsaWJzX0Y3Nz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9s ZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3 bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAjIFNldCBz b21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVz ZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3Vw cG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJy aWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicK LSsgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tLWV4cG9ydC1keW5hbWlj JwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBl dC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUn ID4gL2Rldi9udWxsOyB0aGVuCi0rCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0iJHdsYXJj IictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2 ZScKLSsgICAgICBlbHNlCi0rICAJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PQotKyAgICBm aQotKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KLSsgICAgY2FzZSBgJExEIC12IDI+ L2Rldi9udWxsYCBpbgotKyAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAu KikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKLSsgICAgICAqXCAyLjExLjkzLjAuMlwgKikg c3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgotKyAgICAgICpcIDIu MTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtl IDguMiAuLi4KLSsgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwotKyAg ICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKLSsgICAgZXNhYwotKwotKyAg ICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgY2FzZSAk aG9zdF9vcyBpbgotKyAgICBhaXhbMy05XSopCi0rICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05V IGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2 NDsgdGhlbgotKwlsZF9zaGxpYnNfRjc3PW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0rCi0rKioqIFdh cm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyBy ZXBvcnRlZAotKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJy YXJpZXMgb24gQUlYLgotKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJl ZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVk IGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKLSsqKiogc28gdGhh dCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK0VPRgot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2ZV9j bWRzX0Y3Nz0nJHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZp bmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hv ICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0 YX4kZWNobyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxp YnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRf b2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5M SUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2Rl X21pbnVzX0xfRjc3PXllcwotKwotKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFA ZG9scGhpbi5vcGVucHJvamVjdHMubmV0PiByZXBvcnRzCi0rICAgICAgIyB0aGF0IHRoZSBzZW1h bnRpY3Mgb2YgZHluYW1pYyBsaWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKLSsgICAg ICAjIHRvIHZlcnNpb24gNCwgaXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFt cyBsaW5rZWQKLSsgICAgICAjIHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2Ug dGhpcyBkb2Vzbid0IG1hdGNoIHRoZQotKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJh cmllcyBvbiBvdGhlciBwbGF0Zm9ybXMsIHdlIGNhbid0IHVzZQotKyAgICAgICMgdGhlbS4KLSsg ICAgICBsZF9zaGxpYnNfRjc3PW5vCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAg aWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz11bnN1cHBvcnRlZAot KwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMg b2YgZ2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZl c3RpZ2F0aW9uLiAgRklYTUUKLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1ub3N0YXJ0ICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAgICMgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCBGNzcpIGlzIGFjdHVhbGx5IG1lYW5pbmds ZXNzLAotKyAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKLSsgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19GNzc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5 bWJvbHNfRjc3PW5vCi0rICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19G Nzc9eWVzCi0rICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19GNzc9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsg XS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvJ1wnJyAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsg XS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwotKyAgICAgIGlmICRM RCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgotKyAg ICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRv LWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rCSMgSWYg dGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUK LSsJIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KLSsJ YXJjaGl2ZV9leHBzeW1fY21kc19GNzc9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJv bHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZGVmOwotKwllbHNlCi0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpk aXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRp ci8kc29uYW1lLmRlZjsKLSsJZml+Ci0rCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRp ci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWlt cGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzX0Y3Nz1ubwotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICBoYXJkY29k ZV9kaXJlY3RfRjc3PW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGgsJGxpYmRpcicK LSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS1FJwotKyAgICAgICMg SGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEg YnJva2VuIGdjYy4KLSsgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRl ZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBkZWZhdWx0KSBhbmQg cmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQot KyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhp cywgd2UgcGljayBhIHJhbmRvbSwKLSsgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNl IGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICAgIyB0aW1l LiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3Bh Y2UuCi0rICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdl LWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4 MGAgLW8gJGxpYicKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nc2VkICJzLF4sXywi ICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFy ZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRz b25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5l eHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCog MjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICA7OwotKwotKyAgICBnbnUqIHwg bGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6 IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJdG1wX2FkZGZs YWc9Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgotKwlwZ2NjKikJCQkJIyBQb3J0 bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PSck e3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFy Y2hpdmUnCi0rCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCi0rCSAgOzsKLSsJcGdmNzcqIHwg cGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwot KwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9y IGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19j b252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3 X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFn PScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMg SW50ZWwgQyBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7 OwotKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIg b24gaWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKLSsJ aWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKLSsJICB0bXBfYWRkZmxh Zz0nIC1ub2Zvcl9tYWluJyA7OwotKwllc2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgotKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjX0Y3Nz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYg aW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmll bmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVu aWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1H JyA7OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkgIHRtcF9zaGFyZWRmbGFn PSctRycgOzsKLSsJKikKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcgOzsKLSsJZXNhYwot KwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyIn ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJwotKwotKwlpZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7 IHRoZW4KLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2Vk IC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rICAk ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAg JENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3Jp cHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJZmkKLSsgICAg ICBlbHNlCi0rCWxkX3NobGlic19GNzc9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxG X18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUJzaGFyZWFibGUg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwotKwl3bGFyYz0KLSsgICAg ICBlbHNlCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNo aXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBzb2xhcmlzKikKLSsgICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+ IC9kZXYvbnVsbDsgdGhlbgotKwlsZF9zaGxpYnNfRjc3PW5vCi0rCWNhdCA8PEVPRiAxPiYyCi0r Ci0rKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5u b3QgcmVsaWFibHkKLSsqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0 ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFy aWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0 byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0r KioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2 ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStFT0YKLSsgICAg ICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGVsc2UK LSsJbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUq IHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgICAgICBj YXNlIGAkTEQgLXYgMj4mMWAgaW4KLSsgICAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8 ICpcIDIuMVswLTVdLiopCi0rCWxkX3NobGlic19GNzc9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYy Ci0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIu MTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMg b24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNo YXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioq IGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlv biBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24g c28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0 LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVw ICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVj aG8gJHt3bH0tcnBhdGgsJGxpYmRpcmAnCi0rCSAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1ND T0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWInCi0rCSAgICBhcmNo aXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99 JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJ ICBlbHNlCi0rCSAgICBsZF9zaGxpYnNfRjc3PW5vCi0rCSAgZmkKLSsJOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBhcmNoaXZlX2NtZHNfRjc3PSck TEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9G Nzc9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsgICAgICA7Owot KwotKyAgICAqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVk IHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHNfRjc3PSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGli JwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsK LSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0ICIkbGRfc2hsaWJzX0Y3NyIgPSBubzsgdGhlbgot KyAgICAgIHJ1bnBhdGhfdmFyPQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3 PQotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9Ci0rICAgICAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWNfRjc3PQotKyAgICBmaQotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBmaWxs IGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCi0r ICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4MyopCi0rICAgICAgYWxsb3dfdW5kZWZpbmVk X2ZsYWdfRjc3PXVuc3VwcG9ydGVkCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0Y3Nz15 ZXMKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJExEIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1i b2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCi0rICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVj dG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBz cGVjaWZpZWQgYnkgLUwuCi0rICAgICAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCi0rICAgICAg aWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj IjsgdGhlbgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5n IGlzIHN1cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0rCWhhcmRjb2RlX2Rp cmVjdF9GNzc9dW5zdXBwb3J0ZWQKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFpeFs0 LTldKikKLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIE9uIElB NjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRv bid0Ci0rCSMgaGF2ZSB0byBkbyBhbnl0aGluZyBzcGVjaWFsLgotKwlhaXhfdXNlX3J1bnRpbWVs aW5raW5nPW5vCi0rCWV4cF9zeW1fZmxhZz0nLUJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9IiIK LSsgICAgICBlbHNlCi0rCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdh bnQgdGhlICItQyIgb3B0aW9uLgotKwkjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0 IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0rCWlmICROTSAtViAyPiYxIHwgZ3Jl cCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHNfRjc3PSck Tk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJU IikgfHwgKFwkMiA9PSAiRCIpIHx8IChcJDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAh PSAiLiIpKSB7IHByaW50IFwkMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycK LSsJZWxzZQotKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHNfRjc3PSckTk0gLUJDcGcgJGxpYm9ianMg JGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQi KSB8fCAoXCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBc JDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWZpCi0rCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KLSsKLSsJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1 biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0rCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRs IGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5r aW5nLgotKwljYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSop Ci0rCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCi0rICAJICBpZiAodGVzdCAkbGRfZmxh ZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKyAgCSAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcwotKyAgCSAgICBicmVhawotKyAgCSAgZmkKLSsJ ICBkb25lCi0rCSAgOzsKLSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlu b19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFy Z2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0r ICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElm IGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9y IFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NG TEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAg ICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdT LgotKwotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Rf Rjc3PXllcwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PSc6JwotKyAgICAg IGxpbmtfYWxsX2RlcGxpYnNfRjc3PXllcwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rCSMg V2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawot KwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJ ICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYg dGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAotKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5h bWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKLSsJICB0aGVuCi0rICAJICAj IFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsgIAkgIDoKLSsJICBlbHNlCi0rICAJICAjIFdl IGhhdmUgb2xkIGNvbGxlY3QyCi0rICAJICBoYXJkY29kZV9kaXJlY3RfRjc3PXVuc3VwcG9ydGVk Ci0rICAJICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhl IHVuaW5zdGFsbGVkCi0rICAJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4g IFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAotKyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMg cmVsaW5raW5nCi0rICAJICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKLSsgIAkgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfRjc3PSctTCRsaWJkaXInCi0rICAJICBoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yX0Y3Nz0KLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJc2hhcmVkX2ZsYWc9Jy1z aGFyZWQnCi0rCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgot KwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwlmaQotKyAgICAgIGVs c2UKLSsJIyBub3QgdXNpbmcgZ2NjCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu Ci0rICAJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwg QmV0YSAzIFJlbGVhc2UKLSsgIAkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGlu ZSBpcyBjb3JyZWN0OgotKwkgIHNoYXJlZF9mbGFnPSctRycKLSsJZWxzZQotKwkgIGlmIHRlc3Qg IiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgICAgc2hhcmVkX2ZsYWc9 JyR7d2x9LUcnCi0rCSAgZWxzZQotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJ ICBmaQotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxs IGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCi0rICAgICAgIyB1bmRlcnNj b3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRv IGV4cG9ydC4KLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PXllcwotKyAgICAgIGlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkjIFdhcm5pbmcg LSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwK LSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJy b2tlbiBsaWJyYXJ5LgotKwlhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9Jy1iZXJvaycKLSsgICAg ICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVk IGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKyAgICAgIHByb2dyYW0gbWFpbgotKwotKyAgICAgIGVuZAotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5 PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfZjc3X3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0 aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3Mv LC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9 Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rl di9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3Ig YSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXog IiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQi YAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhl biBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxl cl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4g ZWNobyAiJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9 JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICAgZWxz ZQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfRjc3PScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICBhbGxv d191bmRlZmluZWRfZmxhZ19GNzc9Ii16IG5vZGVmcyIKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRz X0Y3Nz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJv YmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRf c3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9t IHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsgICAgICBwcm9ncmFtIG1haW4KLSsKLSsgICAgICBlbmQK LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2Y3N193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK LSsgICAgICAgfTsgdGhlbgotKwotK2x0X2FpeF9saWJwYXRoX3NlZD0nCi0rICAgIC9JbXBvcnQg RmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJL14wLyB7Ci0rCSAgICBzL14wICAqXCguKlwpJC9cMS8K LSsJICAgIHAKLSsJfQotKyAgICB9JwotK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAot KyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4K LStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0rICBhaXhfbGlicGF0aD1gZHVtcCAt SFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4 X2xpYnBhdGhfc2VkImAKLStmaQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK2lmIHRlc3QgLXogIiRhaXhf bGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQotKwotKwkgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4 X2xpYnBhdGgiCi0rCSAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRp bWUgbG9hZGluZyBmbGFncywKLSsJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwg YnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCi0rCSAgbm9fdW5kZWZpbmVkX2ZsYWdf Rjc3PScgJHt3bH0tYmVybm90b2snCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScgJHt3 bH0tYmVyb2snCi0rCSAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFy ZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3 PSckY29udmVuaWVuY2UnCi0rCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3PXllcwotKwkgICMg VGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJl ZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9IlwkQ0MgJHNoYXJlZF9m bGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1i bm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191 bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxl YXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKLSsJZmkKLSsgICAgICBmaQotKyAgICAgIDs7 Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRybSAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lE IDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVS U0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNk ZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRf b2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19GNzc9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKLSsg ICAgICAjIHNlZSBjb21tZW50IGFib3V0IGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gdGhlIEdOVSBs ZCBzZWN0aW9uCi0rICAgICAgbGRfc2hsaWJzX0Y3Nz1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGJz ZGlbNDVdKikKLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PS1yZHluYW1pYwot KyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKLSsgICAgICAjIFdo ZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwot KyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMg bm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19GNzc9JyAnCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PXVuc3VwcG9ydGVkCi0r ICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsg ICAgICBsaWJleHQ9bGliCi0rICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMs IG5vdCAuc28gZmlsZXMuCi0rICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICAgICAgIyBGSVhN RTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgotKyAgICAgIGFyY2hpdmVf Y21kc19GNzc9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZWNobyAiJGRl cGxpYnMiIHwgJFNFRCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9 JwotKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZp bGUgaWYgd2UgYnVpbGQgYSBETEwuCi0rICAgICAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kc19G Nzc9J3RydWUnCi0rICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRo ZSBsaWIgcHJvZ3JhbS4KLSsgICAgICBvbGRfYXJjaGl2ZV9jbWRzX0Y3Nz0nbGliIC1PVVQ6JG9s ZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwotKyAgICAgIGZpeF9zcmNmaWxlX3BhdGhfRjc3PSdg Y3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzX0Y3Nz15ZXMKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkq KQotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICAgIHJoYXBzb2R5KiB8IGRhcndpbjEu WzAxMl0pCi0rICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS11bmRlZmlu ZWQgJHt3bH1zdXBwcmVzcycKLSsgICAgICAgICA7OwotKyAgICAgICAqKSAjIERhcndpbiAxLjMg b24KLSsgICAgICAgICBpZiB0ZXN0IC16ICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSA7IHRo ZW4KLSsgICAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0tZmxhdF9uYW1l c3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCi0rICAgICAgICAgZWxzZQotKyAg ICAgICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH0gaW4KLSsgICAgICAgICAg ICAgMTAuWzAxMl0pCi0rICAgICAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PSck e3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKLSsgICAg ICAgICAgICAgICA7OwotKyAgICAgICAgICAgICAxMC4qKQotKyAgICAgICAgICAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAn Ci0rICAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgIGVzYWMKLSsgICAgICAgICBmaQotKyAg ICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3Nz1u bwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9bm8KLSsgICAgICBoYXJkY29kZV9hdXRvbWF0 aWNfRjc3PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PXVuc3VwcG9ydGVk Ci0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScnCi0rICAgICAgbGlua19hbGxf ZGVwbGlic19GNzc9eWVzCi0rICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIDsgdGhlbgotKyAgICAJ b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rICAgICAgICBhcmNoaXZlX2NtZHNfRjc3 PSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJv YmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNv bmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAg ICAgICAgbW9kdWxlX2NtZHNfRjc3PSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3lt dXRpbH0iCi0rICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0ic2VkICdzLF4sXywnIDwg XCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0 X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0Y3Nz0i c2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHts aWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJf ZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBlbHNlCi0rICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICAgIHhsYyopCi0rICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9J2VjaG8nCi0rICAgICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1xbWtzaHJvYmog JGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfWBlY2hvICRycGF0aC8kc29uYW1lYCAkeGxj dmVyc3RyaW5nJwotKyAgICAgICAgIG1vZHVsZV9jbWRzX0Y3Nz0nJENDICRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3Mn Ci0rICAgICAgICAgICMgRG9uJ3QgZml4IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9z eW1ib2xzX2xpc3QgZmxhZywgaXQgZG9lc24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCi0r ICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9J3NlZCAtZSAicywjLiosLCIgLWUgInMs XlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRw dXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDIC1xbWtzaHJvYmogJGFsbG93 X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2ZXJzdHJpbmd+bm1l ZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9Jwot KyAgICAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHNfRjc3PSdzZWQgLWUgInMsIy4qLCwiIC1lICJz LF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0 cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZpbmVk X2ZsYWcgIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFnc35u bWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0n Ci0rICAgICAgICAgIDs7Ci0rICAgICAgICopCi0rICAgICAgICAgbGRfc2hsaWJzX0Y3Nz1ubwot KyAgICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBk Z3V4KikKLSsgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0Y3Nz1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGZyZWVic2QxKikKLSsgICAgICBsZF9zaGxpYnNf Rjc3PW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMg dG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCi0rICAgICMgc3VwcG9y dC4gIEZ1dHVyZSB2ZXJzaW9ucyBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGJ1dCBhbiBleHBsaWNp dCBjKytydDAubwotKyAgICAjIGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2ln bmlmaWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUKLSsgICAgIyBleHRyYSBzcGFjZSku Ci0rICAgIGZyZWVic2QyLjIqKQotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtQnNoYXJl YWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIvYysr cnQwLm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1SJGxpYmRpcicK LSsgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfRjc3PW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2 ZXJzaW9ucyBvZiBGcmVlQlNEIDIgZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgotKyAgICBmcmVl YnNkMiopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Rf Rjc3PXllcwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXJfRjc3PW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNEIDMgYW5k IGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBm cmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFy ZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9k aXJlY3RfRjc3PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCi0rICAg ICAgOzsKLSsKLSsgICAgaHB1eDkqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rCWFyY2hpdmVfY21kc19GNzc9JyRybSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hh cmVkIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29i amRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0r ICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfRjc3PSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfStiICR7d2x9JGxpYmRpcicK LSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz06Ci0rICAgICAgaGFyZGNvZGVf ZGlyZWN0X0Y3Nz15ZXMKLSsKLSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkg aW4gdGhlIHNlYXJjaCBQQVRILAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9u IG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcwotKyAgICAg IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9JyR7d2x9LUUnCi0rICAgICAgOzsKLSsKLSsg ICAgaHB1eDEwKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xk IiA9IG5vOyB0aGVuCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2Nt ZHNfRjc3PSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3 PScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9 OgotKwotKwloYXJkY29kZV9kaXJlY3RfRjc3PXllcwotKwlleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWNfRjc3PScke3dsfS1FJwotKwotKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4g dGhlIHNlYXJjaCBQQVRILAotKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUg bGlicmFyeS4KLSsJaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBocHV4MTEqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0 aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0r CSAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCop Ci0rCSAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAt ZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMK LSsgICAgICBlbHNlCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqKQotKwkgIGFyY2hp dmVfY21kc19GNzc9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZl X2NtZHNfRjc3PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBh dGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJ KikKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3 bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIk d2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9 JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz06 Ci0rCi0rCWNhc2UgJGhvc3RfY3B1IGluCi0rCWhwcGEqNjQqfGlhNjQqKQotKwkgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGRfRjc3PScrYiAkbGliZGlyJwotKwkgIGhhcmRjb2RlX2RpcmVj dF9GNzc9bm8KLSsJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKwkgIDs7Ci0rCSop Ci0rCSAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKLSsJICBleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWNfRjc3PScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBp biB0aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCi0rCSAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCi0rCSAgOzsKLSsJZXNh YwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3Rv cHV4KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHNf Rjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlhcmNo aXZlX2NtZHNfRjc3PSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz IC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNp b24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0 aW9ucyAtbyAkbGliJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0Y3Nz0nLXJwYXRo ICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3 Nz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3JfRjc3PToKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzX0Y3Nz15ZXMKLSsgICAgICA7Owot KwotKyAgICBuZXRic2QqKQotKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3Jl cCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1Cc2hh cmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQK LSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19GNzc9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJk Y29kZV9kaXJlY3RfRjc3PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5v Ci0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBhcmNoaXZlX2NtZHNfRjc3PSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKLSsgICAgICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfRjc3PToKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3 Nz1ubwotKyAgICAgIDs7Ci0rCi0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vz ci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCWhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCi0rCWhhcmRj b2RlX3NobGlicGF0aF92YXJfRjc3PW5vCi0rCWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAi b3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUsJGV4cG9ydF9zeW1ib2xzJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3 PScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9 JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbMDFd LiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0rCSAgICAgYXJjaGl2ZV9j bWRzX0Y3Nz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKLSsJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGly JwotKwkgICAgIDs7Ci0rCSAgICopCi0rCSAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFy ZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1ycGF0aCwkbGliZGly JwotKwkgICAgIDs7Ci0rCSAgZXNhYwotKyAgICAgICAgZmkKLSsgICAgICBlbHNlCi0rCWxkX3No bGlic19GNzc9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0rICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29k ZV9taW51c19MX0Y3Nz15ZXMKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9dW5zdXBw b3J0ZWQKLSsgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckZWNobyAiTElCUkFSWSAkbGlibmFtZSBJ TklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvICJERVNDUklQ VElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBE QVRBID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiIFNJTkdMRSBOT05TSEFS RUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBFWFBPUlRTID4+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgb2xk X2FyY2hpdmVfRnJvbV9uZXdfY21kc19GNzc9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGli bmFtZS5hICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICA7OwotKwotKyAgICBv c2YzKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhbGxvd191bmRlZmlu ZWRfZmxhZ19GNzc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZl X2NtZHNfRjc3PSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2Ag JHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nIC1leHBl Y3RfdW5yZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1zaGFyZWQke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUg JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0 cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGliJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7 d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0Y3Nz06Ci0rICAgICAgOzsKLSsKLSsgICAgb3NmNCogfCBvc2Y1KikJIyBhcyBvc2YzKiB3aXRo IHRoZSBhZGRpdGlvbiBvZiAtbXN5bSBmbGFnCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScgJHt3bH0tZXhwZWN0X3VucmVzb2x2 ZWQgJHt3bH1cKicKLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7 d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7 d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBlbHNl Ci0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJ YXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9y ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlhcmNoaXZl X2V4cHN5bV9jbWRzX0Y3Nz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmlu dGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBl Y2hvICItaGlkZGVuIj4+ICRsaWIuZXhwfgotKwkkTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IC1pbnB1dCAkbGliLmV4cCAkbGlua2VyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1z b25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24g JHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGlifiRybSAkbGliLmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBz dXBwb3J0IC1ycGF0aCBkaXJlY3RseQotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0n LXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0Y3Nz06Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbm9fdW5kZWZp bmVkX2ZsYWdfRjc3PScgLXogdGV4dCcKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgotKwl3bGFyYz0nJHt3bH0nCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICR7d2x9 LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4 cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5l eHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgJENDIC1zaGFyZWQgJHt3 bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRybSAkbGliLmV4cCcKLSsgICAgICBlbHNlCi0rCXds YXJjPScnCi0rCWFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwlh cmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQg JGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVj aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rICAJJExEIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19GNzc9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxpYnBh dGhfdmFyX0Y3Nz1ubwotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xhcmlzMi5b MC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGlsZXIg ZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBidXQg dW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0IGAk d2wnLAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsgCSMgU3Vw cG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCi0rCWlmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS16ICR7 d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0r CWVsc2UKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9Jy16IGFsbGV4dHJhY3QkY29u dmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAg ICAgIGxpbmtfYWxsX2RlcGxpYnNfRjc3PXllcwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCop Ci0rICAgICAgaWYgdGVzdCAieCRob3N0X3ZlbmRvciIgPSB4c2VxdWVudDsgdGhlbgotKwkjIFVz ZSAkQ0MgdG8gbGluayB1bmRlciBzZXF1ZW50LCBiZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4 dHJhIC5vCi0rCSMgZmlsZXMgdGhhdCBtYWtlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3Jr LgotKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9j bWRzX0Y3Nz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfRjc3PSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15 ZXMKLSsgICAgICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyX0Y3Nz1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KQotKyAgICAgIGNhc2Ug JGhvc3RfdmVuZG9yIGluCi0rCXNuaSkKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcgLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgaGFy ZGNvZGVfZGlyZWN0X0Y3Nz15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/Ci0rCTs7Ci0rCXNp ZW1lbnMpCi0rCSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCi0rCSAgIyMgQ0MganVz dCBtYWtlcyBhIEdyb3NzTW9kdWxlLgotKwkgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgcmVsb2FkX2NtZHNfRjc3 PSckQ0MgLXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsJICBoYXJkY29kZV9kaXJlY3RfRjc3 PW5vCi0rICAgICAgICA7OwotKwltb3Rvcm9sYSkKLSsJICBhcmNoaXZlX2NtZHNfRjc3PSckTEQg LUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0r CSAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubyAjTW90b3JvbGEgbWFudWFsIHNheXMgeWVzLCBidXQg bXkgdGVzdHMgc2F5IHRoZXkgbGllCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIHJ1bnBhdGhf dmFyPSdMRF9SVU5fUEFUSCcKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwot KyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0LjMqKQotKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK LSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubwotKyAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19GNzc9Jy1CZXhwb3J0JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1Q KikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWFyY2hpdmVfY21kc19GNzc9 JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KLSsJcnVucGF0aF92YXI9TERfUlVO X1BBVEgKLSsJaGFyZGNvZGVfcnVucGF0aF92YXI9eWVzCi0rCWxkX3NobGlic19GNzc9eWVzCi0r ICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCog fCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAy NF0qKQotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0teix0ZXh0JwotKyAgICAg IGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3Nz1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXJfRjc3PW5vCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVk ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19GNzc9JyRDQyAt RyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhw b3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgc2Nv My4ydjUqIHwgc2NvNXY2KikKLSsgICAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMg YXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAotKyAgICAgICMgbGluayB3aXRo IC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8K LSsgICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBqdXN0IGFib3V0IG5v IGxpYnJhcnkgd291bGQKLSsgICAgICAjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBu b3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0Ci0rICAgICAgIyB0aG91Z2gsIHdoaWNoIGRv ZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rICAg ICAgIyBhcyAteiBkZWZzLgotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0teix0 ZXh0JwotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nJHt3bH0teixub2RlZnMnCi0r ICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3PW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9GNzc9bm8KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nYHRl c3QgLXogIiRTQ09BQlNQQVRIIiAmJiBlY2hvICR7d2x9LVIsJGxpYmRpcmAnCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlic19G Nzc9eWVzCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tQmV4cG9y dCcKLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0t aCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9 JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NP QUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfRjc3PSck Q0MgLUcgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBz eW1fY21kc19GNzc9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1o LFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgdXRzNCopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1HIC1oICRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfRjc3PSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcl9GNzc9bm8KLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGxkX3NobGlic19GNzc9 bm8KLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsZF9zaGxpYnNfRjc3IiA+JjUKLSskYXNfZWNobyAiJGxkX3NobGli c19GNzciID4mNjsgfQotK3Rlc3QgIiRsZF9zaGxpYnNfRjc3IiA9IG5vICYmIGNhbl9idWlsZF9z aGFyZWQ9bm8KLSsKLSsjCi0rIyBEbyB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayBsaWJjPwot KyMKLStjYXNlICJ4JGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3NyIgaW4KLSt4fHh5ZXMpCi0rICAj IEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9 eWVzCi0rCi0rICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KLSsgICAgY2FzZSAkYXJjaGl2ZV9jbWRzX0Y3NyBpbgotKyAgICAqJ34nKikK LSsgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFuZCBz ZXF1ZW5jZXMuCi0rICAgICAgOzsKLSsgICAgJyRDQyAnKikKLSsgICAgICAjIFRlc3Qgd2hldGhl ciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCi0r ICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2MgYWxy ZWFkeSBwYXNzZXMgLWxjCi0rICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxn Y2MuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg LWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4uICIgPiY2 OyB9Ci0rICAgICAgJHJtIGNvbmZ0ZXN0KgotKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgICAgIGlmIHsgKGV2YWwgZWNo byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2Nv bXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9IDI+Y29uZnRl c3QuZXJyOyB0aGVuCi0rICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSsgICAgICAgIGxpYj1jb25m dGVzdAotKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgICAgICBkZXBs aWJzPQotKyAgICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3Ci0rCXBpY19mbGFnPSRs dF9wcm9nX2NvbXBpbGVyX3BpY19GNzcKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rICAg ICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmluZz0KLSsgICAgICAgIG91dHB1 dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAotKyAgICAgICAgbHRfc2F2ZV9h bGxvd191bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3Ci0rICAgICAgICBh bGxvd191bmRlZmluZWRfZmxhZ19GNzc9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19t ZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHNfRjc3IDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBc Pi9kZXYvbnVsbCAyXD5cJjFcIiIpID4mNQotKyAgKGV2YWwgJGFyY2hpdmVfY21kc19GNzcgMlw+ XCYxIFx8IGdyZXAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLSsgICAgICAgIHRoZW4KLSsJICBhcmNoaXZlX2Nt ZHNfbmVlZF9sY19GNzc9bm8KLSsgICAgICAgIGVsc2UKLSsJICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19GNzc9eWVzCi0rICAgICAgICBmaQotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3 PSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rICAgICAgZWxzZQotKyAgICAgICAgY2F0 IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgZmkKLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2hpdmVfY21kc19uZWVk X2xjX0Y3NyIgPiY1Ci0rJGFzX2VjaG8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzciID4mNjsg fQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0 aWNzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJp c3RpY3MuLi4gIiA+JjY7IH0KLStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSds aWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxs X2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFs PQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24K LSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLSsKLStuZWVkX2xpYl9w cmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0 IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVy c2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lv bj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBl PWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAot KwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBt YWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1u bwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGgg R0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0r ICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0 YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBn ZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZh bGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBz aG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg YWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9f R05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0r CSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8IGdy ZXAgeWVzID4gL2Rldi9udWxsOyB0aGVuCi0rCToKLSsgICAgICBlbHNlCi0rCWNhbl9idWlsZF9z aGFyZWQ9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgIyBBSVggKG9u IFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBu b3QgaGFyZGNvZGUgY29ycmVjdAotKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2Jh Ymx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCi0rICAgICMgY29sbGVjdDIsIHNv IGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCi0rICAgIGlmIHRlc3Qg IiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgSWYgdXNpbmcg cnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbwot KyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0 aGVzZSBhcmUgbm90Ci0rICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgotKyAg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JwotKyAgICBlbHNlCi0rICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBl eHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKLSsgICAgICAjIGFu ZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KLSsgICAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKLSsg ICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgICBmaQotKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIGZpCi0rICA7OwotKwot K2FtaWdhb3MqKQotKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxp Ym5hbWUuYScKLSsgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAv c3lzL2xpYnMuCi0rICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGli cmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAn XCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRybSAvc3lzL2xp YnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAk bGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAk e2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgIDs7Ci0rCi0rYmVvcyop Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BB VEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBB VEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9Y MTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAj IHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFu ZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYp LCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8g cHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgdmVyc2lv bl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5v Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAg eWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqKQotKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lLmRsbC5hJwotKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJk aXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCi0rICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jh c2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgotKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEg LWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdcJydpO2VjaG8gXCRkbG5hbWUnXCcnYH4K LSsgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAt ZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGly LyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgotKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5h bWUnCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycu ICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4K LSsgICAgICAgJHJtIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5 Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25h bWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7 cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0n Ci0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAv bGliIC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KikKLSsgICAgICAjIE1p bkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJz dWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRD QyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBncmVwICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15s aWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCi0rICAgICAgaWYgZWNobyAiJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyIgfCBncmVwICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAg ICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVk IGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4g R2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMs IGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRy aXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZl IHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3Vu ZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVu ZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAn cy87LyAvZydgCi0rICAgICAgZWxzZQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NF UEFSQVRPUi8gL2ciYAotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgcHczMiopCi0rICAgICAg IyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0rICAgICAgbGli cmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2Bg ZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJl ZF9leHR9JwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdz L1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICA7 OwotKyAgZXNhYwotKyAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICMgRklYTUU6 IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJs ZSBpcyBpbgotKyAgc2hsaWJwYXRoX3Zhcj1QQVRICi0rICA7OwotKwotK2RhcndpbiogfCByaGFw c29keSopCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZHlsZCIKLSsgIHZlcnNpb25fdHlw ZT1kYXJ3aW4KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHt2ZXJzdWZmaXh9JHNoYXJl ZF9leHQgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0k c2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9 JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxp YnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1 bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsK LStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwot KyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5v dCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25p bmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9y bWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQot KyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0 IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNp b25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAg ICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0r ICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRf dmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBm cmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSog fCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0 LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7 OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsK LSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBh IHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNs IHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lv bl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwot KyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmll ZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUi ID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9o cHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0r ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2Nh bC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0k c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAgaHBwYSo2NCopCi0rICAgICBz aHJleHRfY21kcz0nLnNsJwotKyAgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKLSsgICAgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAotKyAgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVk LgotKyAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0IgotKyAgICAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICAgOzsKLSsg ICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rf b3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BB VEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1 bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4K LSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4 WzMtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5hbWljX2xpbmtlcj0n SW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4 KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5v bnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVz OyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVyc2lvbl90eXBlPWly aXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKLSsgICAgbGli c3VmZj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAkTEQgaW4gIyBsaWJ0 b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAotKyAgICAqLTMyfCoi LTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAgIGxpYnN1ZmY9IHNo bGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJi bWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1O MzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxm NjRibWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0 OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7Ci0r ICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7 c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9 IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRs ZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNv ZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGlu dXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGly JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubwotKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBp cyB1bmFjY2VwdGFibGUuCi0rICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93 IGZvciBmYXN0X2luc3RhbGwKLSsgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCi0rICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0r ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xp YnN1ZmZ9IgotKwotKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNo IHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4 dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAy Pi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBz a2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWyAJXSpo d2NhcFsgCV0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcg fCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2Vk IHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9u Ci0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGli cmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2Fz IGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJv eGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBj YW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UK LSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAg ZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsg IHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2 L251bGw7IHRoZW4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCcKLSsgICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxp YmRpcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJwotKyAgZWxz ZQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxk LmVsZl9zbycKLSsgIGZpCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwot KyAgOzsKLSsKLStuZXdzb3M2KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rICA7OwotKwotK250by1xbngqKQotKyAgdmVyc2lvbl90eXBlPWxp bnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5 cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMu MyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKSBuZWVkX3ZlcnNpb249eWVzIDs7Ci0r ICAgICopICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVz YWMKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5p c2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIg PSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAg ICAgb3BlbmJzZDIuWzg5XSB8IG9wZW5ic2QyLls4OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcwotKwk7OwotKyAgICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3Bl Yz0nJG5hbWUnCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScK LSsgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFU SAotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3Nm Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91 c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0r ICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlw ZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAj IGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGlu c3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNp b25fdHlwZT1zdW5vcwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJk aXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgot KyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7 OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0 X3ZlbmRvciBpbgotKyAgICBzbmkpCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjPScke3dsfS1CbGFyZ2VkeW5zeW0nCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BB VEgKLSsgICAgICA7OwotKyAgICBzaWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgICAgIDs7Ci0rICAgIG1vdG9yb2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg ICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Nj cy9saWInCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYg dGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFt ZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1l X3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBmaQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBz Y281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25f dHlwZT1mcmVlYnNkLWVsZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu Ci0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUv bGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9bm8KLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNy L2Njcy9saWIgL3Vzci9saWInCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK LSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7 OwotKyAgICBlc2FjCi0rICBmaQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3Iv bGliJwotKyAgOzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikK LSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkZHluYW1pY19saW5rZXIiID4mNQotKyRhc19lY2hvICIkZHluYW1p Y19saW5rZXIiID4mNjsgfQotK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBubyAmJiBjYW5fYnVp bGRfc2hhcmVkPW5vCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIgotK2ZpCi0rCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIgotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYyIKLStmaQotKwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIk bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllf UEFUSCIKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cg dG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4u ICIgPiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uX0Y3Nz0KLStpZiB0ZXN0IC1uICIkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19GNzciIHx8IFwKLSsgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfRjc3 IiB8fCBcCi0rICAgdGVzdCAiWCRoYXJkY29kZV9hdXRvbWF0aWNfRjc3IiA9ICJYeWVzIiA7IHRo ZW4KLSsKLSsgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGFudCBkaXJlY3Rvcmllcy4KLSsg IGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfRjc3IiAhPSBubyAmJgotKyAgICAgIyBJZiB0aGUg b25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQot KyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBp bnN0YWxsZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGgg YSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAgIyMgdGVzdCAiJF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgRjc3KSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRoYXJk Y29kZV9taW51c19MX0Y3NyIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJk Y29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgaGFyZGNvZGVfYWN0 aW9uX0Y3Nz1yZWxpbmsKLSsgIGVsc2UKLSsgICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhhcmRj b2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KLSsgICAgaGFyZGNv ZGVfYWN0aW9uX0Y3Nz1pbW1lZGlhdGUKLSsgIGZpCi0rZWxzZQotKyAgIyBXZSBjYW5ub3QgaGFy ZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3RpbmcKLSsg ICMgZGlyZWN0b3JpZXMuCi0rICBoYXJkY29kZV9hY3Rpb25fRjc3PXVuc3VwcG9ydGVkCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZGNvZGVfYWN0aW9uX0Y3 NyIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rpb25fRjc3IiA+JjY7IH0KLSsKLStpZiB0 ZXN0ICIkaGFyZGNvZGVfYWN0aW9uX0Y3NyIgPSByZWxpbms7IHRoZW4KLSsgICMgRmFzdCBpbnN0 YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2Vs aWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlz IG5vdCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwot KwotKyMgVGhlIGVsc2UgY2xhdXNlIHNob3VsZCBvbmx5IGZpcmUgd2hlbiBib290c3RyYXBwaW5n IHRoZQotKyMgbGlidG9vbCBkaXN0cmlidXRpb24sIG90aGVyd2lzZSB5b3UgZm9yZ290IHRvIHNo aXAgbHRtYWluLnNoCi0rIyB3aXRoIHlvdXIgcGFja2FnZSwgYW5kIHlvdSB3aWxsIGdldCBjb21w bGFpbnRzIHRoYXQgdGhlcmUgYXJlCi0rIyBubyBydWxlcyB0byBnZW5lcmF0ZSBsdG1haW4uc2gu Ci0raWYgdGVzdCAtZiAiJGx0bWFpbiI7IHRoZW4KLSsgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5n IG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIgY29tbWFuZHMgdGhy b3VnaAotKyAgIyB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgotKyAgaWYgdGVzdCAtbiAi JHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsg IGZpCi0rICAjIE5vdyBxdW90ZSBhbGwgdGhlIHRoaW5ncyB0aGF0IG1heSBjb250YWluIG1ldGFj aGFyYWN0ZXJzIHdoaWxlIGJlaW5nCi0rICAjIGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUg QUNfU1VCU1RlZCB2YWx1ZXMuICBXZSB0YWtlIGNvcGllcyBvZiB0aGUKLSsgICMgdmFyaWFibGVz IGFuZCBxdW90ZSB0aGUgY29waWVzIGZvciBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlw dC4KLSsgIGZvciB2YXIgaW4gZWNobyBvbGRfQ0Mgb2xkX0NGTEFHUyBBUiBBUl9GTEFHUyBFR1JF UCBSQU5MSUIgTE5fUyBMVENDIExUQ0ZMQUdTIE5NIFwKLSsgICAgU0VEIFNIRUxMIFNUUklQIFwK LSsgICAgbGlibmFtZV9zcGVjIGxpYnJhcnlfbmFtZXNfc3BlYyBzb25hbWVfc3BlYyBleHRyYWN0 X2V4cHN5bXNfY21kcyBcCi0rICAgIG9sZF9zdHJpcGxpYiBzdHJpcGxpYiBmaWxlX21hZ2ljX2Nt ZCBmaW5pc2hfY21kcyBmaW5pc2hfZXZhbCBcCi0rICAgIGRlcGxpYnNfY2hlY2tfbWV0aG9kIHJl bG9hZF9mbGFnIHJlbG9hZF9jbWRzIG5lZWRfbG9ja3MgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKLSsgICAgbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MgXAotKyAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgXAotKyAgICBvbGRfcG9z dGluc3RhbGxfY21kcyBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIFwKLSsgICAgY29tcGlsZXJfRjc3 IFwKLSsgICAgQ0NfRjc3IFwKLSsgICAgTERfRjc3IFwKLSsgICAgbHRfcHJvZ19jb21waWxlcl93 bF9GNzcgXAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzcgXAotKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19GNzcgXAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh Z19GNzcgXAotKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3IFwKLSsgICAgdGhyZWFk X3NhZmVfZmxhZ19zcGVjX0Y3NyBcCi0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3NyBc Ci0rICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfRjc3IFwKLSsgICAgb2xk X2FyY2hpdmVfY21kc19GNzcgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0Y3NyBc Ci0rICAgIHByZWRlcF9vYmplY3RzX0Y3NyBcCi0rICAgIHBvc3RkZXBfb2JqZWN0c19GNzcgXAot KyAgICBwcmVkZXBzX0Y3NyBcCi0rICAgIHBvc3RkZXBzX0Y3NyBcCi0rICAgIGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aF9GNzcgXAotKyAgICBjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfRjc3IFwK LSsgICAgYXJjaGl2ZV9jbWRzX0Y3NyBcCi0rICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3IFwK LSsgICAgcG9zdGluc3RhbGxfY21kc19GNzcgXAotKyAgICBwb3N0dW5pbnN0YWxsX2NtZHNfRjc3 IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRjc3IFwKLSsgICAgYWxsb3df dW5kZWZpbmVkX2ZsYWdfRjc3IFwKLSsgICAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3IFwKLSsgICAg ZXhwb3J0X3N5bWJvbHNfY21kc19GNzcgXAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0Y3NyBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfRjc3IFwKLSsgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzcgXAotKyAgICBoYXJkY29kZV9hdXRvbWF0aWNfRjc3 IFwKLSsgICAgbW9kdWxlX2NtZHNfRjc3IFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0Y3NyBc Ci0rICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3NyBcCi0rICAgIGZpeF9zcmNmaWxlX3Bh dGhfRjc3IFwKLSsgICAgZXhjbHVkZV9leHBzeW1zX0Y3NyBcCi0rICAgIGluY2x1ZGVfZXhwc3lt c19GNzc7IGRvCi0rCi0rICAgIGNhc2UgJHZhciBpbgotKyAgICBvbGRfYXJjaGl2ZV9jbWRzX0Y3 NyB8IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19GNzcgfCBcCi0rICAgIGFyY2hp dmVfY21kc19GNzcgfCBcCi0rICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3IHwgXAotKyAgICBt b2R1bGVfY21kc19GNzcgfCBcCi0rICAgIG1vZHVsZV9leHBzeW1fY21kc19GNzcgfCBcCi0rICAg IG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0Y3NyB8IFwKLSsgICAgZXhwb3J0X3N5bWJv bHNfY21kc19GNzcgfCBcCi0rICAgIGV4dHJhY3RfZXhwc3ltc19jbWRzIHwgcmVsb2FkX2NtZHMg fCBmaW5pc2hfY21kcyB8IFwKLSsgICAgcG9zdGluc3RhbGxfY21kcyB8IHBvc3R1bmluc3RhbGxf Y21kcyB8IFwKLSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgfCBvbGRfcG9zdHVuaW5zdGFsbF9j bWRzIHwgXAotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgfCBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYykKLSsgICAgICAjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3Mu Ci0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQg LWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIiAtZSBc IlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxgXFxcIiIKLSsgICAgICA7OwotKyAgICAqKQotKyAg ICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwi XCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25l Ci0rCi0rICBjYXNlICRsdF9lY2hvIGluCi0rICAqJ1wkMCAtLWZhbGxiYWNrLWVjaG8iJykKLSsg ICAgbHRfZWNobz1gJGVjaG8gIlgkbHRfZWNobyIgfCAkWHNlZCAtZSAncy9cXFxcXFxcJDAgLS1m YWxsYmFjay1lY2hvIiQvJDAgLS1mYWxsYmFjay1lY2hvIi8nYAotKyAgICA7OwotKyAgZXNhYwot KwotK2NmZ2ZpbGU9IiRvZmlsZSIKLSsKLSsgIGNhdCA8PF9fRU9GX18gPj4gIiRjZmdmaWxlIgot KyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUKLSsKLSsjIExpYnRvb2wg d2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVs bCB8IHNlZCAxcWA6Ci0rCi0rIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3Jp cHRzLgotK1NIRUxMPSRsdF9TSEVMTAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc2hh cmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX2xpYnM9JGVuYWJsZV9zaGFyZWQKLSsKLSsj IFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMuCi0rYnVpbGRfb2xkX2xp YnM9JGVuYWJsZV9zdGF0aWMKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAtbGMgZm9yIGJ1 aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9uZWVkX2xjPSRhcmNoaXZl X2NtZHNfbmVlZF9sY19GNzcKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJl ZCBsaWJzIHdoZW4gcnVudGltZSBsaWJzIGFyZSBzdGF0aWMKLSthbGxvd19saWJ0b29sX2xpYnNf d2l0aF9zdGF0aWNfcnVudGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNf Rjc3Ci0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRp b24uCi0rZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBUaGUgaG9zdCBz eXN0ZW0uCi0raG9zdF9hbGlhcz0kaG9zdF9hbGlhcwotK2hvc3Q9JGhvc3QKLStob3N0X29zPSRo b3N0X29zCi0rCi0rIyBUaGUgYnVpbGQgc3lzdGVtLgotK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlh cwotK2J1aWxkPSRidWlsZAotK2J1aWxkX29zPSRidWlsZF9vcwotKwotKyMgQW4gZWNobyBwcm9n cmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotK2VjaG89JGx0X2VjaG8K LSsKLSsjIFRoZSBhcmNoaXZlci4KLStBUj0kbHRfQVIKLStBUl9GTEFHUz0kbHRfQVJfRkxBR1MK LSsKLSsjIEEgQyBjb21waWxlci4KLStMVENDPSRsdF9MVENDCi0rCi0rIyBMVENDIGNvbXBpbGVy IGZsYWdzLgotK0xUQ0ZMQUdTPSRsdF9MVENGTEFHUwotKwotKyMgQSBsYW5ndWFnZS1zcGVjaWZp YyBjb21waWxlci4KLStDQz0kbHRfY29tcGlsZXJfRjc3Ci0rCi0rIyBJcyB0aGUgY29tcGlsZXIg dGhlIEdOVSBDIGNvbXBpbGVyPwotK3dpdGhfZ2NjPSRHQ0NfRjc3Ci0rCi0rIyBBbiBFUkUgbWF0 Y2hlci4KLStFR1JFUD0kbHRfRUdSRVAKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBs aWJyYXJpZXMuCi0rTEQ9JGx0X0xEX0Y3NwotKwotKyMgV2hldGhlciB3ZSBuZWVkIGhhcmQgb3Ig c29mdCBsaW5rcy4KLStMTl9TPSRsdF9MTl9TCi0rCi0rIyBBIEJTRC1jb21wYXRpYmxlIG5tIHBy b2dyYW0uCi0rTk09JGx0X05NCi0rCi0rIyBBIHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbQotK1NU UklQPSRsdF9TVFJJUAotKwotKyMgVXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVf bWFnaWNfY21kIGJlZ2lucyAiZmlsZSIKLStNQUdJQ19DTUQ9JE1BR0lDX0NNRAotKwotKyMgVXNl ZCBvbiBjeWd3aW46IERMTCBjcmVhdGlvbiBwcm9ncmFtLgotK0RMTFRPT0w9IiRETExUT09MIgot KwotKyMgVXNlZCBvbiBjeWd3aW46IG9iamVjdCBkdW1wZXIuCi0rT0JKRFVNUD0iJE9CSkRVTVAi Ci0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogYXNzZW1ibGVyLgotK0FTPSIkQVMiCi0rCi0rIyBUaGUg bmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmls ZXMuCi0rb2JqZGlyPSRvYmpkaXIKLSsKLSsjIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmpl Y3QgZmlsZXMuCi0rcmVsb2FkX2ZsYWc9JGx0X3JlbG9hZF9mbGFnCi0rcmVsb2FkX2NtZHM9JGx0 X3JlbG9hZF9jbWRzCi0rCi0rIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhl IGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsX0Y3NwotKwotKyMgT2JqZWN0 IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpLgotK29iamV4dD0iJGFjX29iamV4dCIKLSsKLSsj IE9sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KLStsaWJleHQ9IiRsaWJleHQiCi0r Ci0rIyBTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICIuc28iKS4KLStzaHJleHRfY21k cz0nJHNocmV4dF9jbWRzJwotKwotKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkg IiIpLgotK2V4ZWV4dD0iJGV4ZWV4dCIKLSsKLSsjIEFkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3Mg Zm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0cy4KLStwaWNfZmxhZz0kbHRfbHRfcHJvZ19jb21w aWxlcl9waWNfRjc3Ci0rcGljX21vZGU9JHBpY19tb2RlCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhp bXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/Ci0rbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21k X2xlbgotKwotKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAt byBvcHRpb25zPwotK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3 Ci0rCi0rIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KLStuZWVk X2xvY2tzPSRsdF9uZWVkX2xvY2tzCi0rCi0rIyBEbyB3ZSBuZWVkIHRoZSBsaWIgcHJlZml4IGZv ciBtb2R1bGVzPwotK25lZWRfbGliX3ByZWZpeD0kbmVlZF9saWJfcHJlZml4Ci0rCi0rIyBEbyB3 ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGlicmFyaWVzPwotK25lZWRfdmVyc2lvbj0kbmVlZF92ZXJz aW9uCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3N1cHBvcnQ9 JGVuYWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBv cnRlZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0rCi0rIyBXaGV0aGVyIGRs b3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVu X3NlbGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCi0rCi0rIyBDb21waWxlciBm bGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3NwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9m ZiBidWlsdGluIGZ1bmN0aW9ucy4KLStub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnX0Y3NwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZs ZXhpdmUgZGxvcGVucy4KLStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19GNzcKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVk IG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNoaXZlcy4KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Yz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3Ci0rCi0rIyBDb21waWxlciBmbGFnIHRv IGdlbmVyYXRlIHRocmVhZC1zYWZlIG9iamVjdHMuCi0rdGhyZWFkX3NhZmVfZmxhZ19zcGVjPSRs dF90aHJlYWRfc2FmZV9mbGFnX3NwZWNfRjc3Ci0rCi0rIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlw ZS4KLSt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQotKwotKyMgRm9ybWF0IG9mIGxpYnJhcnkg bmFtZSBwcmVmaXguCi0rbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKLSsKLSsjIExpc3Qg b2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBh cmUgbGlua3MuCi0rIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZp bmRzIHdpdGggLWxOQU1FLgotK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19z cGVjCi0rCi0rIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZy b20gdGhlIHJlYWwgbmFtZS4KLStzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKLSsKLSsjIENv bW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCi0r UkFOTElCPSRsdF9SQU5MSUIKLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRz X0Y3NwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29s ZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENy ZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19GNzcKLSsK LSsjIENyZWF0ZSBhIHRlbXBvcmFyeSBvbGQtc3R5bGUgYXJjaGl2ZSB0byBsaW5rIGluc3RlYWQg b2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0kbHRf b2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRjc3Ci0rCi0rIyBDb21tYW5kcyB1c2VkIHRv IGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUuCi0rYXJjaGl2ZV9jbWRzPSRsdF9h cmNoaXZlX2NtZHNfRjc3Ci0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1f Y21kc19GNzcKLStwb3N0aW5zdGFsbF9jbWRzPSRsdF9wb3N0aW5zdGFsbF9jbWRzCi0rcG9zdHVu aW5zdGFsbF9jbWRzPSRsdF9wb3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENvbW1hbmRzIHVzZWQg dG8gYnVpbGQgYSBsb2FkYWJsZSBtb2R1bGUgKGFzc3VtZWQgc2FtZSBhcyBhYm92ZSBpZiBlbXB0 eSkKLSttb2R1bGVfY21kcz0kbHRfbW9kdWxlX2NtZHNfRjc3Ci0rbW9kdWxlX2V4cHN5bV9jbWRz PSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNfRjc3Ci0rCi0rIyBDb21tYW5kcyB0byBzdHJpcCBsaWJy YXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBsaWIKLStzdHJpcGxpYj0kbHRfc3Ry aXBsaWIKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBfb2JqZWN0 cz0kbHRfcHJlZGVwX29iamVjdHNfRjc3Ci0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0 ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFy eS4KLStwb3N0ZGVwX29iamVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0c19GNzcKLSsKLSsjIERlcGVu ZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0 ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwcmVkZXBzPSRsdF9wcmVkZXBzX0Y3NwotKwotKyMg RGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBj cmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcG9zdGRlcHM9JGx0X3Bvc3RkZXBzX0Y3Nwot KwotKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVh dGluZyBhIHNoYXJlZAotKyMgbGlicmFyeQotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRf Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0Y3NwotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBh dGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hh cmVkIGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJf c2VhcmNoX3BhdGhfRjc3Ci0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQg bGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRf ZGVwbGlic19jaGVja19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19j aGVja19tZXRob2QgPT0gZmlsZV9tYWdpYy4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdp Y19jbWQKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuZGVm aW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9hbGxv d191bmRlZmluZWRfZmxhZ19GNzcKLSsKLSsjIEZsYWcgdGhhdCBmb3JjZXMgbm8gdW5kZWZpbmVk IHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnX0Y3Nwot KwotKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0 aW9uIGluIGEgZGlyZWN0b3J5LgotK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcwotKwotKyMg U2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQg YnV0IG5vdCBzaG93bi4KLStmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKLSsKLSsjIFRha2Ug dGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5k IEMgbmFtZXMuCi0rZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF9waXBlCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRl Y2xhcmF0aW9uCi0rZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfdG9fY2RlY2wKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBu YW1lIGFkZHJlc3MgcGFpcgotK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCi0rCi0rIyBUaGlzIGlzIHRo ZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0aF92YXI9JHJ1 bnBhdGhfdmFyCi0rCi0rIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxl LgotK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIKLSsKLSsjIElzIHNobGlicGF0aCBzZWFy Y2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KLStzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAotKwotKyMg SG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUu Ci0raGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fRjc3Ci0rCi0rIyBXaGV0aGVyIHdl IHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2Rl X2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwk bGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBl dmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3Ci0rCi0rIyBJZiBsZCBpcyB1c2Vk IHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvCi0rIyBhIGJpbmFy eSBkdXJpbmcgbGlua2luZy4gVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzCi0r IyBub3QgZXhpc3QuCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0kbHRfaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZF9GNzcKLSsKLSsjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAt cnBhdGggZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgotK2hhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3Ci0rCi0rIyBTZXQgdG8g eWVzIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJk Y29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX2RpcmVj dD0kaGFyZGNvZGVfZGlyZWN0X0Y3NwotKwotKyMgU2V0IHRvIHllcyBpZiB1c2luZyB0aGUgLUxE SVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRp bmcgYmluYXJ5LgotK2hhcmRjb2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfRjc3Ci0rCi0r IyBTZXQgdG8geWVzIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhh cmRjb2RlcyBESVIgaW50bwotKyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzcKLSsKLSsjIFNldCB0byB5ZXMg aWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIg aW50byB0aGUgbGlicmFyeQotKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhl Y3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRoYXJkY29k ZV9hdXRvbWF0aWNfRjc3Ci0rCi0rIyBWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBz YXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKLSsjIHJlc3RvcmVkIGF0IHJlbGlu ayB0aW1lLgotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbmsiCi0rCi0rIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBsaW5rIGEgcHJvZ3JhbSBhZ2Fp bnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCi0rbGlua19hbGxfZGVwbGlicz0kbGlu a19hbGxfZGVwbGlic19GNzcKLSsKLSsjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGgg Zm9yIGxpYnJhcmllcwotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjCi0rCi0rIyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJh cmllcwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYwotKwotKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBj b21waWxlci4KLStmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCi0rCi0rIyBT ZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgotK2Fsd2F5c19leHBv cnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0Y3NwotKwotKyMgVGhlIGNvbW1hbmRz IHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9leHBv cnRfc3ltYm9sc19jbWRzX0Y3NwotKwotKyMgVGhlIGNvbW1hbmRzIHRvIGV4dHJhY3QgdGhlIGV4 cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KLStleHRyYWN0X2V4cHN5 bXNfY21kcz0kbHRfZXh0cmFjdF9leHBzeW1zX2NtZHMKLSsKLSsjIFN5bWJvbHMgdGhhdCBzaG91 bGQgbm90IGJlIGxpc3RlZCBpbiB0aGUgcHJlbG9hZGVkIHN5bWJvbHMuCi0rZXhjbHVkZV9leHBz eW1zPSRsdF9leGNsdWRlX2V4cHN5bXNfRjc3Ci0rCi0rIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdh eXMgYmUgZXhwb3J0ZWQuCi0raW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXNfRjc3 Ci0rCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUKLSsKLStfX0VPRl9f Ci0rCi0rCi0rZWxzZQotKyAgIyBJZiB0aGVyZSBpcyBubyBNYWtlZmlsZSB5ZXQsIHdlIHJlbHkg b24gYSBtYWtlIHJ1bGUgdG8gZXhlY3V0ZQotKyAgIyBgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sn IHRvIHJlcnVuIHRoZXNlIHRlc3RzIGFuZCBjcmVhdGUgdGhlCi0rICAjIGxpYnRvb2wgc2NyaXB0 IHRoZW4uCi0rICBsdG1haW5faW49YGVjaG8gJGx0bWFpbiB8IHNlZCAtZSAncy9cLnNoJC8uaW4v J2AKLSsgIGlmIHRlc3QgLWYgIiRsdG1haW5faW4iOyB0aGVuCi0rICAgIHRlc3QgLWYgTWFrZWZp bGUgJiYgbWFrZSAiJGx0bWFpbiIKLSsgIGZpCi0rZmkKLSsKLSsKLSthY19leHQ9YwotK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK0NDPSIkbHRfc2F2 ZV9DQyIKLSsKLSsJZWxzZQotKwkgIHRhZ25hbWU9IiIKLSsJZmkKLSsJOzsKLSsKLSsgICAgICBH Q0opCi0rCWlmIHRlc3QgLW4gIiRHQ0oiICYmIHRlc3QgIlgkR0NKIiAhPSAiWG5vIjsgdGhlbgot KwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBKYXZhIHRlc3Qgc291cmNlcy4KLSth Y19leHQ9amF2YQotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBKYXZh IHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK29iamV4dF9HQ0o9JG9iamV4dAotKwotKyMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlPSJjbGFzcyBmb28ge30iCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxl IGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J3B1YmxpYyBjbGFzcyBjb25m dGVzdCB7IHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3YpIHt9OyB9JwotKwot KyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtl IHN1cmUgJENDIGlzIHNldC4KLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwg dXNlIENDLgotK0xUQ0M9JHtMVENDLSIkQ0MifQotKwotKyMgSWYgbm8gQyBjb21waWxlciBmbGFn cyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KLStMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZM QUdTIn0KLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRz LgotK2NvbXBpbGVyPSRDQwotKwotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBz aW1wbGUgdGVzdCBjb2RlCi0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAi JGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIk YWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25m dGVzdC5lcnIKLStfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0r JHJtIGNvbmZ0ZXN0KgotKwotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8g IiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFj X2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3Qu ZXJyCi0rX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskcm0gLXIg Y29uZnRlc3QqCi0rCi0rCi0rIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3VtZW50cy4KLStsdF9zYXZlX0NDPSIkQ0MiCi0rQ0M9JHtHQ0otImdjaiJ9Ci0rY29tcGlsZXI9 JENDCi0rY29tcGlsZXJfR0NKPSRDQwotK2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwot KyAgY2FzZSAkY2NfdGVtcCBpbgotKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNo ZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlm eSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0rICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAg ZXNhYwotK2RvbmUKLStjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAn cyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKLSsKLSsKLSsjIEdDSiBkaWQgbm90IGV4 aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCi0rYXJj aGl2ZV9jbWRzX25lZWRfbGNfR0NKPW5vCi0rCi0rb2xkX2FyY2hpdmVfY21kc19HQ0o9JG9sZF9h cmNoaXZlX2NtZHMKLSsKLSsKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19HQ0o9 Ci0rCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGx0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnX0dDSj0nIC1mbm8tYnVpbHRpbicKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5v LWV4Y2VwdGlvbnMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBw b3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHts dF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVy X3J0dGlfZXhjZXB0aW9ucz1ubwotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0r ICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIKLSsgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku Ci0rICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQg Y29uZnVzaW5nIHNlZC4KLSsgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VE IFwKLSsgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBc Ci0rICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAot KyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0rICAgKGV2YWwgZWNobyAiXCJcJGFz X21lOjE3NDkwOiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAy PmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgIGVjaG8gIiRhc19tZToxNzQ5NDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYg KGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAj IFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3Qg cmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVy IHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2ls ZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9e JC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYv bnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15 ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkcm0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4 Y2VwdGlvbnMiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2Vw dGlvbnMiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4 Y2VwdGlvbnMiID0geHllczsgdGhlbgotKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZ19HQ0o9IiRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19HQ0ogLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucyIKLStlbHNlCi0rICAgIDoKLStmaQotKwotK2ZpCi0rCi0rbHRfcHJv Z19jb21waWxlcl93bF9HQ0o9Ci0rbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPQotK2x0X3Byb2df Y29tcGlsZXJfc3RhdGljX0dDSj0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2 OyB9Ci0rCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0dDSj0nLVdsLCcKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctc3Rh dGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAjIEFs bCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IGFtaWdhb3MqKQotKyAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0 byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAjIGFkZGluZyB0aGUgYC1tNjgw MjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAg ICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLW02 ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JwotKyAgICAgIDs7Ci0rCi0rICAg IGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBv c2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAg ICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqKQotKyAgICAgICMg VGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQg aXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91 bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5 Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsg ICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKwotKyAgICAgIDs7Ci0r Ci0rICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQg b24gdGhpcyBwbGF0Zm9ybQotKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4g TUhfRFlMSUIgZmlsZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1mbm8tY29t bW9uJwotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhbMy05XSopCi0rICAgICAgIyBJbnRlcml4 IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAg ICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsg ICAgICA7OwotKwotKyAgICBtc2Rvc2RqZ3BwKikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1 c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAg ICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfR0NKPW5vCi0rICAgICAgZW5hYmxlX3NoYXJlZD1u bwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3Iv bmVjOyB0aGVuCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0tS2NvbmZvcm1fcGljCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVm YXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBm b3IgUEEgSFAtVVguCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0Knxp YTY0KikKLSsJIyArWiB0aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29t cGlsZXJfcGljX0dDSj0nLWZQSUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0r ICAgICopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctZlBJQycKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBh c3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KLSsgICAgY2FzZSAk aG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSct V2wsJwotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUg bm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dD Sj0nLUJzdGF0aWMnCi0rICAgICAgZWxzZQotKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9 Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAg ICAgZGFyd2luKikKLSsgICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZv cm0KLSsgICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmls ZXMKLSsgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICB4bGMqKQotKyAgICAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLXFub2NvbW1vbicKLSsgICAgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKLSsgICAgICAgICA7OwotKyAgICAgICBlc2FjCi0r ICAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCi0rICAg ICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhl ciBpdCBpcyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5k IHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rCi0rICAgICAgOzsKLSsKLSsg ICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl93 bF9HQ0o9Jy1XbCwnCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVgg YW5kIDY0LWJpdCBIUC1VWCwgYnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAg IGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRl ZmF1bHQKLSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9JytaJwot Kwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKyAgICAgIDs7 Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAgbHRfcHJvZ19j b21waWxlcl93bF9HQ0o9Jy1XbCwnCi0rICAgICAgIyBQSUMgKHdpdGggLUtQSUMpIGlzIHRoZSBk ZWZhdWx0LgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLW5vbl9zaGFyZWQn Ci0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19HQ0o9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0 aWMnCi0rICAgICAgOzsKLSsKLSsgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGljYyogfCBlY2MqKQotKwlsdF9wcm9nX2NvbXBpbGVy X3dsX0dDSj0nLVdsLCcKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJQycKLSsJbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBw Z2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikKLSsgICAgICAgICMgUG9ydGxhbmQgR3Jv dXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2gg bG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCi0rCWx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSct V2wsJwotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1mcGljJwotKwlsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAgICBjY2MqKQotKyAg ICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCi0rICAgICAgICAjIEFsbCBBbHBo YSBjb2RlIGlzIFBJQy4KLSsgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLW5v bl9zaGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgICopCi0rICAgICAgICBjYXNlIGAkQ0MgLVYg Mj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCi0rCSAgIyBTdW4gQyA1LjkKLSsJICBsdF9w cm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1LUElDJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0dDSj0nLUJzdGF0aWMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCi0rCSAg OzsKLSsJKlN1blwgRiopCi0rCSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29n bml6ZWQgZmxhZ3MgdG8gdGhlIGxpbmtlcgotKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0n LUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKLSsJICBs dF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nJwotKwkgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBl c2FjCi0rICAgICAgOzsKLSsKLSsgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMg UElDLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLW5vbl9zaGFyZWQnCi0r ICAgICAgOzsKLSsKLSsgICAgcmRvcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf R0NKPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0dDSj0nLUJzdGF0aWMnCi0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICBmNzcqIHwgZjkwKiB8IGY5NSopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctUW9wdGlv biBsZCAnOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCc7Owot KyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfd2xfR0NKPSctUW9wdGlvbiBsZCAnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfR0NKPSctUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0 aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQot KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0dDSj0nLUtQSUMnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NK PSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVz dCAtZCAvdXNyL25lYyA7dGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1LY29uZm9y bV9waWMnCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCi0rICAgICAg ZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBz Y281djYqIHwgT3BlblVOSVgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2ws JwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCi0rICAgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICB1bmlj b3MqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJwotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICB1 dHM0KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1waWMnCi0rICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAq KQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9HQ0o9bm8KLSsgICAg ICA7OwotKyAgICBlc2FjCi0rICBmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oiID4mNQotKyRhc19lY2hvICIkbHRfcHJv Z19jb21waWxlcl9waWNfR0NKIiA+JjY7IH0KLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUg dGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19j b21waWxlcl9waWNfR0NKIjsgdGhlbgotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiB3 b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRs dF9wcm9nX2NvbXBpbGVyX3BpY19HQ0ogd29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0dDSitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3Bp Y193b3Jrc19HQ0o9bm8KLSsgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAg IGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oiCi0rICAgIyBJbnNl cnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwg b3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgz KSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5v dCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2ln biAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAg ICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1 c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0r ICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAg IC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAt ZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTox Nzc4MDogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25m dGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICBlY2hvICIkYXNfbWU6MTc3ODQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0 ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUg Y29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29n bml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFu IHRoZSB1c3VhbCBvdXRwdXQuCi0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsg L14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBj b25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7 IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKPXllcwotKyAg ICAgZmkKLSsgICBmaQotKyAgICRybSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19HQ0oi ID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKIiA+JjY7 IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0dDSiIgPSB4 eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiBpbgotKyAgICAg IiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSIgJGx0X3By b2dfY29tcGlsZXJfcGljX0dDSiIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0dDSj0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZF9HQ0o9bm8KLStmaQotKwotK2ZpCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZv cm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAq ZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Ci0rICAgIDs7Ci0rICAqKQot KyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oi Ci0rICAgIDs7Ci0rZXNhYwotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGlj IGZsYWcgYWN0dWFsbHkgd29ya3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSiBl dmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0pcIgot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGlj IGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dD SitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19HQ0o9bm8KLSsgICBzYXZlX0xE RkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2Zs YWciCi0rICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNf ZXh0Ci0rICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBh bmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5v IGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRo ZW4KLSsgICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAg ICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRlY2hvICJYJF9sdF9saW5rZXJfYm9p bGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VE ICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYg ZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAg ICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19HQ0o9eWVzCi0rICAgICAgIGZpCi0r ICAgICBlbHNlCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSj15 ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkcm0gLXIgY29uZnRlc3QqCi0rICAgTERGTEFHUz0i JHNhdmVfTERGTEFHUyIKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19HQ0oiID4mNQotKyRhc19lY2hv ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfR0NKIiA+JjY7IH0KLSsKLStpZiB0 ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSiIgPSB4eWVzOyB0aGVu Ci0rICAgIDoKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0KLStmaQot KwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIg c3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0orc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJvZ19j b21waWxlcl9jX29fR0NKPW5vCi0rICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAg bWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAg IGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIElu c2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxl LCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3Ig KDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMg bm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBz aWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0r ICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipG TEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBd KmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRf Y29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNzg4NDogJGx0X2Nv bXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJy KQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVj aG8gIiRhc19tZToxNzg4ODogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFj X3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0r ICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz Ci0rICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9e JC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQv Y29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2Nv bmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rl di9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSj15ZXMKLSsg ICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJHJtIGNvbmZ0ZXN0Kgot KyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVz LyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9m aWxlcyAmJiAkcm0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJHJt IG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgcm1kaXIgY29uZnRlc3QKLSsgICAk cm0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NKIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3By b2dfY29tcGlsZXJfY19vX0dDSiIgPiY2OyB9Ci0rCi0rCi0raGFyZF9saW5rcz0ibm90dGVzdGVk IgotK2lmIHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0oiID0gbm8gJiYgdGVzdCAi JG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCi0rICAjIGRvIG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVl IG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAi ID4mNjsgfQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRybSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0 ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBj b25mdGVzdC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtz PW5vCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5r cz1ubwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRfbGlua3Mi ID4mNQotKyRhc19lY2hvICIkaGFyZF9saW5rcyIgPiY2OyB9Ci0rICBpZiB0ZXN0ICIkaGFyZF9s aW5rcyIgPSBubzsgdGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJl IHVuc2FmZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90 IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiYyO30KLSsg ICAgbmVlZF9sb2Nrcz13YXJuCi0rICBmaQotK2Vsc2UKLSsgIG5lZWRfbG9ja3M9bm8KLStmaQot KwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9y dHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKwotKyAgcnVucGF0aF92YXI9Ci0rICBh bGxvd191bmRlZmluZWRfZmxhZ19HQ0o9Ci0rICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzX0dDSj1ubwotKyAgYXJjaGl2ZV9jbWRzX0dDSj0KLSsgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfR0NKPQotKyAgb2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kc19HQ0o9Ci0rICBvbGRfYXJjaGl2 ZV9mcm9tX2V4cHN5bXNfY21kc19HQ0o9Ci0rICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NK PQotKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPQotKyAgdGhyZWFkX3NhZmVfZmxhZ19z cGVjX0dDSj0KLSsgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPQotKyAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19sZF9HQ0o9Ci0rICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dD Sj0KLSsgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9bm8KLSsgIGhhcmRjb2RlX21pbnVzX0xfR0NKPW5v Ci0rICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj11bnN1cHBvcnRlZAotKyAgbGlua19hbGxf ZGVwbGlic19HQ0o9dW5rbm93bgotKyAgaGFyZGNvZGVfYXV0b21hdGljX0dDSj1ubwotKyAgbW9k dWxlX2NtZHNfR0NKPQotKyAgbW9kdWxlX2V4cHN5bV9jbWRzX0dDSj0KLSsgIGFsd2F5c19leHBv cnRfc3ltYm9sc19HQ0o9bm8KLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSckTk0gJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICAjIGluY2x1ZGVfZXhwc3lt cyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdh eXMqCi0rICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAotKyAgaW5jbHVkZV9leHBzeW1z X0dDSj0KLSsgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAgb2Yg c3ltYm9scyB0byBleGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFuZCBg KSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAjIGVuZCBvZiBsaW5l LiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScgYW5k IGBiYycsCi0rICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4KLSsg IGV4Y2x1ZGVfZXhwc3ltc19HQ0o9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lE XV8uKicKLSsgICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3lt Ym9sIEMgbmFtZSwgbW9zdCBhLm91dAotKyAgIyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMg Y29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wg aXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAgU2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsg ICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIg aW5jbHVkZSBpdCBpbgotKyAgIyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVk ZSBzaGFyZWQgbGlicmFyeSBpbml0aWFsaXphdGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLSsg IGV4dHJhY3RfZXhwc3ltc19jbWRzPQotKyAgIyBKdXN0IGJlaW5nIHBhcmFub2lkIGFib3V0IGVu c3VyaW5nIHRoYXQgY2NfYmFzZW5hbWUgaXMgc2V0LgotKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBp bGVyIiI7IGRvCi0rICBjYXNlICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21w aWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlz dGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBi cmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8 ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAotKwotKyAgY2FzZSAk aG9zdF9vcyBpbgotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQotKyAgICAjIEZJWE1FOiB0 aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0aW1lCi0rICAg ICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVz aW5nCi0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9 IHllczsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBp bnRlcml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3Qg Yzg5ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVuYnNk KikKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGxkX3NobGli c19HQ0o9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgICMg SWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0r ICAgIHdsYXJjPScke3dsfScKLSsKLSsgICAgIyBTZXQgc29tZSBkZWZhdWx0cyBmb3IgR05VIGxk IHdpdGggc2hhcmVkIGxpYnJhcnkgc3VwcG9ydC4gVGhlc2UKLSsgICAgIyBhcmUgcmVzZXQgbGF0 ZXIgaWYgc2hhcmVkIGxpYnJhcmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVtCi0r ICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KLSsg ICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19HQ0o9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19HQ0o9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsgICAgIyBhbmNpZW50IEdOVSBs ZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgotKyAgICBpZiAkTEQgLS1o ZWxwIDI+JjEgfCBncmVwICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKwl3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZl bmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgZWxzZQotKyAgCXdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0KLSsgICAgZmkKLSsgICAgc3VwcG9ydHNfYW5vbl92 ZXJzaW9uaW5nPW5vCi0rICAgIGNhc2UgYCRMRCAtdiAyPi9kZXYvbnVsbGAgaW4KLSsgICAgICAq XCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMg PCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmlu Zz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRz X2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwgMi4x MS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9uX3Zl cnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4WzMt OV0qKQotKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4K LSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSsJbGRfc2hsaWJzX0dD Sj1ubwotKwljYXQgPDxFT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiB0aGUgR05VIGxpbmtlciwg YXQgbGVhc3QgdXAgdG8gcmVsZWFzZSAyLjkuMSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5h YmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhl cmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJ ZiB5b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2Fu dCB0byBtb2RpZnkgeW91ciBQQVRICi0rKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBm b3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStFT0YKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIGFtaWdhb3MqKQotKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRybSAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBMSUJSQVJZX0lEIDEi ID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgVkVSU0lP TiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZp bmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2Jq ZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19HQ0o9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9taW51c19MX0dDSj15ZXMKLSsKLSsg ICAgICAjIFNhbXVlbCBBLiBGYWx2byBJSSA8a2M1dGphQGRvbHBoaW4ub3BlbnByb2plY3RzLm5l dD4gcmVwb3J0cwotKyAgICAgICMgdGhhdCB0aGUgc2VtYW50aWNzIG9mIGR5bmFtaWMgbGlicmFy aWVzIG9uIEFtaWdhT1MsIGF0IGxlYXN0IHVwCi0rICAgICAgIyB0byB2ZXJzaW9uIDQsIGlzIHRv IHNoYXJlIGRhdGEgYW1vbmcgbXVsdGlwbGUgcHJvZ3JhbXMgbGlua2VkCi0rICAgICAgIyB3aXRo IHRoZSBzYW1lIGR5bmFtaWMgbGlicmFyeS4gIFNpbmNlIHRoaXMgZG9lc24ndCBtYXRjaCB0aGUK LSsgICAgICAjIGJlaGF2aW9yIG9mIHNoYXJlZCBsaWJyYXJpZXMgb24gb3RoZXIgcGxhdGZvcm1z LCB3ZSBjYW4ndCB1c2UKLSsgICAgICAjIHRoZW0uCi0rICAgICAgbGRfc2hsaWJzX0dDSj1ubwot KyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdy ZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlhbGxv d191bmRlZmluZWRfZmxhZ19HQ0o9dW5zdXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8 anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11 bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCWFy Y2hpdmVfY21kc19HQ0o9JyRDQyAtbm9zdGFydCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWxk X3NobGlic19HQ0o9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBt aW5ndyogfCBwdzMyKikKLSsgICAgICAjIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgR0NKKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgICAjIGFzIHRoZXJl IGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfR0NKPSctTCRsaWJkaXInCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPXVu c3VwcG9ydGVkCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dDSj1ubwotKyAgICAgIGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfR0NKPXllcwotKyAgICAgIGV4cG9ydF9z eW1ib2xzX2NtZHNfR0NKPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1i b2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14gXSpcKS9cMSBE QVRBLydcJycgLWUgJ1wnJy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ ICRleHBvcnRfc3ltYm9scycKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdh dXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgIGFyY2hpdmVfY21kc19HQ0o9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0t b3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxl IGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBp dCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NK PSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgot KwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZWxz ZQotKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgIGNh dCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgot KwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxl LWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsg ICAgICBlbHNlCi0rCWxkX3NobGlic19HQ0o9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIGludGVyaXhbMy05XSopCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubwotKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19HQ0o9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rICAgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKLSsgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3 ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rICAgICAgIyBJ bnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgx MDAwMDAwMCBieQotKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZs aWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKLSsgICAgICAjIGNvbnN1bWluZyBhbmQg ZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0r ICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5k IDB4NkZGQzAwMDAgYXQgbGluawotKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAw MDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICAgIGFyY2hpdmVfY21k c19HQ0o9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQk fSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgYXJj aGl2ZV9leHBzeW1fY21kc19HQ0o9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3lt Ym9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNl LGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1v ICRsaWInCi0rICAgICAgOzsKLSsKLSsgICAgZ251KiB8IGxpbnV4KiB8IGsqYnNkKi1nbnUpCi0r ICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBl bGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCXRtcF9hZGRmbGFnPQotKwljYXNlICRjY19iYXNlbmFt ZSwkaG9zdF9jcHUgaW4KLSsJcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgot KwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9y IGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19j b252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3 X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFn PScgJHBpY19mbGFnJwotKwkgIDs7Ci0rCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0 bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlY19HQ0o9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwi XCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZl bmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0t bm8td2hvbGUtYXJjaGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicg OzsKLSsJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2 NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYycgOzsKLSsJZWZjKixpYTY0KiB8IGlmb3J0 KixpYTY0KikJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxh Zz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7Ci0rCWlmYyogfCBpZm9ydCopCQkJIyBJbnRl bCBGb3J0cmFuIGNvbXBpbGVyCi0rCSAgdG1wX2FkZGZsYWc9JyAtbm9mb3JfbWFpbicgOzsKLSsJ ZXNhYwotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBT dW4gQyA1LjkKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LS13aG9sZS1h cmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRv IHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2Us JGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9s ZS1hcmNoaXZlJwotKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKLSsJKlN1blwgRiopCQkJIyBT dW4gRm9ydHJhbiA4LjMKLSsJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7Ci0rCSopCi0rCSAgdG1w X3NoYXJlZGZsYWc9Jy1zaGFyZWQnIDs7Ci0rCWVzYWMKLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJEND ICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsJaWYgdGVz dCAkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nID0geWVzOyB0aGVuCi0rCSAgYXJjaGl2ZV9leHBz eW1fY21kc19HQ0o9JyRlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu dmVyfgotKyAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKyAgJGVjaG8gImxvY2FsOiAqOyB9OyIgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIi JHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudmVyIC1vICRsaWInCi0rCWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnNfR0NK PW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBuZXRic2QqKQotKyAgICAgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJ YXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MgLW8gJGxpYicKLSsJd2xhcmM9Ci0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNf R0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAt byAkbGliJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAg aWYgJExEIC12IDI+JjEgfCBncmVwICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KLSsJbGRf c2hsaWJzX0dDSj1ubwotKwljYXQgPDxFT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBUaGUgcmVs ZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Ci0rKioqIGNyZWF0 ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9v bAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5 b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdl ci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEggb3IgY29tcGls ZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0rKioqIHVzZWQs IGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rRU9GCi0rICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEg fCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJ YXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3lt X2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3NobGlic19HQ0o9bm8KLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2Niog fCB1bml4d2FyZSogfCBPcGVuVU5JWCopCi0rICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0r ICAgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4qKQotKwlsZF9z aGxpYnNfR0NKPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBSZWxl YXNlcyBvZiB0aGUgR05VIGxpbmtlciBwcmlvciB0byAyLjE2LjkxLjAuMyBjYW4gbm90Ci0rKioq IHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVm b3JlLCBsaWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQu ICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIu MTYuOTEuMC4zIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5Ci0rKioqIHlv dXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5r ZXIgaXMKLSsqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9GCi0rCTs7Ci0r CSopCi0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0dDSj0nYHRlc3QgLXogIiRTQ09BQlNQQVRIIiAmJiBlY2hvICR7d2x9LXJwYXRoLCRsaWJkaXJg JwotKwkgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGli ZGlyfS99JHNvbmFtZSAtbyAkbGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUs XCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUsLXJldGFpbi1zeW1ib2xz LWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgZWxzZQotKwkgICAgbGRfc2hsaWJz X0dDSj1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1 bm9zNCopCi0rICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1C c2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAg ICB3bGFyYz0KLSsgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBpZiAk TEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2 L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r CWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCWxkX3No bGlic19HQ0o9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgaWYg dGVzdCAiJGxkX3NobGlic19HQ0oiID0gbm87IHRoZW4KLSsgICAgICBydW5wYXRoX3Zhcj0KLSsg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0KLSsgICAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWNfR0NKPQotKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0KLSsg ICAgZmkKLSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlv dXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQotKyAgICBjYXNlICRob3N0X29zIGluCi0r ICAgIGFpeDMqKQotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj11bnN1cHBvcnRlZAot KyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19HQ0o9eWVzCi0rICAgICAgYXJjaGl2ZV9leHBz eW1fY21kc19HQ0o9JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JF fiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICMgTm90 ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRo ZXJlCi0rICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgotKyAgICAg IGhhcmRjb2RlX21pbnVzX0xfR0NKPXllcwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYm IHRlc3QgLXogIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KLSsJIyBOZWl0aGVyIGRp cmVjdCBoYXJkY29kaW5nIG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCi0r CSMgYnJva2VuIGNvbGxlY3QyLgotKwloYXJkY29kZV9kaXJlY3RfR0NKPXVuc3VwcG9ydGVkCi0r ICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhaXhbNC05XSopCi0rICAgICAgaWYgdGVzdCAi JGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVu IHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKwkjIGhhdmUgdG8gZG8gYW55 dGhpbmcgc3BlY2lhbC4KLSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwlleHBfc3ltX2Zs YWc9Jy1CZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSIiCi0rICAgICAgZWxzZQotKwkjIElmIHdl J3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KLSsJ IyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3 aXRoIEdOVSBubQotKwlpZiAkTk0gLVYgMj4mMSB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7IHRo ZW4KLSsJICBleHBvcnRfc3ltYm9sc19jbWRzX0dDSj0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAo XCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9 J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBleHBvcnRfc3lt Ym9sc19jbWRzX0dDSj0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcn eyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAo c3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4g JGV4cG9ydF9zeW1ib2xzJwotKwlmaQotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0r CSMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1h bAotKwkjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFH Uywgd2UKLSsJIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KLSsJY2FzZSAkaG9zdF9vcyBp biBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQotKwkgIGZvciBsZF9mbGFnIGluICRM REZMQUdTOyBkbwotKyAgCSAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxk X2ZsYWcgPSAiLVdsLC1icnRsIik7IHRoZW4KLSsgIAkgICAgYWl4X3VzZV9ydW50aW1lbGlua2lu Zz15ZXMKLSsgIAkgICAgYnJlYWsKLSsgIAkgIGZpCi0rCSAgZG9uZQotKwkgIDs7Ci0rCWVzYWMK LSsKLSsJZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5 JwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJl ZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgotKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBj cmVhdGluZyB0aGUgdGFibGUgb2YgY29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQotKyAg ICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1p bmltYWwtdG9jIHRvCi0rICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0 aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHBy b2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8gTERGTEFHUy4KLSsKLSsgICAgICBhcmNoaXZlX2Nt ZHNfR0NKPScnCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKLSsgICAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0dDSj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzX0dDSj15 ZXMKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29z IGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQotKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlz IG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJva2VuIGNv bGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAke0NDfSAt cHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAotKwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUi ICYmIFwKLSsgIAkgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8IGdyZXAgcmVzb2x2ZV9saWJf bmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKyAgCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxl Y3QyCi0rICAJICA6Ci0rCSAgZWxzZQotKyAgCSAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKyAg CSAgaGFyZGNvZGVfZGlyZWN0X0dDSj11bnN1cHBvcnRlZAotKyAgCSAgIyBJdCBmYWlscyB0byBm aW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKyAgCSAgIyBw YXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVz X0wKLSsgIAkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKyAgCSAgaGFyZGNv ZGVfbWludXNfTF9HQ0o9eWVzCi0rICAJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0n LUwkbGliZGlyJwotKyAgCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9Ci0rCSAgZmkK LSsJICA7OwotKwllc2FjCi0rCXNoYXJlZF9mbGFnPSctc2hhcmVkJwotKwlpZiB0ZXN0ICIkYWl4 X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxhZz0iJHNoYXJl ZF9mbGFnICInJHt3bH0tRycKLSsJZmkKLSsgICAgICBlbHNlCi0rCSMgbm90IHVzaW5nIGdjYwot KwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgCSMgVmlzdWFsQWdlIEMrKywg VmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCi0rICAJIyBj aG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJICBzaGFy ZWRfZmxhZz0nLUcnCi0rCWVsc2UKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2lu ZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJwotKwkgIGVsc2UKLSsJ ICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgZmkKLSsJZmkKLSsgICAgICBmaQot KwotKyAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9s cyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRl ciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCi0rICAgICAgYWx3YXlz X2V4cG9ydF9zeW1ib2xzX0dDSj15ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1l bGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3Ro ZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3 aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJYWxsb3df dW5kZWZpbmVkX2ZsYWdfR0NKPSctYmVyb2snCi0rICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZh dWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eSBleGVjdXRhYmxl LgotKyAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot K2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190 cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0 aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3Mv LC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9 Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rl di9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3Ig YSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXog IiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQi YAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhl biBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRo IgotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxl cl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4g ZWNobyAiJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9 JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICAgZWxz ZQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfR0NKPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICBhbGxv d191bmRlZmluZWRfZmxhZ19HQ0o9Ii16IG5vZGVmcyIKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRz X0dDSj0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJv YmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRf c3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9t IHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0r Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBh dGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJ ICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBh dGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAi JGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdl IGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4K LSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVs bCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9s aWI6L2xpYiI7IGZpCi0rCi0rCSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0t YmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJICAjIFdhcm5pbmcgLSB3aXRob3V0 IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAotKwkgICMgLWJlcm9rIHdp bGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4K LSsJICBub191bmRlZmluZWRfZmxhZ19HQ0o9JyAke3dsfS1iZXJub3RvaycKLSsJICBhbGxvd191 bmRlZmluZWRfZmxhZ19HQ0o9JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5bWJvbHMg Y2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JyRjb252ZW5pZW5jZScKLSsJICBhcmNoaXZlX2NtZHNf bmVlZF9sY19HQ0o9eWVzCi0rCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRp b25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KLSsJICBhcmNoaXZlX2V4cHN5bV9j bWRzX0dDSj0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTok ZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlm aQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgYXJjaGl2 ZV9jbWRzX0dDSj0nJHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNk ZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRl Y2hvICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kZWNobyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRw dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRS QU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJwotKyAgICAgIGhhcmRj b2RlX21pbnVzX0xfR0NKPXllcwotKyAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50 IHNlbWFudGljcyBvbiB0aGUgR05VIGxkIHNlY3Rpb24KLSsgICAgICBsZF9zaGxpYnNfR0NKPW5v Ci0rICAgICAgOzsKLSsKLSsgICAgYnNkaVs0NV0qKQotKyAgICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19HQ0o9LXJkeW5hbWljCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqKQotKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNz dW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsg ICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3Ms IGFzIHRoZXJlIGlzCi0rICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nICcKLSsgICAgICBhbGxvd191bmRlZmluZWRf ZmxhZ19HQ0o9dW5zdXBwb3J0ZWQKLSsgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBm aWxlcywgbm90IC5hIGZpbGVzLgotKyAgICAgIGxpYmV4dD1saWIKLSsgICAgICAjIFRlbGwgbHRt YWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsgICAgICBzaHJleHRfY21k cz0iLmRsbCIKLSsgICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFk IGhhY2suCi0rICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNv bXBpbGVyX2ZsYWdzIGBlY2hvICIkZGVwbGlicyIgfCAkU0VEIC1lICdcJydzLyAtbGMkLy8nXCcn YCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCi0rICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21h dGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KLSsgICAgICBvbGRf YXJjaGl2ZV9Gcm9tX25ld19jbWRzX0dDSj0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBTaG91bGQg bGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIG9sZF9hcmNoaXZl X2NtZHNfR0NKPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCi0rICAgICAg Zml4X3NyY2ZpbGVfcGF0aF9HQ0o9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJwotKyAgICAgIGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfR0NKPXllcwotKyAgICAgIDs7Ci0rCi0r ICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAg ICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyXSkKLSsgICAgICAgICBhbGxvd191bmRlZmluZWRf ZmxhZ19HQ0o9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJwotKyAgICAgICAgIDs7Ci0r ICAgICAgICopICMgRGFyd2luIDEuMyBvbgotKyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hf REVQTE9ZTUVOVF9UQVJHRVR9IDsgdGhlbgotKyAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2Zs YWdfR0NKPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVz cycKLSsgICAgICAgICBlbHNlCi0rICAgICAgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRf VEFSR0VUfSBpbgotKyAgICAgICAgICAgICAxMC5bMDEyXSkKLSsgICAgICAgICAgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19HQ0o9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5l ZCAke3dsfXN1cHByZXNzJwotKyAgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAgIDEwLiop Ci0rICAgICAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScke3dsfS11bmRlZmlu ZWQgJHt3bH1keW5hbWljX2xvb2t1cCcKLSsgICAgICAgICAgICAgICA7OwotKyAgICAgICAgICAg ZXNhYwotKyAgICAgICAgIGZpCi0rICAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGNfR0NKPW5vCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubwot KyAgICAgIGhhcmRjb2RlX2F1dG9tYXRpY19HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJw YXRoX3Zhcl9HQ0o9dW5zdXBwb3J0ZWQKLSsgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19H Q0o9JycKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzX0dDSj15ZXMKLSsgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXMgOyB0aGVuCi0rICAgIAlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsg ICAgICAgIGFyY2hpdmVfY21kc19HQ0o9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWlu c3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9t b2Qke19sdF9kc3ltdXRpbH0iCi0rICAgICAgICBtb2R1bGVfY21kc19HQ0o9IlwkQ0MgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfR0NKPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGly L1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRl ZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mg LWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5n bGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgICAgICBt b2R1bGVfZXhwc3ltX2NtZHNfR0NKPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xz ID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRj b21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAg IGVsc2UKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgeGxjKikKLSsgICAg ICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKLSsgICAgICAgICBhcmNoaXZlX2Nt ZHNfR0NKPSckQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVj aG8gJHJwYXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCi0rICAgICAgICAgbW9kdWxlX2NtZHNf R0NKPSckQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAk ZGVwbGlicyRjb21waWxlcl9mbGFncycKLSsgICAgICAgICAgIyBEb24ndCBmaXggdGhpcyBieSB1 c2luZyB0aGUgbGQgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBmbGFnLCBpdCBkb2Vzbid0IGV4aXN0 IGluIG9sZGVyIGRhcndpbiBsZHMKLSsgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0n c2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwg JGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5 bX4kQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRz b25hbWUgJHhsY3ZlcnN0cmluZ35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1z eW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19HQ0o9 J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8 ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBz eW1+JENDICRhbGxvd191bmRlZmluZWRfZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRk ZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9 LXN5bWJvbHMuZXhwc3ltICR7bGlifScKLSsgICAgICAgICAgOzsKLSsgICAgICAgKikKLSsgICAg ICAgICBsZF9zaGxpYnNfR0NKPW5vCi0rICAgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIGRndXgqKQotKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK LSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJwotKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgZnJlZWJz ZDEqKQotKyAgICAgIGxkX3NobGlic19HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICAjIEZyZWVC U0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29u c3RydWN0b3IKLSsgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21h dGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCi0rICAgICMgZG9lcyBub3QgYnJlYWsg YW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRs ZQotKyAgICAjIGV4dHJhIHNwYWNlKS4KLSsgICAgZnJlZWJzZDIuMiopCi0rICAgICAgYXJjaGl2 ZV9jbWRzX0dDSj0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0dDSj0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0r ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICAj IFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0 aGlzIGZlYXR1cmUuCi0rICAgIGZyZWVic2QyKikKLSsgICAgICBhcmNoaXZlX2NtZHNfR0NKPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwot KyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTF9H Q0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICA7Owot KwotKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNo YXJlZCBsaWJyYXJpZXMuCi0rICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICAgICBhcmNo aXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLVIkbGli ZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJHJtICRvdXRwdXRf b2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRy bSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3Qg JG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGliJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9 JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf R0NKPToKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwotKwotKyAgICAgICMgaGFyZGNv ZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rICAgICAgIyBidXQg YXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rICAgICAgaGFyZGNvZGVf bWludXNfTF9HQ0o9eWVzCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3 bH0tRScKLSsgICAgICA7OwotKwotKyAgICBocHV4MTAqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0Mi ID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0n JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsg ICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAg ICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwloYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0dDSj06Ci0rCi0rCWhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0r CWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LUUnCi0rCi0rCSMgaGFyZGNvZGVf bWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSMgYnV0IGFzIHRoZSBk ZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwloYXJkY29kZV9taW51c19MX0dDSj15 ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMSopCi0rICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0 X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAk e3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJl ZCAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVf Y21kc19HQ0o9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4K LSsJaHBwYSo2NCopCi0rCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1iICR7d2x9K2ggJHt3bH0k c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7 Ci0rCWlhNjQqKQotKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtYiAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtYiAk e3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAg ICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwloYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCWhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfR0NKPToKLSsKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2 NCp8aWE2NCopCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9HQ0o9JytiICRsaWJk aXInCi0rCSAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubwotKwkgIGhhcmRjb2RlX3NobGlicGF0aF92 YXJfR0NKPW5vCi0rCSAgOzsKLSsJKikKLSsJICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwotKwkg IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LUUnCi0rCi0rCSAgIyBoYXJkY29k ZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJICAjIGJ1dCBhcyB0 aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsJICBoYXJkY29kZV9taW51c19M X0dDSj15ZXMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0t dXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCWhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGRfR0NKPSctcnBhdGggJGxpYmRpcicKLSsgICAgICBmaQotKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAg ICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgotKyAgICAgIGxpbmtfYWxsX2RlcGxp YnNfR0NKPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNo aXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJyAgIyBhLm91dAotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzX0dDSj0n JExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAg ICMgRUxGCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0n LVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCi0rICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICA7OwotKwotKyAgICBuZXdzb3M2KQotKyAg ICAgIGFyY2hpdmVfY21kc19HQ0o9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwot KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgotKyAgICAgIGhh cmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgb3BlbmJzZCop Ci0rICAgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KLSsJaGFyZGNvZGVf ZGlyZWN0X0dDSj15ZXMKLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsJaWYgdGVz dCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAi JGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rCSAgYXJj aGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKLSsJZWxzZQotKwkgIGNhc2UgJGhvc3Rf b3MgaW4KLSsJICAgb3BlbmJzZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAt N10uKikKLSsJICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfR0NKPSctUiRsaWJkaXInCi0rCSAgICAgOzsKLSsJICAgKikKLSsJICAgICBhcmNo aXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19H Q0o9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICAgOzsKLSsJICBlc2FjCi0rICAgICAgICBm aQotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzX0dDSj1ubwotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgb3MyKikKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwk bGliZGlyJwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfR0NKPXllcwotKyAgICAgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0dDSj11bnN1cHBvcnRlZAotKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRl Y2hvICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWZ+JGVjaG8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuZGVmfiRlY2hvIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVm fiRlY2hvICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVm fiRlY2hvIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGli b2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZicKLSsgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0dDSj0nZW14aW1w IC1vICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVm JwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0nICR7d2x9LWV4cGVjdF91bnJlc29s dmVkICR7d2x9XConCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfR0NKPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwlhcmNoaXZlX2NtZHNf R0NKPSckTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl Y2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPToKLSsgICAgICA7OwotKwotKyAgICBvc2Y0KiB8 IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKLSsgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9 JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHNfR0NKPSck Q0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJwotKyAgICAgIGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScgLWV4 cGVjdF91bnJlc29sdmVkIFwqJwotKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLXNoYXJlZCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW1zeW0g LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lv biAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSdmb3IgaSBpbiBgY2F0ICRl eHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwk aSIgPj4gJGxpYi5leHA7IGRvbmU7IGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSRMRCAt c2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWlucHV0ICRsaWIuZXhwICRsaW5rZXJfZmxh Z3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JHJtICRsaWIuZXhwJwotKwotKwkjIEJv dGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5Ci0rCWhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctcnBhdGggJGxpYmRpcicKLSsgICAgICBmaQotKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPToKLSsgICAgICA7OwotKwotKyAgICBzb2xh cmlzKikKLSsgICAgICBub191bmRlZmluZWRfZmxhZ19HQ0o9JyAteiB0ZXh0JwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJYXJjaGl2ZV9jbWRz X0dDSj0nJENDIC1zaGFyZWQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckZWNo byAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJz L1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4 cH4KLSsJICAkQ0MgLXNoYXJlZCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIu ZXhwJwotKyAgICAgIGVsc2UKLSsJd2xhcmM9JycKLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1H JHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsg IAkkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kcm0gJGxpYi5leHAnCi0rICAg ICAgZmkKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLVIkbGliZGlyJwot KyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKLSsgICAg ICAqKQotKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxp bmtlciBvcHRpb25zLAotKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0ND IGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5v dCB0byByZW9yZGVyLgotKyAJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIu NS4xPykKLSsJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlY19HQ0o9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXog JHt3bH1kZWZhdWx0ZXh0cmFjdCcKLSsJZWxzZQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj X0dDSj0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgbGlua19hbGxfZGVwbGlic19HQ0o9eWVzCi0rICAg ICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9 IHhzZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1 c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQg YW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtRyAke3ds fS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r ICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJz dGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZp Ci0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1MJGxpYmRpcicKLSsgICAg ICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfR0NKPXll cwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjQpCi0rICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIGFyY2hp dmVfY21kc19HQ0o9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKLSsJICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcyAjIGlzIHRoaXMgcmVh bGx5IHRydWU/Pz8KLSsJOzsKLSsJc2llbWVucykKLSsJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBh IFBMQU1MSUIKLSsJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCi0rCSAgYXJjaGl2 ZV9jbWRzX0dDSj0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFn cycKLSsJICByZWxvYWRfY21kc19HQ0o9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwot KwkgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9bm8KLSsgICAgICAgIDs7Ci0rCW1vdG9yb2xhKQotKwkg IGFyY2hpdmVfY21kc19HQ0o9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICBoYXJkY29kZV9kaXJlY3RfR0NKPW5vICNNb3Rvcm9s YSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSsJOzsKLSsgICAg ICBlc2FjCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXJfR0NKPW5vCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAg ICAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NK PW5vCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nLUJleHBvcnQnCi0rICAg ICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRo ZW4KLSsJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1u bwotKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMK LSsJbGRfc2hsaWJzX0dDSj15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0 KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4 d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfR0NK PScke3dsfS16LHRleHQnCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPW5vCi0rICAg ICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KLSsgICAgICBydW5wYXRoX3Zhcj0nTERf UlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2 ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJEND IC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJ YXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRD QyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQotKyAgICAgICMgTm90ZTog V2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8g bm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3lt Ym9scyB1c2VkIGZyb20gbGliYyB0bwotKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdo aWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5r IGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsg ICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24n dCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAjIGFzIC16IGRlZnMuCi0rICAgICAgbm9fdW5kZWZp bmVkX2ZsYWdfR0NKPScke3dsfS16LHRleHQnCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf R0NKPScke3dsfS16LG5vZGVmcycKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9bm8K LSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubwotKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfR0NKPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0t UiwkbGliZGlyYCcKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj0nOicKLSsg ICAgICBsaW5rX2FsbF9kZXBsaWJzX0dDSj15ZXMKLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfR0NKPScke3dsfS1CZXhwb3J0JwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFU SCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHNf R0NKPSckQ0MgLXNoYXJlZCAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9 L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlh cmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0 X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNl Ci0rCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5z dGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0v fSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICB1dHM0KikKLSsgICAgICBhcmNoaXZlX2NtZHNfR0NK PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9Jy1MJGxpYmRpcicKLSsg ICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICop Ci0rICAgICAgbGRfc2hsaWJzX0dDSj1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0r Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19HQ0oiID4m NQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0dDSiIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlic19H Q0oiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8g ZXhwbGljaXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNf R0NKIiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIGFy Y2hpdmVfY21kc19uZWVkX2xjX0dDSj15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2Nt ZHNfR0NKIGluCi0rICAgIConficqKQotKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRl YWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KLSsgICAgICA7OwotKyAgICAnJENDICcq KQotKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdp dGggLWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21l IGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBk b24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGlu IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGlj aXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KLSsgICAgICAkcm0gY29uZnRlc3QqCi0rICAgICAg ZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0r Ci0rICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwi IikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIHNvbmFtZT1jb25m dGVzdAotKyAgICAgICAgbGliPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRh Y19vYmpleHQKLSsgICAgICAgIGRlcGxpYnM9Ci0rICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxl cl93bF9HQ0oKLSsJcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSgotKyAgICAgICAg Y29tcGlsZXJfZmxhZ3M9LXYKLSsgICAgICAgIGxpbmtlcl9mbGFncz0tdgotKyAgICAgICAgdmVy c3RyaW5nPQotKyAgICAgICAgb3V0cHV0X29iamRpcj0uCi0rICAgICAgICBsaWJuYW1lPWNvbmZ0 ZXN0Ci0rICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmlu ZWRfZmxhZ19HQ0oKLSsgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0KLSsgICAgICAg IGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kc19HQ0ogMlw+ XCYxIFx8IGdyZXAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1Ci0rICAoZXZh bCAkYXJjaGl2ZV9jbWRzX0dDSiAyXD5cJjEgXHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwg Mlw+XCYxKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAg ICAgdGhlbgotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0dDSj1ubwotKyAgICAgICAgZWxzZQot KwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0dDSj15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBh bGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsg ICAgICBlbHNlCi0rICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAg ICAgICRybSBjb25mdGVzdCoKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVf Y21kc19uZWVkX2xjX0dDSiIgPiY2OyB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsg IDs7Ci0rZXNhYwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5h bWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGR5 bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsgfQotK2xpYnJhcnlfbmFtZXNf c3BlYz0KLStsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJwotK3NvbmFtZV9zcGVjPQotK3NocmV4dF9j bWRzPSIuc28iCi0rcG9zdGluc3RhbGxfY21kcz0KLStwb3N0dW5pbnN0YWxsX2NtZHM9Ci0rZmlu aXNoX2NtZHM9Ci0rZmluaXNoX2V2YWw9Ci0rc2hsaWJwYXRoX3Zhcj0KLStzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9dW5rbm93bgotK3ZlcnNpb25fdHlwZT1ub25lCi0rZHluYW1pY19saW5r ZXI9IiRob3N0X29zIGxkLnNvIgotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91 c3IvbGliIgotKwotK25lZWRfbGliX3ByZWZpeD11bmtub3duCi0raGFyZGNvZGVfaW50b19saWJz PW5vCi0rCi0rIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQg ZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCi0rIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQg YXJndW1lbnRzCi0rbmVlZF92ZXJzaW9uPXVua25vd24KLSsKLStjYXNlICRob3N0X29zIGluCi0r YWl4MyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJwotKyAg c2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rCi0rICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1 cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCi0rICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgOzsK LSsKLSthaXhbNC05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKyAgICAjIEFJWCA1IHN1cHBvcnRzIElB NjQKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBlbHNlCi0rICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBj cmVhdGUgYW4gaW1wb3J0IGZpbGUKLSsgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBU aGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAotKyAgICAjIHRoZSBsaW5lIGAjISAuJy4g IFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCi0rICAgICMgZGVwZW5k IG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCi0r ICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCi0rICAgIGNh c2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCi0r ICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9f R05VQ19NSU5PUl9fID49IDk3KScKLSsJICAgZWNobyAnIHllcyAnCi0rCSAgIGVjaG8gJyNlbmRp Zic7IH0gfCAke0NDfSAtRSAtIHwgZ3JlcCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAg ICAgIGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsg ICAgZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0 LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1l IGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQg dG8KLSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGlu IGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCi0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxh dGVyKSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRv IGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlY IHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAg ICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJv dWdoIEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4g dGltZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElC UEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9p eGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgIGZpbmlzaF9ldmFsPSdmb3IgbGli IGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVj aG8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDEl J1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAi Y2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9z eXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBk b25lJwotKyAgOzsKLSsKLStiZW9zKikKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0nCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rICBz aGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAotKyAgOzsKLSsKLStic2RpWzQ1XSopCi0rICB2ZXJz aW9uX3R5cGU9bGludXgKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3Iv bG9jYWwvbGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xp YiAvdXNyL2xvY2FsL2xpYiIKLSsgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRh aW5zIC91c3IvY29udHJpYi9saWIgYW5kCi0rICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBp cyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKLSsgICMgbGlidG9vbCB0 byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcwotKyAgOzsKLSsKLStjeWd3aW4qIHwgbWlu Z3cqIHwgcHczMiopCi0rICB2ZXJzaW9uX3R5cGU9d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5k bGwiCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2Fz ZSAkR0NDLCRob3N0X29zIGluCi0rICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHcz MiopCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCi0rICAgICMgRExM IGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKLSsg ICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+Ci0rICAg ICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wn J2k7ZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwk ZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsg ICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAg Y2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRs bD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAg ICBkbHBhdGg9JGRpci9cJGRsZGxsfgotKyAgICAgICAkcm0gXCRkbHBhdGgnCi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICBjeWd3aW4qKQotKyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIg dGhhbiAnbGliJwotKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1l ICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2 ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAgICAgOzsKLSsg ICAgbWluZ3cqKQotKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJl Zml4Ci0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNF RCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJy YXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsgICAg ICBpZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTov JyA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5k b3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKLSsgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2Ug YXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKLSsgICAgICAgICMg cGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhh bmRsZSB0aGUKLSsgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRl cnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKLSsgICAgICAgICMgZXNwZWNpYWxseSBhcyB3 ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKLSsgICAg ICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4K LSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgICAgICBlbHNlCi0rICAgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMi IHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7 OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVy IHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0g fCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8t L2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAg ICA7OwotKwotKyAgKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8g JHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0 fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2lu MzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUg ZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsg IDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9v cyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9 JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKLSsgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNo cmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHls aWJgJwotKwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9s aWIgL3Vzci9saWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0Jwot KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikK LSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikK LSsgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1l bnQgYSBuZXcKLSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYg dGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jp bi9vYmpmb3JtYXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJz ZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVsZiA7OwotKyAg ICBlc2FjCi0rICBmaQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAotKyAgY2Fz ZSAkdmVyc2lvbl90eXBlIGluCi0rICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg ICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7 OwotKyAgICBmcmVlYnNkLSopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXgnCi0rICAgICAgbmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0rICBlc2FjCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ZnJlZWJzZDIqKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIDs7 Ci0rICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQotKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAg OzsKLSsgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKLSsgIGZyZWVi c2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxm NC4xLjEpCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29u Rmx5Ci0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFyZGNvZGVf aW50b19saWJzPXllcwotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUqKQotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1u bwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7 bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI Ci0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhwdXgxMCog fCBocHV4MTEqKQotKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9y IHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWluc3Qgb3Ro ZXIgdmVyc2lvbnMuCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0r ICAgIHNocmV4dF9jbWRzPScuc28nCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAg ZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVz cyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgaWYg dGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9s b2NhbC9saWIiCi0rICAgIGVsc2UKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsK LSsgICBocHBhKjY0KikKLSsgICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAg ICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBT SExJQl9QQVRICi0rICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNz ICtub2VudnZhciBpcyBzcGVjaWZpZWQuCi0rICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3Bh MjBfNjQiCi0rICAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjCi0rICAgICA7OwotKyAgICopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hM SUJfUEFUSAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1 aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsK LSsgIGVzYWMKLSsgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBs aWJyYXJpZXMgYXJlIG1vZGUgNTU1LgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRs aWInCi0rICA7OwotKwotK2ludGVyaXhbMy05XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKLSsgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYp JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStpcml4 NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBub25z dG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRlc3QgIiRs dF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51eAotKwll bHNlCi0rCQl2ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBpcml4NSog fCBub25zdG9wdXgqKQotKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQot KyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRj aGVzIHRvIExECi0rICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlw ICIpCi0rICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgICAq LW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQotKyAgICAg IGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0fCoiLTY0 ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0IHNobGli c3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxp Ym1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7 bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgotKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZm fSIKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFyZWQgbGli IHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8 IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsK LSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdudSkKLSsg IHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Ni aW4iIGxkY29uZmlnIC1uICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAjIFRoaXMgaW1wbGllcyBu byBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsg d2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhp cyBjYW4gYmUgZW5hYmxlZC4KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3Iv bG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25m IGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNv bmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3By aW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsg aWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRT RUQgLWUgJ3MvIy4qLy87L15bIAldKmh3Y2FwWyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8v O3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIK LSsgIGZpCi0rCi0rICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNh YmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9u bHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMg bGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAg IyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2Ug ZGF5cyBhbmQKLSsgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRl c3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWlj IGxpbmtlciBpcyBpbiB1c2UuCi0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwot KyAgOzsKLSsKLStuZXRic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRI Oi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNE IChhLm91dCkgbGQuc28nCi0rICBlbHNlCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGR5 bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJwotKyAgZmkKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK25ld3NvczYpCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rbnRvLXFu eCopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLStv cGVuYnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIg dmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxp YnMuCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiop IG5lZWRfdmVyc2lvbj15ZXMgOzsKLSsgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgbmVl ZF92ZXJzaW9uPW5vICA7OwotKyAgZXNhYwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29u ZmlnIC1tICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYg dGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVz dCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4q KQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxz ZQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsK LStvczIqKQotKyAgbGlibmFtZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtz aGFyZWRfZXh0fSAkbGlibmFtZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwot KyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsgIHZlcnNpb25fdHlwZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92 ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xp YiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIK LSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IgotKyAgOzsKLSsKLStyZG9zKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3Nv bGFyaXMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFy ZSBleGVjdXRhYmxlCi0rICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsK LSsKLStzdW5vczQqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDov dXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsg IG5lZWRfdmVyc2lvbj15ZXMKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNp b25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg ICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKLSsgICAg ICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAg ICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAg bmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj PScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsK LSsKLStzeXN2NCpNUCopCi0rICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNp b25fdHlwZT1saW51eAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRf ZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpv cicKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwot K3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBz eXN2NCp1dzIqKQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3 aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScv dXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0r ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgZWxzZQotKyAgICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgc2Nv My4ydjUqKQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIC9saWIiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNh YwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIg PiY1Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNf bGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLStpZiB0ZXN0ICIke2x0X2N2 X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLStzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0raWYgdGVzdCAiJHts dF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIK LSsKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVu cGF0aF92YXIiCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklY IENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgotK2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJv Z3JhbXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5 IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KLStoYXJkY29kZV9hY3Rpb25fR0NKPQot K2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSiIgfHwgXAotKyAgIHRl c3QgLW4gIiRydW5wYXRoX3Zhcl9HQ0oiIHx8IFwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9t YXRpY19HQ0oiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4 aXN0YW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9HQ0oiICE9 IG5vICYmCi0rICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5n IGlzIHNobGlicGF0aF92YXIsIHdlCi0rICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ug d2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ug c2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAj IyB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBHQ0opIiAhPSBu byAmJgotKyAgICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0xfR0NKIiAhPSBubzsgdGhlbgotKyAg ICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0 b3J5LgotKyAgICBoYXJkY29kZV9hY3Rpb25fR0NKPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdl IGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlz dGluZyBkaXJzLgotKyAgICBoYXJkY29kZV9hY3Rpb25fR0NKPWltbWVkaWF0ZQotKyAgZmkKLStl bHNlCi0rICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25s eSBoYXJkY29kZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlv bl9HQ0o9dW5zdXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRoYXJkY29kZV9hY3Rpb25fR0NKIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlv bl9HQ0oiID4mNjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fR0NKIiA9IHJlbGlu azsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBlbmFi bGVfZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoIiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KLSsg ICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3RfaW5z dGFsbD1uZWVkbGVzcwotK2ZpCi0rCi0rCi0rIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkg ZmlyZSB3aGVuIGJvb3RzdHJhcHBpbmcgdGhlCi0rIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3Ro ZXJ3aXNlIHlvdSBmb3Jnb3QgdG8gc2hpcCBsdG1haW4uc2gKLSsjIHdpdGggeW91ciBwYWNrYWdl LCBhbmQgeW91IHdpbGwgZ2V0IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUKLSsjIG5vIHJ1bGVz IHRvIGdlbmVyYXRlIGx0bWFpbi5zaC4KLStpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgotKyAg IyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNo IGFsbG93IG91ciBjb21tYW5kcyB0aHJvdWdoCi0rICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVz Y2FwZXMuCi0rICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgICBz ZXRvcHQgTk9fR0xPQl9TVUJTVAotKyAgZmkKLSsgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdz IHRoYXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKLSsgICMgY2FyZWZ1 bCBub3QgdG8gb3ZlcnF1b3RlIHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVz IG9mIHRoZQotKyAgIyB2YXJpYWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRp b24gb2YgdGhlIGxpYnRvb2wgc2NyaXB0LgotKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRf Q0ZMQUdTIEFSIEFSX0ZMQUdTIEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAot KyAgICBTRUQgU0hFTEwgU1RSSVAgXAotKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19z cGVjIHNvbmFtZV9zcGVjIGV4dHJhY3RfZXhwc3ltc19jbWRzIFwKLSsgICAgb2xkX3N0cmlwbGli IHN0cmlwbGliIGZpbGVfbWFnaWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKLSsgICAg ZGVwbGlic19jaGVja19tZXRob2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBc Ci0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY2RlY2wgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRk cmVzcyBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYyBcCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2Nt ZHMgXAotKyAgICBjb21waWxlcl9HQ0ogXAotKyAgICBDQ19HQ0ogXAotKyAgICBMRF9HQ0ogXAot KyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSiBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0dDSiBcCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSiBcCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSiBcCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19HQ0ogXAotKyAgICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNfR0NKIFwKLSsgICAgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWNfR0NKIFwKLSsgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lc19HQ0ogXAotKyAgICBvbGRfYXJjaGl2ZV9jbWRzX0dDSiBcCi0rICAgIG9sZF9hcmNo aXZlX2Zyb21fbmV3X2NtZHNfR0NKIFwKLSsgICAgcHJlZGVwX29iamVjdHNfR0NKIFwKLSsgICAg cG9zdGRlcF9vYmplY3RzX0dDSiBcCi0rICAgIHByZWRlcHNfR0NKIFwKLSsgICAgcG9zdGRlcHNf R0NKIFwKLSsgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0dDSiBcCi0rICAgIGNvbXBpbGVy X2xpYl9zZWFyY2hfZGlyc19HQ0ogXAotKyAgICBhcmNoaXZlX2NtZHNfR0NKIFwKLSsgICAgYXJj aGl2ZV9leHBzeW1fY21kc19HQ0ogXAotKyAgICBwb3N0aW5zdGFsbF9jbWRzX0dDSiBcCi0rICAg IHBvc3R1bmluc3RhbGxfY21kc19HQ0ogXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNf Y21kc19HQ0ogXAotKyAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0ogXAotKyAgICBub191bmRl ZmluZWRfZmxhZ19HQ0ogXAotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0dDSiBcCi0rICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKIFwKLSsgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZF9HQ0ogXAotKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSiBcCi0rICAg IGhhcmRjb2RlX2F1dG9tYXRpY19HQ0ogXAotKyAgICBtb2R1bGVfY21kc19HQ0ogXAotKyAgICBt b2R1bGVfZXhwc3ltX2NtZHNfR0NKIFwKLSsgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NK IFwKLSsgICAgZml4X3NyY2ZpbGVfcGF0aF9HQ0ogXAotKyAgICBleGNsdWRlX2V4cHN5bXNfR0NK IFwKLSsgICAgaW5jbHVkZV9leHBzeW1zX0dDSjsgZG8KLSsKLSsgICAgY2FzZSAkdmFyIGluCi0r ICAgIG9sZF9hcmNoaXZlX2NtZHNfR0NKIHwgXAotKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19j bWRzX0dDSiB8IFwKLSsgICAgYXJjaGl2ZV9jbWRzX0dDSiB8IFwKLSsgICAgYXJjaGl2ZV9leHBz eW1fY21kc19HQ0ogfCBcCi0rICAgIG1vZHVsZV9jbWRzX0dDSiB8IFwKLSsgICAgbW9kdWxlX2V4 cHN5bV9jbWRzX0dDSiB8IFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfR0NK IHwgXAotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0dDSiB8IFwKLSsgICAgZXh0cmFjdF9leHBz eW1zX2NtZHMgfCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRzIHwgXAotKyAgICBwb3N0aW5zdGFs bF9jbWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBvbGRfcG9zdGluc3RhbGxfY21k cyB8IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgfCBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyB8IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQotKyAgICAgICMgRG91YmxlLXF1b3Rl IGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KLSsgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNo byBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJc JHNlZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgot KyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJY XCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgIGNhc2UgJGx0X2VjaG8gaW4KLSsgIConXCQw IC0tZmFsbGJhY2stZWNobyInKQotKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRY c2VkIC1lICdzL1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8i LydgCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rY2ZnZmlsZT0iJG9maWxlIgotKwotKyAgY2F0IDw8 X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAk dGFnbmFtZQotKwotKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUg fHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKLSsKLSsjIFNoZWxsIHRvIHVzZSB3 aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCi0rU0hFTEw9JGx0X1NIRUxMCi0rCi0rIyBXaGV0 aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbGli cz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxp YnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRpYwotKwotKyMgV2hldGhlciBv ciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9s aWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0dDSgotKwotKyMgV2hldGhlciBv ciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRp YwotK2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJl ZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0oKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGlt aXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4KLStmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2lu c3RhbGwKLSsKLSsjIFRoZSBob3N0IHN5c3RlbS4KLStob3N0X2FsaWFzPSRob3N0X2FsaWFzCi0r aG9zdD0kaG9zdAotK2hvc3Rfb3M9JGhvc3Rfb3MKLSsKLSsjIFRoZSBidWlsZCBzeXN0ZW0uCi0r YnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCi0rYnVpbGQ9JGJ1aWxkCi0rYnVpbGRfb3M9JGJ1aWxk X29zCi0rCi0rIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3Ns YXNoZXMuCi0rZWNobz0kbHRfZWNobwotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgot K0FSX0ZMQUdTPSRsdF9BUl9GTEFHUwotKwotKyMgQSBDIGNvbXBpbGVyLgotK0xUQ0M9JGx0X0xU Q0MKLSsKLSsjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCi0r Ci0rIyBBIGxhbmd1YWdlLXNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcl9HQ0oK LSsKLSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdD Q19HQ0oKLSsKLSsjIEFuIEVSRSBtYXRjaGVyLgotK0VHUkVQPSRsdF9FR1JFUAotKwotKyMgVGhl IGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllcy4KLStMRD0kbHRfTERfR0NKCi0rCi0rIyBX aGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsj IEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KLStOTT0kbHRfTk0KLSsKLSsjIEEgc3ltYm9s IHN0cmlwcGluZyBwcm9ncmFtCi0rU1RSSVA9JGx0X1NUUklQCi0rCi0rIyBVc2VkIHRvIGV4YW1p bmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgotK01BR0lDX0NN RD0kTUFHSUNfQ01ECi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0u Ci0rRExMVE9PTD0iJERMTFRPT0wiCi0rCi0rIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBl ci4KLStPQkpEVU1QPSIkT0JKRFVNUCIKLSsKLSsjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIu Ci0rQVM9IiRBUyIKLSsKLSsjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlu cyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KLStvYmpkaXI9JG9iamRpcgotKwotKyMgSG93IHRv IGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2Fk X2ZsYWcKLStyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKLSsKLSsjIEhvdyB0byBwYXNzIGEg bGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCi0rd2w9JGx0X2x0X3Byb2dfY29tcGls ZXJfd2xfR0NKCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCi0rb2Jq ZXh0PSIkYWNfb2JqZXh0IgotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIp LgotK2xpYmV4dD0iJGxpYmV4dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFs bHkgIi5zbyIpLgotK3NocmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0rIyBFeGVjdXRhYmxl IGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0IgotKwotKyMgQWRk aXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgotK3Bp Y19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0oKLStwaWNfbW9kZT0kcGljX21vZGUK LSsKLSsjIFdoYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KLSttYXhfY21k X2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0oKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRv aW5nIGNvbXBpbGF0aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIERvIHdl IG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVk X2xpYl9wcmVmaXgKLSsKLSsjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0r bmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBv cnRlZC4KLStkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgotKwotKyMgV2hldGhlciBkbG9w ZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVu X3NlbGYKLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1z IGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9z dGF0aWMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCi0r bGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKCi0rCi0rIyBD b21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25vX2J1aWx0aW5f ZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfR0NKCi0rCi0rIyBDb21w aWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgotK2V4cG9ydF9keW5hbWljX2Zs YWdfc3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSgotKwotKyMgQ29tcGlsZXIg ZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgot K3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0oK LSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KLSt0 aHJlYWRfc2FmZV9mbGFnX3NwZWM9JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19HQ0oKLSsKLSsj IExpYnJhcnkgdmVyc2lvbmluZyB0eXBlLgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0r Ci0rIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KLStsaWJuYW1lX3NwZWM9JGx0X2xp Ym5hbWVfc3BlYwotKwotKyMgTGlzdCBvZiBhcmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0 aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KLSsjIFRoZSBsYXN0IG5hbWUgaXMgdGhl IG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUUuCi0rbGlicmFyeV9uYW1lc19z cGVjPSRsdF9saWJyYXJ5X25hbWVzX3NwZWMKLSsKLSsjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBs aWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lLgotK3NvbmFtZV9zcGVjPSRs dF9zb25hbWVfc3BlYwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBh biBvbGQtc3R5bGUgYXJjaGl2ZS4KLStSQU5MSUI9JGx0X1JBTkxJQgotK29sZF9hcmNoaXZlX2Nt ZHM9JGx0X29sZF9hcmNoaXZlX2NtZHNfR0NKCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29s ZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1 bmluc3RhbGxfY21kcwotKwotKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBz aGFyZWQgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzX0dDSgotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBh cmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZl X2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19HQ0oK LSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYSBzaGFyZWQgYXJjaGl2 ZS4KLSthcmNoaXZlX2NtZHM9JGx0X2FyY2hpdmVfY21kc19HQ0oKLSthcmNoaXZlX2V4cHN5bV9j bWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX0dDSgotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bv c3RpbnN0YWxsX2NtZHMKLStwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21k cwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1l ZCBzYW1lIGFzIGFib3ZlIGlmIGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19H Q0oKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kc19HQ0oKLSsKLSsj IENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KLStvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJp cGxpYgotK3N0cmlwbGliPSRsdF9zdHJpcGxpYgotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNl IGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBs aWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19HQ0oKLSsKLSsjIERl cGVuZGVuY2llcyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3Jl YXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9v YmplY3RzX0dDSgotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0 cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3ByZWRlcHM9 JGx0X3ByZWRlcHNfR0NKCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9i amVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGlicmFyeS4KLStwb3N0 ZGVwcz0kbHRfcG9zdGRlcHNfR0NKCi0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkg dGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfR0NKCi0rCi0r IyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVy IHdoZW4gbGlua2luZwotKyMgYSBzaGFyZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNo X3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9HQ0oKLSsKLSsjIE1ldGhvZCB0byBj aGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgotK2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAotKwotKyMgQ29tbWFu ZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgotK2ZpbGVf bWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFy ZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3df dW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX0dDSgotKwotKyMgRmxhZyB0 aGF0IGZvcmNlcyBubyB1bmRlZmluZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRf bm9fdW5kZWZpbmVkX2ZsYWdfR0NKCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxp YnRvb2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCi0rZmluaXNoX2NtZHM9 JGx0X2ZpbmlzaF9jbWRzCi0rCi0rIyBTYW1lIGFzIGFib3ZlLCBidXQgYSBzaW5nbGUgc2NyaXB0 IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQgbm90IHNob3duLgotK2ZpbmlzaF9ldmFsPSRsdF9m aW5pc2hfZXZhbAotKwotKyMgVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlz dGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0 X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0 IG9mIG5tIGluIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24KLStnbG9iYWxfc3ltYm9sX3RvX2NkZWNs PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbAotKwotKyMgVHJhbnNmb3JtIHRo ZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyCi0rZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2Fk ZHJlc3MKLSsKLSsjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJp YWJsZS4KLStydW5wYXRoX3Zhcj0kcnVucGF0aF92YXIKLSsKLSsjIFRoaXMgaXMgdGhlIHNoYXJl ZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUuCi0rc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3Zhcgot KwotKyMgSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5 IHNlYXJjaCBwYXRoPwotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBw YXRoIGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlv bl9HQ0oKLSsKLSsjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50 byBsaWJyYXJpZXMuCi0raGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKLSsK LSsjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2lu Zy4KLSsjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCi0r aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19H Q0oKLSsKLSsjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwk bGliZGlyIGludG8KLSsjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBl dmVuIGlmIFwkbGliZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0dDSgotKwotKyMgV2hl dGhlciB3ZSBuZWVkIGEgc2luZ2xlIC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1l bnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcl9HQ0oKLSsKLSsjIFNldCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9l eHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBi aW5hcnkuCi0raGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfR0NKCi0rCi0rIyBTZXQg dG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBE SVIgaW50byB0aGUKLSsjIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFy ZGNvZGVfbWludXNfTF9HQ0oKLSsKLSsjIFNldCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZB Uj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvCi0rIyB0aGUgcmVzdWx0aW5n IGJpbmFyeS4KLStoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0dDSgotKwotKyMgU2V0IHRvIHllcyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9t YXRpY2FsbHkgaGFyZGNvZGVzIERJUiBpbnRvIHRoZSBsaWJyYXJ5Ci0rIyBhbmQgYWxsIHN1YnNl cXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KLStoYXJk Y29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19HQ0oKLSsKLSsjIFZhcmlhYmxlcyB3 aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFu ZAotKyMgcmVzdG9yZWQgYXQgcmVsaW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxp bms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBt dXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4K LStsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzX0dDSgotKwotKyMgQ29tcGlsZS10 aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCi0rc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSRsdF9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsKLSsjIFJ1bi10aW1lIHN5c3Rl bSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 JGx0X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjCi0rCi0rIyBGaXggdGhlIHNoZWxsIHZhcmlh YmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2Zp eF9zcmNmaWxlX3BhdGgKLSsKLSsjIFNldCB0byB5ZXMgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUg cmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNf R0NKCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgotK2V4cG9y dF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfR0NKCi0rCi0rIyBUaGUgY29t bWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBh cmNoaXZlLgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwot KwotKyMgU3ltYm9scyB0aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQg c3ltYm9scy4KLStleGNsdWRlX2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19HQ0oKLSsKLSsj IFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZC4KLStpbmNsdWRlX2V4cHN5bXM9 JGx0X2luY2x1ZGVfZXhwc3ltc19HQ0oKLSsKLSsjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklH OiAkdGFnbmFtZQotKwotK19fRU9GX18KLSsKLSsKLStlbHNlCi0rICAjIElmIHRoZXJlIGlzIG5v IE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVsZSB0byBleGVjdXRlCi0rICAjIGBj b25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0 aGUKLSsgICMgbGlidG9vbCBzY3JpcHQgdGhlbi4KLSsgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWlu IHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAotKyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRo ZW4KLSsgICAgdGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIkbHRtYWluIgotKyAgZmkKLStmaQot KwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGls ZXJfZ251Ci0rCi0rQ0M9IiRsdF9zYXZlX0NDIgotKwotKwllbHNlCi0rCSAgdGFnbmFtZT0iIgot KwlmaQotKwk7OwotKwotKyAgICAgIFJDKQotKwotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9u IGZvciBSQyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PXJjCi0rCi0rIyBPYmplY3QgZmlsZSBleHRl bnNpb24gZm9yIGNvbXBpbGVkIFJDIHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK29iamV4dF9S Qz0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMK LStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9J3NhbXBsZSBNRU5VIHsgTUVOVUlURU0gIiZT b3VwIiwgMTAwLCBDSEVDS0VEIH0nCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxp bmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiCi0rCi0rIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3Vy YXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKwotKyMgSWYgbm8gQyBjb21waWxlciB3 YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBD IGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7 TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2Jv aWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19v YmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFj X2V4dAotK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsg L14gKisvZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNv bmZ0ZXN0LmVycmAKLSskcm0gY29uZnRlc3QqCi0rCi0rYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNf b2JqZXh0Ci0rZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19l eHQKLStldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICor L2QnID5jb25mdGVzdC5lcnIKLStfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3Qu ZXJyYAotKyRybSAtciBjb25mdGVzdCoKLSsKLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2x0X3NhdmVfQ0M9IiRDQyIKLStDQz0ke1JDLSJ3aW5k cmVzIn0KLStjb21waWxlcj0kQ0MKLStjb21waWxlcl9SQz0kQ0MKLStmb3IgY2NfdGVtcCBpbiAk Y29tcGlsZXIiIjsgZG8KLSsgIGNhc2UgJGNjX3RlbXAgaW4KLSsgICAgY29tcGlsZSB8ICpbXFwv XWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OwotKyAgICBkaXN0Y2MgfCAqW1xc L11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAg ICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3Rl bXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCi0rCi0rbHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fUkM9eWVzCi0rCi0rIyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxk IG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJhcHBpbmcgdGhlCi0rIyBsaWJ0b29sIGRpc3RyaWJ1dGlv biwgb3RoZXJ3aXNlIHlvdSBmb3Jnb3QgdG8gc2hpcCBsdG1haW4uc2gKLSsjIHdpdGggeW91ciBw YWNrYWdlLCBhbmQgeW91IHdpbGwgZ2V0IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUKLSsjIG5v IHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFpbi5zaC4KLStpZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhl bgotKyAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25z IHdoaWNoIGFsbG93IG91ciBjb21tYW5kcyB0aHJvdWdoCi0rICAjIHdpdGhvdXQgcmVtb3ZhbCBv ZiBcIGVzY2FwZXMuCi0rICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgot KyAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotKyAgZmkKLSsgICMgTm93IHF1b3RlIGFsbCB0aGUg dGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcKLSsgICMg Y2FyZWZ1bCBub3QgdG8gb3ZlcnF1b3RlIHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdlIHRha2Ug Y29waWVzIG9mIHRoZQotKyAgIyB2YXJpYWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdl bmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2NyaXB0LgotKyAgZm9yIHZhciBpbiBlY2hvIG9sZF9D QyBvbGRfQ0ZMQUdTIEFSIEFSX0ZMQUdTIEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRDRkxBR1Mg Tk0gXAotKyAgICBTRUQgU0hFTEwgU1RSSVAgXAotKyAgICBsaWJuYW1lX3NwZWMgbGlicmFyeV9u YW1lc19zcGVjIHNvbmFtZV9zcGVjIGV4dHJhY3RfZXhwc3ltc19jbWRzIFwKLSsgICAgb2xkX3N0 cmlwbGliIHN0cmlwbGliIGZpbGVfbWFnaWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwK LSsgICAgZGVwbGlic19jaGVja19tZXRob2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9s b2NrcyBcCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY2RlY2wgXAotKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25h bWVfYWRkcmVzcyBcCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYyBcCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0 YWxsX2NtZHMgXAotKyAgICBjb21waWxlcl9SQyBcCi0rICAgIENDX1JDIFwKLSsgICAgTERfUkMg XAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX1JDIFwKLSsgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfUkMgXAotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19SQyBcCi0rICAgIGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX1JDIFwKLSsgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX1JDIFwKLSsgICAgdGhyZWFkX3NhZmVfZmxhZ19zcGVjX1JDIFwKLSsgICAgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWNfUkMgXAotKyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzX1JDIFwKLSsgICAgb2xkX2FyY2hpdmVfY21kc19SQyBcCi0rICAgIG9sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHNfUkMgXAotKyAgICBwcmVkZXBfb2JqZWN0c19SQyBcCi0rICAgIHBvc3RkZXBf b2JqZWN0c19SQyBcCi0rICAgIHByZWRlcHNfUkMgXAotKyAgICBwb3N0ZGVwc19SQyBcCi0rICAg IGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9SQyBcCi0rICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlyc19SQyBcCi0rICAgIGFyY2hpdmVfY21kc19SQyBcCi0rICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfUkMgXAotKyAgICBwb3N0aW5zdGFsbF9jbWRzX1JDIFwKLSsgICAgcG9zdHVuaW5zdGFsbF9j bWRzX1JDIFwKLSsgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfUkMgXAotKyAgICBh bGxvd191bmRlZmluZWRfZmxhZ19SQyBcCi0rICAgIG5vX3VuZGVmaW5lZF9mbGFnX1JDIFwKLSsg ICAgZXhwb3J0X3N5bWJvbHNfY21kc19SQyBcCi0rICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfUkMgXAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX1JDIFwKLSsgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9SQyBcCi0rICAgIGhhcmRjb2RlX2F1dG9tYXRpY19SQyBc Ci0rICAgIG1vZHVsZV9jbWRzX1JDIFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX1JDIFwKLSsg ICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fUkMgXAotKyAgICBmaXhfc3JjZmlsZV9wYXRoX1JD IFwKLSsgICAgZXhjbHVkZV9leHBzeW1zX1JDIFwKLSsgICAgaW5jbHVkZV9leHBzeW1zX1JDOyBk bwotKwotKyAgICBjYXNlICR2YXIgaW4KLSsgICAgb2xkX2FyY2hpdmVfY21kc19SQyB8IFwKLSsg ICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19SQyB8IFwKLSsgICAgYXJjaGl2ZV9jbWRzX1JD IHwgXAotKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX1JDIHwgXAotKyAgICBtb2R1bGVfY21kc19S QyB8IFwKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX1JDIHwgXAotKyAgICBvbGRfYXJjaGl2ZV9m cm9tX2V4cHN5bXNfY21kc19SQyB8IFwKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19SQyB8IFwK LSsgICAgZXh0cmFjdF9leHBzeW1zX2NtZHMgfCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRzIHwg XAotKyAgICBwb3N0aW5zdGFsbF9jbWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAotKyAgICBv bGRfcG9zdGluc3RhbGxfY21kcyB8IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgfCBcCi0rICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyB8IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQotKyAg ICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KLSsgICAgICBldmFsICJs dF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91YmxlX3F1 b3RlX3N1YnN0XCIgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJpYWJs ZV9zdWJzdFwiXGBcXFwiIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfJHZh cj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9zdWJz dFwiXGBcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgIGNhc2UgJGx0 X2VjaG8gaW4KLSsgIConXCQwIC0tZmFsbGJhY2stZWNobyInKQotKyAgICBsdF9lY2hvPWAkZWNo byAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJC8k MCAtLWZhbGxiYWNrLWVjaG8iLydgCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rY2ZnZmlsZT0iJG9m aWxlIgotKwotKyAgY2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCi0rIyAjIyMgQkVHSU4gTElC VE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQotKwotKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBv biBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKLSsK LSsjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMuCi0rU0hFTEw9JGx0 X1NIRUxMCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLgot K2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAotKwotKyMgV2hldGhlciBvciBub3Qg dG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KLStidWlsZF9vbGRfbGlicz0kZW5hYmxlX3N0YXRp YwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxp YnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX1JD Ci0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRp bWUgbGlicyBhcmUgc3RhdGljCi0rYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRp bWVzPSRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX1JDCi0rCi0rIyBXaGV0aGVy IG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxs PSRlbmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBUaGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9hbGlh cz0kaG9zdF9hbGlhcwotK2hvc3Q9JGhvc3QKLStob3N0X29zPSRob3N0X29zCi0rCi0rIyBUaGUg YnVpbGQgc3lzdGVtLgotK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcwotK2J1aWxkPSRidWlsZAot K2J1aWxkX29zPSRidWlsZF9vcwotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3Qg aW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotK2VjaG89JGx0X2VjaG8KLSsKLSsjIFRoZSBhcmNoaXZl ci4KLStBUj0kbHRfQVIKLStBUl9GTEFHUz0kbHRfQVJfRkxBR1MKLSsKLSsjIEEgQyBjb21waWxl ci4KLStMVENDPSRsdF9MVENDCi0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xUQ0ZMQUdT PSRsdF9MVENGTEFHUwotKwotKyMgQSBsYW5ndWFnZS1zcGVjaWZpYyBjb21waWxlci4KLStDQz0k bHRfY29tcGlsZXJfUkMKLSsKLSsjIElzIHRoZSBjb21waWxlciB0aGUgR05VIEMgY29tcGlsZXI/ Ci0rd2l0aF9nY2M9JEdDQ19SQwotKwotKyMgQW4gRVJFIG1hdGNoZXIuCi0rRUdSRVA9JGx0X0VH UkVQCi0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgotK0xEPSRsdF9M RF9SQwotKwotKyMgV2hldGhlciB3ZSBuZWVkIGhhcmQgb3Igc29mdCBsaW5rcy4KLStMTl9TPSRs dF9MTl9TCi0rCi0rIyBBIEJTRC1jb21wYXRpYmxlIG5tIHByb2dyYW0uCi0rTk09JGx0X05NCi0r Ci0rIyBBIHN5bWJvbCBzdHJpcHBpbmcgcHJvZ3JhbQotK1NUUklQPSRsdF9TVFJJUAotKwotKyMg VXNlZCB0byBleGFtaW5lIGxpYnJhcmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyAiZmls ZSIKLStNQUdJQ19DTUQ9JE1BR0lDX0NNRAotKwotKyMgVXNlZCBvbiBjeWd3aW46IERMTCBjcmVh dGlvbiBwcm9ncmFtLgotK0RMTFRPT0w9IiRETExUT09MIgotKwotKyMgVXNlZCBvbiBjeWd3aW46 IG9iamVjdCBkdW1wZXIuCi0rT0JKRFVNUD0iJE9CSkRVTVAiCi0rCi0rIyBVc2VkIG9uIGN5Z3dp bjogYXNzZW1ibGVyLgotK0FTPSIkQVMiCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5 IHRoYXQgY29udGFpbnMgdGVtcG9yYXJ5IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpkaXIK LSsKLSsjIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCi0rcmVsb2FkX2Zs YWc9JGx0X3JlbG9hZF9mbGFnCi0rcmVsb2FkX2NtZHM9JGx0X3JlbG9hZF9jbWRzCi0rCi0rIyBI b3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9s dF9wcm9nX2NvbXBpbGVyX3dsX1JDCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXggKG5vcm1hbGx5 ICJvIikuCi0rb2JqZXh0PSIkYWNfb2JqZXh0IgotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChu b3JtYWxseSAiYSIpLgotK2xpYmV4dD0iJGxpYmV4dCIKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHN1 ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgotK3NocmV4dF9jbWRzPSckc2hyZXh0X2NtZHMnCi0rCi0r IyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIikuCi0rZXhlZXh0PSIkZXhlZXh0 IgotKwotKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBv YmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19SQwotK3BpY19tb2Rl PSRwaWNfbW9kZQotKwotKyMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5k PwotK21heF9jbWRfbGVuPSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KLSsKLSsjIERvZXMgY29tcGls ZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KLStjb21waWxlcl9j X289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX1JDCi0rCi0rIyBNdXN0IHdlIGxvY2sgZmls ZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KLStuZWVkX2xvY2tzPSRsdF9uZWVkX2xvY2tzCi0r Ci0rIyBEbyB3ZSBuZWVkIHRoZSBsaWIgcHJlZml4IGZvciBtb2R1bGVzPwotK25lZWRfbGliX3By ZWZpeD0kbmVlZF9saWJfcHJlZml4Ci0rCi0rIyBEbyB3ZSBuZWVkIGEgdmVyc2lvbiBmb3IgbGli cmFyaWVzPwotK25lZWRfdmVyc2lvbj0kbmVlZF92ZXJzaW9uCi0rCi0rIyBXaGV0aGVyIGRsb3Bl biBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3N1cHBvcnQ9JGVuYWJsZV9kbG9wZW4KLSsKLSsjIFdo ZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KLStkbG9wZW5fc2VsZj0kZW5h YmxlX2Rsb3Blbl9zZWxmCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBvZiBzdGF0aWNhbGx5IGxpbmtl ZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3NlbGZfc3RhdGljPSRlbmFibGVfZGxv cGVuX3NlbGZfc3RhdGljCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBs aW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX1JD Ci0rCi0rIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zLgotK25v X2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfUkMKLSsK LSsjIENvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfUkMKLSsKLSsjIENv bXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgc2hhcmVkIG9iamVjdHMgZGlyZWN0bHkgZnJvbSBhcmNo aXZlcy4KLSt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0kbHRfd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfUkMKLSsKLSsjIENvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0 cy4KLSt0aHJlYWRfc2FmZV9mbGFnX3NwZWM9JGx0X3RocmVhZF9zYWZlX2ZsYWdfc3BlY19SQwot KwotKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUuCi0rdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5 cGUKLSsKLSsjIEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgotK2xpYm5hbWVfc3BlYz0k bHRfbGlibmFtZV9zcGVjCi0rCi0rIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1l IGlzIHRoZSByZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgotKyMgVGhlIGxhc3QgbmFtZSBp cyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KLStsaWJyYXJ5X25h bWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYwotKwotKyMgVGhlIGNvZGVkIG5hbWUgb2Yg dGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCi0rc29uYW1lX3Nw ZWM9JGx0X3NvbmFtZV9zcGVjCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0 YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK1JBTkxJQj0kbHRfUkFOTElCCi0rb2xkX2FyY2hp dmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19SQwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSRs dF9vbGRfcG9zdGluc3RhbGxfY21kcwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9JGx0X29sZF9w b3N0dW5pbnN0YWxsX2NtZHMKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9t IGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kc19SQwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHls ZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNo aXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19S QwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhIHNoYXJlZCBhcmNo aXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX1JDCi0rYXJjaGl2ZV9leHBzeW1f Y21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kc19SQwotK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bv c3RpbnN0YWxsX2NtZHMKLStwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21k cwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1l ZCBzYW1lIGFzIGFib3ZlIGlmIGVtcHR5KQotK21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19S QwotK21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzX1JDCi0rCi0rIyBD b21tYW5kcyB0byBzdHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBs aWIKLStzdHJpcGxpYj0kbHRfc3RyaXBsaWIKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBi ZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCi0rIyBzaGFyZWQgbGli cmFyeS4KLStwcmVkZXBfb2JqZWN0cz0kbHRfcHJlZGVwX29iamVjdHNfUkMKLSsKLSsjIERlcGVu ZGVuY2llcyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRl IGEKLSsjIHNoYXJlZCBsaWJyYXJ5LgotK3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmpl Y3RzX1JDCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJl aW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcHJlZGVwcz0kbHRf cHJlZGVwc19SQwotKwotKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3Rz IGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQotKyMgc2hhcmVkIGxpYnJhcnkuCi0rcG9zdGRlcHM9 JGx0X3Bvc3RkZXBzX1JDCi0rCi0rIyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBj b21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkCi0rIyBsaWJyYXJ5Ci0rY29tcGlsZXJfbGli X3NlYXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX2RpcnNfUkMKLSsKLSsjIFRoZSBs aWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBs aW5raW5nCi0rIyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0k bHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX1JDCi0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hl dGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2No ZWNrX21ldGhvZD0kbHRfZGVwbGlic19jaGVja19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNl IHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPT0gZmlsZV9tYWdpYy4KLStmaWxlX21hZ2ljX2Nt ZD0kbHRfZmlsZV9tYWdpY19jbWQKLSsKLSsjIEZsYWcgdGhhdCBhbGxvd3Mgc2hhcmVkIGxpYnJh cmllcyB3aXRoIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIGJ1aWx0LgotK2FsbG93X3VuZGVmaW5l ZF9mbGFnPSRsdF9hbGxvd191bmRlZmluZWRfZmxhZ19SQwotKwotKyMgRmxhZyB0aGF0IGZvcmNl cyBubyB1bmRlZmluZWQgc3ltYm9scy4KLStub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZp bmVkX2ZsYWdfUkMKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJy YXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KLStmaW5pc2hfY21kcz0kbHRfZmluaXNo X2NtZHMKLSsKLSsjIFNhbWUgYXMgYWJvdmUsIGJ1dCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21lbnQg dG8gYmUgZXZhbGVkIGJ1dCBub3Qgc2hvd24uCi0rZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9ldmFs Ci0rCi0rIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9mIHJh dyBzeW1ib2xzIGFuZCBDIG5hbWVzLgotK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfcGlwZQotKwotKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4g YSBwcm9wZXIgQyBkZWNsYXJhdGlvbgotK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCi0rCi0rIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBv ZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIKLStnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcwotKwot KyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgotK3J1 bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgotKwotKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkg cGF0aCB2YXJpYWJsZS4KLStzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCi0rCi0rIyBJcyBz aGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNoIHBh dGg/Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGgKLSsKLSsjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50byBh biBleGVjdXRhYmxlLgotK2hhcmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX1JDCi0rCi0r IyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gbGlicmFyaWVz LgotK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCi0rCi0rIyBGbGFnIHRv IGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlz IG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfUkMKLSsKLSsjIElm IGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8K LSsjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGli ZGlyIGRvZXMKLSsjIG5vdCBleGlzdC4KLStoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRs dF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX1JDCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQg YSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KLStoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX1JDCi0rCi0r IyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlu a2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCi0rIyByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRj b2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X1JDCi0rCi0rIyBTZXQgdG8geWVzIGlmIHVzaW5n IHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSsj IHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9S QwotKwotKyMgU2V0IHRvIHllcyBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlu a2luZyBoYXJkY29kZXMgRElSIGludG8KLSsjIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRj b2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXJfUkMKLSsKLSsjIFNldCB0 byB5ZXMgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2Rl cyBESVIgaW50byB0aGUgbGlicmFyeQotKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBh bmQgZXhlY3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCi0raGFyZGNvZGVfYXV0b21hdGljPSRo YXJkY29kZV9hdXRvbWF0aWNfUkMKLSsKLSsjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxk IGJlIHNhdmVkIGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAotKyMgcmVzdG9yZWQgYXQg cmVsaW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2 ZWRfZm9yX3JlbGluayIKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFt IGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJz PSRsaW5rX2FsbF9kZXBsaWJzX1JDCi0rCi0rIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBw YXRoIGZvciBsaWJyYXJpZXMKLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJf c2VhcmNoX3BhdGhfc3BlYwotKwotKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBs aWJyYXJpZXMKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWMKLSsKLSsjIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0 aGUgY29tcGlsZXIuCi0rZml4X3NyY2ZpbGVfcGF0aD0kbHRfZml4X3NyY2ZpbGVfcGF0aAotKwot KyMgU2V0IHRvIHllcyBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KLSthbHdheXNf ZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9sc19SQwotKwotKyMgVGhlIGNvbW1h bmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9l eHBvcnRfc3ltYm9sc19jbWRzX1JDCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUg ZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgotK2V4dHJhY3RfZXhw c3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0IHNo b3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRlX2V4 cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltc19SQwotKwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3 YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zX1JD Ci0rCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUKLSsKLStfX0VPRl9f Ci0rCi0rCi0rZWxzZQotKyAgIyBJZiB0aGVyZSBpcyBubyBNYWtlZmlsZSB5ZXQsIHdlIHJlbHkg b24gYSBtYWtlIHJ1bGUgdG8gZXhlY3V0ZQotKyAgIyBgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sn IHRvIHJlcnVuIHRoZXNlIHRlc3RzIGFuZCBjcmVhdGUgdGhlCi0rICAjIGxpYnRvb2wgc2NyaXB0 IHRoZW4uCi0rICBsdG1haW5faW49YGVjaG8gJGx0bWFpbiB8IHNlZCAtZSAncy9cLnNoJC8uaW4v J2AKLSsgIGlmIHRlc3QgLWYgIiRsdG1haW5faW4iOyB0aGVuCi0rICAgIHRlc3QgLWYgTWFrZWZp bGUgJiYgbWFrZSAiJGx0bWFpbiIKLSsgIGZpCi0rZmkKLSsKLSsKLSthY19leHQ9YwotK2FjX2Nw cD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVl eHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK0NDPSIkbHRfc2F2 ZV9DQyIKLSsKLSsJOzsKLSsKLSsgICAgICAqKQotKwl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogVW5zdXBwb3J0ZWQgdGFnIG5hbWU6ICR0YWduYW1lIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogVW5zdXBwb3J0ZWQgdGFnIG5hbWU6ICR0YWduYW1lIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAg ICAjIEFwcGVuZCB0aGUgbmV3IHRhZyBuYW1lIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdz LgotKyAgICAgIGlmIHRlc3QgLW4gIiR0YWduYW1lIiA7IHRoZW4KLSsgICAgICBhdmFpbGFibGVf dGFncz0iJGF2YWlsYWJsZV90YWdzICR0YWduYW1lIgotKyAgICBmaQotKyAgICBmaQotKyAgZG9u ZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCi0rICAjIE5vdyBzdWJzdGl0dXRlIHRoZSB1cGRh dGVkIGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ3MuCi0rICBpZiBldmFsICJzZWQgLWUgJ3MvXmF2YWls YWJsZV90YWdzPS4qXCQvYXZhaWxhYmxlX3RhZ3M9XCIkYXZhaWxhYmxlX3RhZ3NcIi8nIFwiJG9m aWxlXCIgPiBcIiR7b2ZpbGV9VFwiIjsgdGhlbgotKyAgICBtdiAiJHtvZmlsZX1UIiAiJG9maWxl IgotKyAgICBjaG1vZCAreCAiJG9maWxlIgotKyAgZWxzZQotKyAgICBybSAtZiAiJHtvZmlsZX1U IgotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5hYmxlIHRvIHVw ZGF0ZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdnZWQgY29uZmlndXJhdGlvbnMuIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogdW5hYmxlIHRvIHVwZGF0ZSBsaXN0IG9mIGF2YWlsYWJsZSB0 YWdnZWQgY29uZmlndXJhdGlvbnMuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotKyAgZmkKLStmaQotKwotKwotKwotKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxp YnRvb2wgd2hlbiBuZWVkZWQKLStMSUJUT09MX0RFUFM9IiRhY19hdXhfZGlyL2x0bWFpbi5zaCIK LSsKLSsjIEFsd2F5cyB1c2Ugb3VyIG93biBsaWJ0b29sLgotK0xJQlRPT0w9JyQoU0hFTEwpICQo dG9wX2J1aWxkZGlyKS9saWJ0b29sJwotKwotKyMgUHJldmVudCBtdWx0aXBsZSBleHBhbnNpb24K LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3 b3JrcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAi ID4mNjsgfQotK0xOX1M9JGFzX2xuX3MKLStpZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19l Y2hvICJ5ZXMiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IG5vLCB1c2luZyAkTE5fUyIgPiY1Ci0rJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIg PiY2OyB9Ci0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQotK3NldCB4 ICR7TUFLRS1tYWtlfQotK2FjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMv W15hLXpBLVowLTlfXS9fL2cnYAotK2lmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21h a2V9X3NldDsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0Lm1h a2UgPDxcX0FDRU9GCi0rU0hFTEwgPSAvYmluL3NoCi0rYWxsOgotKwlAZWNobyAnQEBAJSUlPSQo TUFLRSk9QEBAJSUlJwotK19BQ0VPRgotKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFr ZVsxXTogRW50ZXJpbmcuLi4iLCB3aGljaCB3b3VsZCBjb25mdXNlIHVzLgotK2Nhc2UgYCR7TUFL RS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBpbgotKyAgKkBAQCUlJT0/Kj1A QEAlJSUqKQotKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD15ZXM7Owot KyAgKikKLSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87OwotK2Vz YWMKLStybSAtZiBjb25mdGVzdC5tYWtlCi0rZmkKLStpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9n X21ha2VfJHthY19tYWtlfV9zZXQgPSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICBTRVRf TUFLRT0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgIFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtl fSIKLStmaQotKwotKwotKyMgU2V0IGRlZmF1bHQgbGFuZ3VhZ2UgdG8gQysrCi0rYWNfZXh0PWNw cAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251Ci0rCi0rCi0rIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLSsjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtZXhjZXB0aW9ucyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfZXhj ZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfZXhjZXB0aW9u czsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgU09DSV9FWENFUFRJT05T IDEKLStfQUNFT0YKLSsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhu byAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKLSt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGlt ZSIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwotKwotKyMgQ2hlY2sgZm9yIGluZm8g cGFnZXMKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaW5mby1kb2Mgd2FzIGdpdmVuLgotK2lm IHRlc3QgIiR7ZW5hYmxlX2luZm9fZG9jK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9 JGVuYWJsZV9pbmZvX2RvYzsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4 bm8gJiYgZW5hYmxlX2luZm9fZG9jPXllcwotKwotKwotKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3 aXRjaAotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1odG1sLWRvYyB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHtlbmFibGVfaHRtbF9kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0k ZW5hYmxlX2h0bWxfZG9jOwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhu byAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCi0rCi0rCi0rIyBQcm92aWRlIC0td2l0aC1kb2NkaXIK LSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWRvY2RpciB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHt3aXRoX2RvY2RpcitzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9kb2NkaXI7 IERPQ19ESVI9IiR3aXRodmFsIgotK2Vsc2UKLSsgIERPQ19ESVI9IiIKLStmaQotKwotK2lmIHRl c3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgotKyAgZG9jZGlyPSIkRE9DX0RJUiIKLStlbHNlCi0r ICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgotK2ZpCi0rCi0rCi0r Ci0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKLSsj IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke2VuYWJsZV9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJs ZXZhbD0kZW5hYmxlX2J1cnJpZWRfaGVhZGVyczsgIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87 IHRoZW4KLSsgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxzZQotKyAgICAg IGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2J1 cnJpZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2th Z2VzIGdlbmVyYXRpb24KLStlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4 JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgU09DSV9IRUFERVJTX0JV UklFRF9UUlVFPQotKyAgU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStlbHNlCi0rICBT T0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMnCi0rICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNF PQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7 IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStm aQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50 KQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdp dmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNl dDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzPW5vCi0rICAgZWxzZQotKwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAg IGZpCi0rZWxzZQotKyAgIGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLStmaQotKwot KyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX215 c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgaWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfVFJV RT0KLSsgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9JyMnCi0rZWxzZQotKyAgU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScjJwotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRF9GQUxTRT0KLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJT X0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBm aWxlcyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50KQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1w b3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZh bD0kZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZh bCIgPSBubzsgdGhlbgotKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsg ICBlbHNlCi0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQot K2Vsc2UKLSsgICBlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLStmaQotKwot KyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX3Bv c3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jl c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURfVFJVRT0KLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxT RT0nIycKLStlbHNlCi0rICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycK LSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KLStmaQotKwotKwotK2lm IHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4K LSsgICBDUFBGTEFHUz0iLURTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdT IgotK2ZpCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJv b3N0Lm9yZykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ib29zdCB3YXMgZ2l2 ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2Jvb3N0K3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFs PSR3aXRoX2Jvb3N0OwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8i OyB0aGVuCi0rCQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAgICAgICAgICAg ZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAg d2FudF9ib29zdD0ieWVzIgotKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgot KyAgICAgICAgICAgICAgICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAg ICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAgZmkKLSsKLStl bHNlCi0rICB3YW50X2Jvb3N0PSJ5ZXMiCi0rZmkKLSsKLSsKLSsjICAgIEFDX0NBTk9OSUNBTF9C VUlMRAotK0JPT1NUX01EV19WRVJTSU9OPSIxLTMzLTEiCi0rQk9PU1RMSUJfTURXX1ZFUlNJT049 IjFfMzNfMSIKLSsKLSsJaWYgdGVzdCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgotKwkJ Ym9vc3RfbGliX3ZlcnNpb25fcmVxPTEuMzMKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9y dGVuPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AK LSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25f cmVxIDogJ1woWzAtOV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHBy ICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsJCWJvb3N0 X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6 ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92 ZXJzaW9uX3JlcV9zdWJfbWlub3IiID0gIngiIDsgdGhlbgotKwkJCWJvb3N0X2xpYl92ZXJzaW9u X3JlcV9zdWJfbWlub3I9IjAiCi0rICAgIAlmaQotKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHBy ICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3Zl cnNpb25fcmVxX21pbm9yIFwqIDEwMCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5v cmAKLSsJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYm9vc3RsaWIg Pj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGJvb3N0bGliID49ICRib29zdF9saWJfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsJCXN1Y2Nl ZWRlZD1ubwotKwotKwkJCQkJCQkJCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgotKwkJCUJPT1NU X0xJQkRJUlRZUEU9ImxpYjY0IgotKwkJZWxzZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIK LSsJCWZpCi0rCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsJCQlpZiB0 ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IjsgdGhlbgotKwkJCQlpZiB0ZXN0IC1k ICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0 X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiOyB0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9M SUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAg ICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJ ZmkKLSsJCQllbHNlCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJ CWZpCi0rCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQllbHNl Ci0rCQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0 b29scy9ib29zdCA7IGRvCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNs dWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7 IHRoZW4KLSsJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJE SVJUWVBFIgotKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRl IgotKwkJCQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRo X3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAi JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0 IjsgdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJ QkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgotKwotKwkJCQkJCQkJCQlpZiB0ZXN0IC1kICIk YWNfYm9vc3RfcGF0aF90bXAvbGliIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvbGli IiAmJiB0ZXN0ICEgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWI2NCI7IHRoZW4KLSsJCQkJCQlC T09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC9saWIiCi0rCQkJCQkJZWNobyAiSGFjazog JEJPT1NUX0xJQlMiCi0rCQkJCQlmaQotKwkJCQkJYnJlYWs7Ci0rCQkJCWZpCi0rCQkJZG9uZQot KwkJZmkKLSsKLSsJCUNQUEZMQUdTX1NBVkVEPSIkQ1BQRkxBR1MiCi0rCQlDUFBGTEFHUz0iJENQ UEZMQUdTICRCT09TVF9DRkxBR1MiCi0rCQlleHBvcnQgQ1BQRkxBR1MKLSsKLSsJCUxERkxBR1Nf U0FWRUQ9IiRMREZMQUdTIgotKwkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCi0rCQll eHBvcnQgTERGTEFHUwotKwotKyAgICAgCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21h aW4gKCkKLSt7Ci0rCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgot Ky8vIEV2ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBp cyB0b28gb2xkCi0rI2VuZGlmCi0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu ZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1 Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsKLSsgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwkJIHN1 Y2NlZWRlZD15ZXMKLSsJCSBmb3VuZF9zeXN0ZW09eWVzCi0rICAgICAgICAgOgotKwotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsKLStmaQotKwotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwotKwkJ CQkJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAhPSAieHllcyI7IHRoZW4KLSsJCQlfdmVyc2lvbj0w Ci0rCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCi0rICAgICAgICAgICAg ICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJ CWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7 IHRoZW4KLSsJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0 LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAi cyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAn cy9fLy4vJ2AKLSsJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9u YAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJX3ZlcnNp b249JF92ZXJzaW9uX3RtcAotKwkJCQkJCWZpCi0rCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBl Y2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCi0rCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRh Y19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJCWRv bmUKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vz ci9sb2NhbCAvb3B0IDsgZG8KLSsJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFj X2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJCQkJX3Zl cnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wv aW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAotKwkJCQkJCQlWX0NIRUNLPWBleHBy ICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIg PSAiMSIgOyB0aGVuCi0rCQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCi0rCQkJCQkJCQli ZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKLSsJCQkJCQkJZmkKLSsJCQkJCQlkb25lCi0rCQkJCQlm aQotKwkJCQlkb25lCi0rCi0rCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24g fCBzZWQgJ3MvXC4vXy8nYAotKwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRl L2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0 aC8kQk9PU1RfTElCRElSVFlQRSIKLSsKLSsJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAh PSAieCI7IHRoZW4KLSsJCQkJCWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIk Qk9PU1RfUk9PVCI7IHRoZW4KLSsJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09U IDogJy4qL1woLipcKSdgCi0rCQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIg fCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdzL18vLi9nJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9u X3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAnXChbMC05XSpcLlswLTldKlwpJ2AKLSsJ CQkJCQlWX0NIRUNLPWBleHByICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNpb25g Ci0rCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQl7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBm cm9tICRCT09TVF9ST09UIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXZSB3aWxsIHVzZSBhIHN0 YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QiID4mNjt9Ci0rCQkJCQkJCUJPT1NU X0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9P VC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJICAgIAkJ ZmkKLSsJCQlmaQotKwotKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJ CQlleHBvcnQgQ1BQRkxBR1MKLSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJ CQlleHBvcnQgTERGTEFHUwotKwotKyAgICAgCQljYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotKyNpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KLSsKLStpbnQK LSttYWluICgpCi0rewotKwotKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJ T04KLSsvLyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMgIGVycm9yIEJvb3N0IHZlcnNp b24gaXMgdG9vIG9sZAotKyNlbmRpZgotKwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rCi0rICAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogeWVzICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAieWVz ICgkX3ZlcnNpb24pIiA+JjY7IH0KLSsJCSBzdWNjZWVkZWQ9eWVzCi0rICAgICAgICAgOgotKwot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyAoJF92ZXJzaW9uKSIgPiY1Ci0rJGFzX2Vj aG8gIm5vICgkX3ZlcnNpb24pIiA+JjY7IH0KLSsgICAgICAgICA6Ci0rCi0rZmkKLSsKLStybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQK LSsJCWZpCi0rCi0rCQlpZiB0ZXN0ICIkc3VjY2VlZGVkIiAhPSAieWVzIiA7IHRoZW4KLSsJCQlp ZiB0ZXN0ICIkX3ZlcnNpb24iID0gIjAiIDsgdGhlbgotKwkJCQl7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogV2UgY291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVz ICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5 b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVh c2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdp dmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhh dmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2lu ZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IFdlIGNvdWxkIG5vdCBkZXRlY3QgdGhlIGJvb3N0IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4gb3IgaGlnaGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQg Ym9vc3QgbGlicmFyeSAoc3RpbGwgbm90IGluc3RhbGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09T VF9ST09UIGluIHlvdXIgZW52aXJvbm1lbnQgYW5kIGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdp dGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91IGFyZSBzdXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxl ZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNpb24gbnVtYmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNp b24uaHBwPi4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCQkJZWxzZQot KwkJCQl7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJ1lvdXIgYm9vc3QgbGli cmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFz dCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRlbiciID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiAnWW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lv bikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiYyO30K LSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJCQlmaQotKwkJZWxzZQotKwotKwotKwot K2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUIC8qKi8KLStf QUNFT0YKLSsKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJhcnkg aXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9maWxlc3lz dGVtK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+ Ci0raW50Ci0rbWFpbiAoKQotK3sKLSt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28v YmFyL2RhdGEudHh0IiApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9 JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAt ZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7 IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vCi0rZmkKLSsKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLSsJCSAJCSAgICAgICAgCQkJYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPiY1Ci0r JGFzX2VjaG8gIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICIk YXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPSAieWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZz LmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX0ZJTEVTWVNURU0gLyoqLwotK19BQ0VP RgotKwotKwkJCQlCTj1ib29zdF9maWxlc3lzdGVtCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0r CQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwg JGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1s JGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3Qg XCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9 Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNv bmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXll cyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19M aWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0r ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGli J30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsg fQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIk YXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09T VF9GSUxFU1lTVEVNX0xJQj0iLWwkYXhfbGliIiAgbGlua19maWxlc3lzdGVtPSJ5ZXMiIGJyZWFr Ci0rZWxzZQotKyAgbGlua19maWxlc3lzdGVtPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJ CQkJaWYgdGVzdCAieCRsaW5rX2ZpbGVzeXN0ZW0iID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlz IGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6 OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRl c3QgIiR7YXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9wcm9ncmFtX29w dGlvbnMuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6 b3B0aW9uc19kZXNjcmlwdGlvbiBnZW5lcmljKCJHZW5lcmljIG9wdGlvbnMiKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7 Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9wcm9n cmFtX29wdGlvbnM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlh eF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSAgICAgICAg ICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY1Ci0rJGFzX2VjaG8g IiRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMiID4mNjsgfQotKwkJCWlmIHRlc3QgIiRheF9j dl9ib29zdF9wcm9ncmFtX29wdGlvbnMiID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMu aCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TIC8qKi8KLStf QUNFT0YKLSsKLSsJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCi0rCQkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10 IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO LSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRvCi0rCQkJCSAgICBhc19hY19M aWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4m NjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3Nl dH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJ QlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStp bnQKLSttYWluICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0 Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwg IiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQot KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAotKyAgICAgICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsK LStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3Qk YWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJT Ci0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNo byAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZh bCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAg aWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCPSItbCRheF9saWIiICBsaW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhawotK2Vs c2UKLSsgIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJ CQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCi0r CQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3Qg JGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4 X2N2X2Jvb3N0X3RocmVhZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBDWFhGTEFHU19T QVZFPSRDWFhGTEFHUwotKwotKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIg OyB0aGVuCi0rICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbGlm IHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hYRkxBR1M9Ii1t dGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRD WFhGTEFHUyIKLSsJCQkgZmkKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+Ci0raW50Ci0rbWFp biAoKQotK3sKLStib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMKLStl bHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3RocmVhZD1u bwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0Ci0rCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCi0rCQkJIGFjX2V4 dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF90aHJlYWQi ID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdGhyZWFkIiA9ICJ4eWVzIjsgdGhl bgotKyAgICAgICAgICAgICAgIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRo ZW4KLSsgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZHMgJEJPT1NUX0NGTEFHUyIKLSsJCQkg ICBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgotKyAJCQkJICBCT09T VF9DRkxBR1M9Ii1tdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsc2UKLSsJCQkJICBC T09TVF9DRkxBR1M9Ii1wdGhyZWFkICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZmkKLSsKLSsKLSsK LStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9USFJFQUQg LyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF90aHJlYWQKLSsJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4t JENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNf TGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGli IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+ JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zhcitz ZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRM SUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAq LwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0r aW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwot K30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFs ICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEK LSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVl eHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0r Ci0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2Vj aG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAg IGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfVEhSRUFEX0xJQj0i LWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVh ZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQi ID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJ CQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6 OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfaW9zdHJlYW1zK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0 PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZk ZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAot K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rI2luY2x1ZGUgPGJvb3N0L2lvc3RyZWFtcy9maWx0ZXJpbmdfc3RyZWFtLmhwcD4KLSsJCQkJ CQkJCQkJCQkgI2luY2x1ZGUgPGJvb3N0L3JhbmdlL2l0ZXJhdG9yX3JhbmdlLmhwcD4KLSsKLStp bnQKLSttYWluICgpCi0rewotK3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOwot KwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOwotKwkJCQkJCQkJCSBp bzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0 KSk7Ci0rCQkJCQkJCQkJIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVz Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9pb3N0 cmVhbXM9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9pb3N0cmVhbXMi ID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA+JjY7IH0KLSsJCQlpZiB0 ZXN0ICJ4JGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5j b25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9JT1NUUkVBTVMgLyoqLwot K19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9pb3N0cmVhbXMKLSsJCQkJZm9yIGF4X2xpYiBpbiAk Qk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJEND LXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGli PWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7 IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJT IgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK LSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwot K2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8g IiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwg J2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlm IHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfSU9TVFJFQU1TX0xJQj0i LWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVh ZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQi ID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBu b3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJ CQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6 OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxh YmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsK LSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGZzdHJlYW0+Ci0rCQkJCQkJCQkJCQkJICNpbmNsdWRl IDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0 X2lhcmNoaXZlLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewotK3N0ZDo6b2ZzdHJlYW0gb2Zz KCJmaWxlbmFtZSIpOwotKwkJCQkJCQkJCWJvb3N0OjphcmNoaXZlOjp0ZXh0X29hcmNoaXZlIG9h KG9mcyk7Ci0rCQkJCQkJCQkJIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQot K19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19j b21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwot K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9zZXJpYWxpemF0 aW9uPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9v c3Rfc2VyaWFsaXphdGlvbj1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0 X3NlcmlhbGl6YXRpb24iID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlv biIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA9ICJ4 eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZF X0JPT1NUX1NFUklBTElaQVRJT04gLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9zZXJp YWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4t JENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIk Qk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19W RVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhf bGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xp YjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJT PSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog ZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1h aW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwg IiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJ ZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAot K0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAi JGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0r CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7 IHRoZW4KLSsgIEJPT1NUX1NFUklBTElaQVRJT05fTElCPSItbCRheF9saWIiICBsaW5rX3RocmVh ZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJ CWRvbmUKLSsJCQkJQk49Ym9vc3Rfd3NlcmlhbGl6YXRpb24KLSsJCQkJZm9yIGF4X2xpYiBpbiAk Qk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJEND LXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGli PWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7 IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJT IgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK LSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rCi0r cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwot K2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8g IiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSthc192YWw9YGV2YWwg J2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlm IHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1RfV1NFUklBTElaQVRJT05f TElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtf dGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3Ro cmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENv dWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQot KwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBC b29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NpZ25hbHMrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9 Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0rewotK2Jv b3N0OjpzaWduYWw8dm9pZCAoKT4gc2lnOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gMDsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3Rfc2lnbmFscz15ZXMKLStlbHNlCi0r ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X3NpZ25hbHM9bm8KLStm aQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK LSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9zaWduYWxzIiA+JjUKLSskYXNfZWNo byAiJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9v c3Rfc2lnbmFscyIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP RgotKyNkZWZpbmUgSEFWRV9CT09TVF9TSUdOQUxTIC8qKi8KLStfQUNFT0YKLSsKLSsJCQkJQk49 Ym9vc3Rfc2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQg JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMg IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9N RFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJf JGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19h Y19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVf TElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVy biBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGlu ayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5l cjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8 Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBl dmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQot K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9YGV2YWwgJ2Fz X3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWIn fQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIi eWVzOyB0aGVuCi0rICBCT09TVF9TSUdOQUxTX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9 InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlk b25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRh dGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhf Y3ZfYm9vc3RfZGF0ZV90aW1lK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L2RhdGVf dGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KLSsKLStpbnQKLSttYWluICgpCi0r ewotK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTAp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsKLSsg IDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAg YXhfY3ZfYm9vc3RfZGF0ZV90aW1lPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKLSsKLSsJYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2Rh dGVfdGltZSIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0g Inh5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhB VkVfQk9PU1RfREFURV9USU1FIC8qKi8KLStfQUNFT0YKLSsKLSsJCQkJQk49Ym9vc3RfZGF0ZV90 aW1lCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10 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 LSsgIEJPT1NUX0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJy ZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJ CQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIj0ibm8iID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxl IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGli cmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3Jl Z2V4K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3JlZ2V4LmhwcD4KLSsKLStpbnQK LSttYWluICgpCi0rewotK2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwOwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29z dF9yZWdleD15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2 X2Jvb3N0X3JlZ2V4PW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcmVn ZXgiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfcmVnZXgiID4mNjsgfQotKwkJCWlmIHRl c3QgIngkYXhfY3ZfYm9vc3RfcmVnZXgiID0gInh5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfUkVHRVggLyoqLwotK19BQ0VPRgot KwotKwkJCQlCTj1ib29zdF9yZWdleAotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRC Ti0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRC Ti1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAk Qk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRC T09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJh Y19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsgYXNf dmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tf bGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0r ewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5 PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5j b25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qu ZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0 LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0 aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRl c3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19yZXM9 YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAot KwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1 Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192 YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtf dGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0r ICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0r CQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3Qg JGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29y ayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJ CQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD4KLStpbnQKLStt YWluICgpCi0rewotK3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rCQkJCQkg ICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0 IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2Zy YW1ld29yaz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2 X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9 Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh eF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jv b3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9v c3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVm cy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8q Ki8KLStfQUNFT0YKLSsKLSsJCQlCTj1ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrCi0rICAgIAkJ c2F2ZWRfbGRmbGFncz0iJHtMREZMQUdTfSIKLSsJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3 LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKyAgICAgICAgICAgICAgICBM REZMQUdTPSIke0xERkxBR1N9IC1sJGF4X2xpYiIKLSsgICAgCQkJeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdv cmsgbGlicmFyeSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJv b3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHth eF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0r ICAgICAgICAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgotK2ludAotK21haW4gKCkKLSt7 Ci0rdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQg dGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19s aW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAg ICAgICB9OyB0aGVuCi0rICBsaW5rX3RocmVhZD0ieWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsJbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0 ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2 OyB9Ci0rICAgICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAg IGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAg ICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKwotKwkJCQkJ YnJlYWsKLSsJCQkJZmkKLSsgICAgICAgICAgICAgIGRvbmUKLSsJCQkgICAgaWYgdGVzdCAieCRs aW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQot KwkJCWZpCi0rCQlmaQotKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKLSsgICAg ICAgIExERkxBR1M9IiRMREZMQUdTX1NBVkVEIgotKwlmaQotKwotKwotKwotKwotKwotKwotKwot KwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE15U1FMIGJhY2tlbmQgKEMgY2xpZW50 IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwub3JnCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgd2hl dGhlciAtLWVuYWJsZS1iYWNrZW5kLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJs ZV9iYWNrZW5kX215c3FsK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9i YWNrZW5kX215c3FsOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkg ZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9t eXNxbD15ZXMKLSsgICAgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYmFja2VuZF9teXNxbD1ubwot KwotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7 IHRoZW4KLSsgICBNWVNRTF9ESVJTPSJteXNxbCIKLSsgICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4w LjAiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1teXNxbCB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHt3aXRoX215c3FsK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX215 c3FsOwotKwlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUiCi0rICAgICAgICBp ZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9teXNxbD0i bm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAg ICAgICAgd2FudF9teXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHdhbnRf bXlzcWw9InllcyIKLSsgICAgICAgICAgICBNWVNRTF9DT05GSUc9IiR3aXRodmFsIgotKyAgICAg ICAgZmkKLSsKLStlbHNlCi0rICB3YW50X215c3FsPSJ5ZXMiCi0rCU1ZU1FMX2luY19jaGVjaz0i L3Vzci9pbmNsdWRlIC91c3IvbG9jYWwgL29wdCIKLSsKLStmaQotKwotKwotKyAgICBNWVNRTF9D RkxBR1M9IiIKLSsgICAgTVlTUUxfTERGTEFHUz0iIgotKyAgICBNWVNRTF9WRVJTSU9OPSIiCi0r Ci0rCi0rICAgIGlmIHRlc3QgIiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAg ICBpZiB0ZXN0IC16ICIkTVlTUUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCi0rICAgICAgICAgICAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJteXNxbF9jb25maWciLCBzbyBpdCBjYW4gYmUg YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBteXNxbF9jb25maWc7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3BhdGhfTVlTUUxfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJE1ZU1FMX0NPTkZJRyBp bgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJE1Z U1FMX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu Ci0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcGF0aF9NWVNRTF9DT05GSUc9IiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK01ZU1FM X0NPTkZJRz0kYWNfY3ZfcGF0aF9NWVNRTF9DT05GSUcKLStpZiB0ZXN0IC1uICIkTVlTUUxfQ09O RklHIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FM X0NPTkZJRyIgPiY1Ci0rJGFzX2VjaG8gIiRNWVNRTF9DT05GSUciID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgICAgICBmaQotKwotKyAgICAgICAgICAgICAgICBp ZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAgeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRNWVNRTF9DT05GSUcgZG9lcyBub3QgZXhpc3Qg b3IgaXQgaXMgbm90IGFuIGV4ZWN0dWFibGUgZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6ICRNWVNRTF9DT05GSUcgZG9lcyBub3QgZXhpc3Qgb3IgaXQgaXMgbm90IGFuIGV4ZWN0 dWFibGUgZmlsZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgICAg ICAgICBNWVNRTF9DT05GSUc9Im5vIgotKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJubyIKLSsg ICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfQ09ORklHIiAhPSAibm8iOyB0 aGVuCi0rICAgICAgICAgICAgIwotKyAgICAgICAgICAgICMgTG9vayBmb3IgTXlTUUwgQyBBUEkg aGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0K LSsgICAgICAgICAgICBNWVNRTF9pbmNkaXI9Ci0rICAgICAgICAgICAgZm9yIG15c3FsX2luY19k aXIgaW4gJE1ZU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAgICAg IGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAgICAgICYmIHRlc3Qg LWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215c3FsLmgiCi0rICAgICAgICAgICAgICAgIHRoZW4K LSsgICAgICAgICAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0kbXlzcWxfaW5jX2RpcgotKyAgICAg ICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBk b25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsgICAgICAg ICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNf Y2hlY2snIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIE15 U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJyIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIGNhc2Ug IiRNWVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsgICAgICAgICAg ICAgICAgKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIE15U1FM IGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBh dGguIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGly ZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjI7fQot KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfaW5j ZGlyIiA+JjUKLSskYXNfZWNobyAiJE1ZU1FMX2luY2RpciIgPiY2OyB9Ci0rCi0rICAgICAgICAg ICAgaWYgdGVzdCAiJE1ZU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAg ICAgICAgICAgTVlTUUxfQ0ZMQUdTPSIiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAg ICAgTVlTUUxfQ0ZMQUdTPSItSSR7TVlTUUxfaW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwot KyAgICAgICAgICAgIE1ZU1FMX0xERkxBR1M9ImAkTVlTUUxfQ09ORklHIC0tbGlic2AiCi0rCi0r ICAgICAgICAgICAgTVlTUUxfVkVSU0lPTj1gJE1ZU1FMX0NPTkZJRyAtLXZlcnNpb25gCi0rCi0r Ci0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfTVlTUUwgMQotK19B Q0VPRgotKwotKwotKyAgICAgICAgICAgIGZvdW5kX215c3FsPSJ5ZXMiCi0rICAgICAgICBlbHNl Ci0rICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsK LSsKLSsKLSsgICAgbXlzcWxfdmVyc2lvbl9yZXE9JE1ZU1FMX1JFUV9WRVJTSU9OCi0rCi0rICAg IGlmIHRlc3QgIiRmb3VuZF9teXNxbCIgPSAieWVzIiAtYSAtbiAiJG15c3FsX3ZlcnNpb25fcmVx IjsgdGhlbgotKwotKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGlmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBpZiBNeVNRTCB2ZXJzaW9uIGlzID49ICRteXNxbF92ZXJzaW9uX3JlcS4u LiAiID4mNjsgfQotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fcmVx X21ham9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAg IG15c3FsX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05 XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIg JG15c3FsX3ZlcnNpb25fcmVxIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAg ICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCi0rICAg ICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAg ICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX3JlcV9t YWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwr ICRteXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAgICAg ICAgICAgICAgICAgICAgICBteXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9O IDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taW5vcj1gZXhwciAkTVlT UUxfVkVSU0lPTiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lv bl9taWNybz1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpc KSdgCi0rICAgICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVu Ci0rICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0r ICAgICAgICBteXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBc KiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNx bF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWljcm9gCi0rCi0rICAgICAgICBteXNxbF92ZXJzaW9u X2NoZWNrPWBleHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3Jl cV9udW1iZXJgCi0rICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7 IHRoZW4KLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5 ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgICAgICAgZWxzZQotKyAgICAgICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsKLSsKLStmaQot KyBpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVf TVlTUUxfVFJVRT0KLSsgIEhBVkVfTVlTUUxfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFWRV9NWVNR TF9UUlVFPScjJwotKyAgSEFWRV9NWVNRTF9GQUxTRT0KLStmaQotKwotKyNNWVNRTF9ESVJTPSJt eXNxbCIKLSsKLSsKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIE9yYWNsZSBi YWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQt b3JhY2xlIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX29yYWNsZStzZXR9 IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9vcmFjbGU7ICBpZiB0 ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFj bGU9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9eWVzCi0rICAgICAg ZmkKLStlbHNlCi0rICAgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCi0rCi0rZmkKLSsKLSsKLStp ZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSAieHllcyI7IHRoZW4KLSsgICBPUkFD TEVfRElSUz0ib3JhY2xlIgotKyAgIE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT049IjkuMCIKLSsKLSsK LSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHt3aXRoX29yYWNsZStzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7 Ci0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAg IGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xl X2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAg ICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsgICAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsK LStlbHNlCi0rCi0rICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAg ICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0r ICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCi0rICAgICAgICBmaQotKwotKwotK2ZpCi0r Ci0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4u Ci0raWYgdGVzdCAiJHt3aXRoX29yYWNsZV9pbmNsdWRlK3NldH0iID0gc2V0OyB0aGVuCi0rICB3 aXRodmFsPSR3aXRoX29yYWNsZV9pbmNsdWRlOyBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iJHdp dGh2YWwiCi0rZWxzZQotKyAgb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiIKLSsKLStmaQotKwot KwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtb3JhY2xlLWxpYiB3YXMgZ2l2ZW4uCi0raWYgdGVz dCAiJHt3aXRoX29yYWNsZV9saWIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhf b3JhY2xlX2xpYjsgb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwiCi0rZWxzZQotKyAgb3Jh Y2xlX2hvbWVfbGliX2Rpcj0iIgotKwotK2ZpCi0rCi0rCi0rICAgIE9SQUNMRV9PQ0lfQ0ZMQUdT PSIiCi0rICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iIgotKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049 IiIKLSsKLSsgICAgICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgotKwot KyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYg dGVzdCAiJG9yYWNsZV9ob21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0g InllcyI7IHRoZW4KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9k aXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVibGljIgotKwotKyAgICAgICAgICAgICAgICAg ICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVtbyIK LSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21l X2Rpci9saWIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7 IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAg ICAgZmkKLSsKLSsgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1v IC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRv cmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9y YWNsZV9ob21lX2luY2x1ZGVfZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRf bm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVf aG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7 IHRoZW4KLSsgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIi Ci0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZp Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAi eWVzIjsgdGhlbgotKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IE9yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVl biBwcm92aWRlZC4gXAotK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAt LXdpdGgtb3JhY2xlIG9yIFwKLSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFj bGUtbGliIG9wdGlvbnMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUg c3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNsZSBwYXRocyBoYXZlIGJlZW4gcHJvdmlk ZWQuIFwKLStQbGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13aXRoLW9y YWNsZSBvciBcCi0rLS13aXRoLW9yYWNsZS1pbmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xlLWxpYiBv cHRpb25zLiIgPiYyO30KLSsgICAgZmkKLSsKLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAi JG9yYWNsZV9pbmNsdWRlX2RpciIgLWEgLW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KLSsKLSsg ICAgICAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgICAgICBDUFBGTEFHUz0iJENQ UEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpciIKLSsKLSsgICAgICAgICAgICAgICAgaWYgdGVz dCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0rICAgICAgICAgICAgQ1BQRkxBR1M9 IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgotKyAgICAgICAgZmkKLSsKLSsgICAg ICAgICMgRmlndXJlIG91dCBpZiB3ZSBhcmUgYnVpbGRpbmcgb24gd2luMzIuCi0rICAgICAgICBj YXNlICRob3N0X29zIGluCi0rICAgICAgICAgICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7Ci0r ICAgICAgICAgICAgKmN5Z3dpbiogKSAgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKikgV0lO MzI9bm8gOzsKLSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAi bm8iCi0rICAgICAgICB0aGVuCi0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56 MTEiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb2NpX2xpYnM9Ii1sb2NpIgotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgIHNhdmVkX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgc2F2 ZWRfTElCUz0iJExJQlMiCi0rICAgICAgICBvY2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIi Ci0rICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAkb2NpX2xkZmxhZ3MiCi0rICAgICAgICBMSUJT PSIkTElCUyAkb2NpX2xpYnMiCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVhZGVy cyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig T3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0KLSsK LSsgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK LSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rCi0rICAgICAgICAgICAgLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0r aW50Ci0rbWFpbiAoKQotK3sKLSsKLSsjaWYgZGVmaW5lZChPQ0lfTUFKT1JfVkVSU0lPTikKLSsj aWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZFUlNJT04gPT0gMgotKy8v IE9yYWNsZSAxMC4yIGRldGVjdGVkCi0rI2VuZGlmCi0rI2VsaWYgZGVmaW5lZChPQ0lfVjdfU1lO VEFYKQotKy8vIE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKLSsvLyBUT0RPIC0gbWxvc2tvdDog ZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNpb25zOwotKyNlbHNlCi0r IyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQKLSsjZW5kaWYKLSsKLSsKLSsg IDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKwot KyAgICAgICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSItSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0r Ci0rICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIiOyB0aGVuCi0r ICAgICAgICAgICAgICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIkT1JBQ0xFX09DSV9DRkxBR1MgLUkk b3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAgICAgICAgIG9j aV9oZWFkZXJfZm91bmQ9InllcyIKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKwotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVy X2ZvdW5kPSJubyIKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBub3QgZm91bmQiID4mNQotKyRhc19lY2hvICJub3QgZm91bmQiID4mNjsgfQotKwotKwot K2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0 aGVuCi0rCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9kaXIiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBPcmFjbGUgT0NJIGxpYnJhcmllcyBpbiAkb3JhY2xlX2xpYl9k aXIuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAg ICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsKLSsgICAgICAgICAgICAgICAg LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLStPQ0lF bnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAs IDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYp OwotKwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK LStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK LSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0r CSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rICAg ICAgICAgICAgICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIK LSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ieWVzIgotKyAgICAgICAgICAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5 ZXMiID4mNjsgfQotKwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLSsg ICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCi0rICAgICAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vdCBmb3VuZCIgPiY1Ci0rJGFzX2VjaG8g Im5vdCBmb3VuZCIgPiY2OyB9Ci0rCi0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQot K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLSsgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK LSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAg ICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZMQUdTIgotKyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xE RkxBR1MiCi0rICAgICAgICBMSUJTPSIkc2F2ZWRfTElCUyIKLSsgICAgZmkKLSsKLSsgICAgICAg ICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxPSRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OCi0rCi0r ICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3Vu ZCIgPSAieWVzIiAtYSBcCi0rICAgICAgICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4K LSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rp ci9vY2kuaCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUu Kk9DSV9NQUpPUl9WRVJTSU9OLionIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg c2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAg ICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5P Ul9WRVJTSU9OLionIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdz LyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMg Pj0gJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgT3Jh Y2xlIE9DSSB2ZXJzaW9uIGlzID49ICRvcmFjbGVfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsK LSsgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfdmVyc2lvbl9tYWpvciIgLWEgLW4gJCJvcmFj bGVfdmVyc2lvbl9taW5vciI7IHRoZW4KLSsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX1ZFUlNJ T049IiRvcmFjbGVfdmVyc2lvbl9tYWpvci4kb3JhY2xlX3ZlcnNpb25fbWlub3IiCi0rCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21ham9y PWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCi0rICAgICAgICAgICAg b3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnWzAt OV0qXC5cKFswLTldKlwpJ2AKLSsKLSsgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbnVt YmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX3JlcV9t aW5vciBcKiAxMDAwYAotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9u X251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAx MDAwYAotKwotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVf dmVyc2lvbl9udW1iZXIgXD5cPSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAg ICAgICBpZiB0ZXN0ICIkb3JhY2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAg ICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0r JGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIEhBVkVfT1JBQ0xFIDEKLStfQUNFT0YKLSsKLSsgICAgICAgICAgICBlbHNlCi0rICAg ICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICAgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1 dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJl cXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsgICAgICAgICAgICBmaQotKyAgICAgICAgZWxzZQotKyAgICAg ICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iVU5LTk9XTiIKLSsgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3Jh Y2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFp bGFibGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSB2ZXJzaW9uIHVu a25vd24sIHByb2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlIiA+JjI7fQot KyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsKLSsKLStmaQotKyBpZiB0ZXN0ICJ4JGVu YWJsZV9iYWNrZW5kX29yYWNsZSIgPSB4eWVzOyB0aGVuCi0rICBIQVZFX09SQUNMRV9UUlVFPQot KyAgSEFWRV9PUkFDTEVfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFWRV9PUkFDTEVfVFJVRT0nIycK LSsgIEhBVkVfT1JBQ0xFX0ZBTFNFPQotK2ZpCi0rCi0rI09SQUNMRV9ESVJTPSJvcmFjbGUiCi0r Ci0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jl c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsg IGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs PXllcwotKyAgICAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8K LSsKLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAi eHllcyI7IHRoZW4KLSsgICBQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rICAgUE9TVEdS RVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1w b3N0Z3Jlc3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9 IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9wb3N0Z3Jlc3FsOwotKwlQT1NUR1JFU1FMX2lu Y19jaGVjaz0iJHdpdGhfcG9zdGdyZXNxbC9pbmNsdWRlIgotKyAgICAgICAgaWYgdGVzdCAiJHdp dGh2YWwiID0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCi0r ICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAg d2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgd2FudF9w b3N0Z3Jlc3FsPSJ5ZXMiCi0rICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKLSsgICAg ICAgIGZpCi0rCi0rZWxzZQotKyAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBPU1RHUkVTUUxf aW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgotKwotK2ZpCi0rCi0rCi0r ICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSIiCi0rICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iIgotKyAg ICBQT1NUR1JFU1FMX1BPU1RHUkVTUUw9IiIKLSsKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfcG9z dGdyZXNxbCIgPSAieWVzIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAteiAiJFBHX0NPTkZJ RyIgLW8gdGVzdDsgdGhlbgotKyAgICAgICAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBv ZiAicGdfY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStz ZXQgZHVtbXkgcGdfY29uZmlnOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX1BHX0NPTkZJRytz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBjYXNlICRQR19DT05GSUcgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNfY3ZfcGF0 aF9QR19DT05GSUc9IiRQR19DT05GSUciICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhfUEdfQ09ORklHPSIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgOzsKLStlc2FjCi0r ZmkKLStQR19DT05GSUc9JGFjX2N2X3BhdGhfUEdfQ09ORklHCi0raWYgdGVzdCAtbiAiJFBHX0NP TkZJRyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQR19D T05GSUciID4mNQotKyRhc19lY2hvICIkUEdfQ09ORklHIiA+JjY7IH0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLStmaQotKwotKwotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAi JFBHX0NPTkZJRyI7IHRoZW4KLSsgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBlcnJvcjogJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhl Y3R1YWJsZSBmaWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJFBHX0NPTkZJRyBk b2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0r ICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAg ICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsg ICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAg ICAgICMKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5Li4uICIgPiY2OyB9Ci0rICAgICAg ICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9Ci0rICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5j X2RpciBpbiAkUE9TVEdSRVNRTF9pbmNfY2hlY2sKLSsgICAgICAgICAgICBkbwotKyAgICAgICAg ICAgICAgICBpZiB0ZXN0IC1kICIkcG9zdGdyZXNxbF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAg ICAgICYmIHRlc3QgLWYgIiRwb3N0Z3Jlc3FsX2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCi0rICAg ICAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGly PSRwb3N0Z3Jlc3FsX2luY19kaXIKLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0rICAgICAg ICAgICAgICAgIGZpCi0rICAgICAgICAgICAgZG9uZQotKwotKyAgICAgICAgICAgIGlmIHRlc3Qg LXogIiRQT1NUR1JFU1FMX2luY2RpciIKLSsgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAg ICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUg UG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJyIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3FsIGluY2x1 ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgY2FzZSAiJFBP U1RHUkVTUUxfaW5jZGlyIiBpbgotKyAgICAgICAgICAgICAgICAvKiApIDs7Ci0rICAgICAgICAg ICAgICAgICogKSAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFRoZSBQb3N0 Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4g YWJzb2x1dGUgcGF0aC4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgUG9zdGdy ZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSAoJFBPU1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFi c29sdXRlIHBhdGguIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAg ICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkUE9TVEdSRVNRTF9pbmNkaXIiID4mNQotKyRhc19lY2hvICIkUE9TVEdSRVNR TF9pbmNkaXIiID4mNjsgfQotKwotKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2lu Y2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9D RkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NG TEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAg ICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIK LSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9u IHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxc X0FDRU9GCi0rI2RlZmluZSBIQVZFX1BPU1RHUkVTUUwgMQotK19BQ0VPRgotKwotKwotKyAgICAg ICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAg ICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0r ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9JFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04KLSsKLSsg ICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVzcWwiID0gInllcyIgLWEgLW4gIiRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGlmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJz aW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9u IGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9Ci0rCi0rICAgICAgICAg ICAgICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5c KFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIg JHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAot KyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvIiA9ICJ4Ijsg dGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAg ICAgICBmaQotKwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIg JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taW5vciBc KiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxX21pY3JvYAotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rn cmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1woWzAtOV0q XCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRQT1NUR1JFU1FM X1ZFUlNJT04gOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5c KFswLTldKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv IiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIK LSsgICAgICAgIGZpCi0rCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHBy ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVy c2lvbl9taWNyb2AKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAk cG9zdGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251 bWJlcmAKLSsgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEi OyB0aGVuCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog eWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsgICAgICAgIGVsc2UKLSsgICAgICAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2Vj aG8gIm5vIiA+JjY7IH0KLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rCi0rCi0rZmkK LSsgaWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7IHRoZW4KLSsg IEhBVkVfUE9TVEdSRVNRTF9UUlVFPQotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPScjJwotK2Vs c2UKLSsgIEhBVkVfUE9TVEdSRVNRTF9UUlVFPScjJwotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNF PQotK2ZpCi0rCi0rI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLSsKLSsKLSsKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotKyNBQ19DSEVDS19QUk9H KFt0ZXhpbmZvX29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKLSsjaWYgdGVzdCAieCRlbmFi bGVfaW5mb19kb2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHll cyAmJiBlbmFibGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0s IFtdKQotKyNmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzOyB0aGVuCi0r ICBJTkZPX0RPQ19UUlVFPQotKyAgSU5GT19ET0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgSU5GT19E T0NfVFJVRT0nIycKLSsgIElORk9fRE9DX0ZBTFNFPQotK2ZpCi0rCi0rCi0rIyBDaGVja3MgZm9y IGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2Yg ImRveHlnZW4iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSBkb3h5Z2VuOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2RveHlnZW5fb2src2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2RveHlnZW5fb2s9IiRk b3h5Z2VuX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgK LStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wcm9nX2RveHlnZW5fb2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19j dl9wcm9nX2RveHlnZW5fb2siICYmIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0ibm8iCi0rZmkKLStm aQotK2RveHlnZW5fb2s9JGFjX2N2X3Byb2dfZG94eWdlbl9vawotK2lmIHRlc3QgLW4gIiRkb3h5 Z2VuX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGRv eHlnZW5fb2siID4mNQotKyRhc19lY2hvICIkZG94eWdlbl9vayIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxhdGV4 Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgbGF0 ZXg7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfbGF0ZXhfb2src2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGxh dGV4X29rIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19sYXRleF9vaz0iJGxhdGV4X29rIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2xhdGV4X29rPSJ5 ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19sYXRleF9vayIgJiYg YWNfY3ZfcHJvZ19sYXRleF9vaz0ibm8iCi0rZmkKLStmaQotK2xhdGV4X29rPSRhY19jdl9wcm9n X2xhdGV4X29rCi0raWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxhdGV4X29rIiA+JjUKLSskYXNfZWNobyAiJGxhdGV4 X29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiZHZpcHMiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSBkdmlwczsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kdmlw c19vaytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBpZiB0ZXN0IC1uICIkZHZpcHNfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2R2aXBz X29rPSIkZHZpcHNfb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UK LSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAg IGFjX2N2X3Byb2dfZHZpcHNfb2s9InllcyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgot KyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRh Y19jdl9wcm9nX2R2aXBzX29rIiAmJiBhY19jdl9wcm9nX2R2aXBzX29rPSJubyIKLStmaQotK2Zp Ci0rZHZpcHNfb2s9JGFjX2N2X3Byb2dfZHZpcHNfb2sKLStpZiB0ZXN0IC1uICIkZHZpcHNfb2si OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHZpcHNfb2si ID4mNQotKyRhc19lY2hvICIkZHZpcHNfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQot K2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJncyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdzOyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9wcm9nX2dzX29rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfZ3Nfb2s9IiRnc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0r ZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGly IGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K LSsgICAgYWNfY3ZfcHJvZ19nc19vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAi JGFjX2N2X3Byb2dfZ3Nfb2siICYmIGFjX2N2X3Byb2dfZ3Nfb2s9Im5vIgotK2ZpCi0rZmkKLStn c19vaz0kYWNfY3ZfcHJvZ19nc19vawotK2lmIHRlc3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRnc19vayIgPiY1Ci0rJGFzX2VjaG8g IiRnc19vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStpZiB0ZXN0 ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vOyB0aGVuCi0rICB0ZXN0ICJ4JGRveHlnZW5fb2si ICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4 eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAm JiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxl X2h0bWxfZG9jPW5vCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInBlcmwiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBwZXJsOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wYXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkUEVSTCBpbgotKyAgW1xcL10qIHwg PzpbXFwvXSopCi0rICBhY19jdl9wYXRoX1BFUkw9IiRQRVJMIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rICAqKQotKyAgYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BF Ukw9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJy ZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7Owot K2VzYWMKLStmaQotK1BFUkw9JGFjX2N2X3BhdGhfUEVSTAotK2lmIHRlc3QgLW4gIiRQRVJMIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFBFUkwiID4mNQot KyRhc19lY2hvICIkUEVSTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsK LStmaQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgPSB4eWVzOyB0aGVuCi0rICBIVE1M X0RPQ19UUlVFPQotKyAgSFRNTF9ET0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgSFRNTF9ET0NfVFJV RT0nIycKLSsgIEhUTUxfRE9DX0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayBmb3IgZGlm ZiBwcm9ncmFtIHVzZWQgZm9yIHRlc3RzCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJk aWZmIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkg ZGlmZjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19kaWZmX29rK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRk aWZmX29rIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19kaWZmX29rPSIkZGlmZl9vayIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19kaWZmX29rPSJ5ZXMi Ci0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19kaWZmX29rIiAmJiBhY19j dl9wcm9nX2RpZmZfb2s9Im5vIgotK2ZpCi0rZmkKLStkaWZmX29rPSRhY19jdl9wcm9nX2RpZmZf b2sKLStpZiB0ZXN0IC1uICIkZGlmZl9vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRkaWZmX29rIiA+JjUKLSskYXNfZWNobyAiJGRpZmZfb2siID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJzZWQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3Nl dCBkdW1teSBzZWQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfc2VkX29rK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3Qg LW4gIiRzZWRfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX3NlZF9vaz0iJHNlZF9vayIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19zZWRfb2s9Inll cyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX3NlZF9vayIgJiYgYWNf Y3ZfcHJvZ19zZWRfb2s9Im5vIgotK2ZpCi0rZmkKLStzZWRfb2s9JGFjX2N2X3Byb2dfc2VkX29r Ci0raWYgdGVzdCAtbiAiJHNlZF9vayI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRzZWRfb2siID4mNQotKyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KLStl bHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2VuYWJsZV90ZXN0cz15ZXMKLSt0ZXN0ICJ4 JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rdGVzdCAieCRzZWRfb2siICE9 IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rIGlmIHRlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5 ZXM7IHRoZW4KLSsgIFJVTl9URVNUU19UUlVFPQotKyAgUlVOX1RFU1RTX0ZBTFNFPScjJwotK2Vs c2UKLSsgIFJVTl9URVNUU19UUlVFPScjJwotKyAgUlVOX1RFU1RTX0ZBTFNFPQotK2ZpCi0rCi0r Ci0rCi0rIyBDaGVja3MgZm9yIGhlYWRlciBmaWxlcwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiB0ZXN0 ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsj aW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1ZGUgPGZsb2F0Lmg+Ci0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4 dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKwlhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0r aWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0 cmluZy5oIGRvZXMgbm90IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5o PgotKwotK19BQ0VPRgotK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1 IHwKLSsgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNl Ci0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkK LSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4w LjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3Rk bGliLmg+Ci0rCi0rX0FDRU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIp IDI+JjUgfAotKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStl bHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0r ZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmlu L2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5n IC1hbnNpLgotKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoK LStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBG RikgPT0gMHgwMjApCi0rIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0g J3onKQotKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2En KSA6IChjKSkKLSsjZWxzZQotKyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0g KGMpICYmIChjKSA8PSAnaScpIFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdy JykgXAotKwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBU T1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwot KyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsgIGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQot KyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkp ICE9IFRPVVBQRVIgKGkpKQotKyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi Ci0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4 ZWV4dCcKLSsgIHsgKGNhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUK LSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0 YXR1cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVz ICkKLSthY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLSty bSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwot KwotK2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zf aGVhZGVyX3N0ZGMiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQot K2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkK LSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aW1lLmgg YW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgdGltZS5oIGFuZCBzeXMvdGltZS5oIG1heSBib3RoIGJlIGluY2x1ZGVk Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9oZWFkZXJfdGltZStzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K LSsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSsjaW5jbHVkZSA8dGltZS5oPgotKwotK2ludAotK21h aW4gKCkKLSt7Ci0raWYgKChzdHJ1Y3QgdG0gKikgMCkKLStyZXR1cm4gMDsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j b21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfaGVh ZGVyX3RpbWU9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19j dl9oZWFkZXJfdGltZT1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNQotKyRhc19lY2hvICIkYWNf Y3ZfaGVhZGVyX3RpbWUiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl90aW1lID0geWVz OyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLStmb3IgYWNfaGVhZGVyIGluIGNtYXRoIFwKLSsgIGRlcXVlIFwK LSsgIGZzdHJlYW0gXAotKyAgaW9tYW5pcCBcCi0rICBpb3N0cmVhbSBcCi0rICBzc3RyZWFtIFwK LSsgIGxpbWl0cyBcCi0rICBsaXN0IFwKLSsgIHNldCBcCi0rICB2ZWN0b3IgXAotKyAgbWFwIFwK LSsgIHF1ZXVlIFwKLSsgIHN0ZGV4Y2VwdCBcCi0rICBzdHJpbmcKLStkbwotK2FzX2FjX0hlYWRl cj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLStpZiB7 IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBz ZXQiOyB9OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY19oZWFkZXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4u ICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRh c192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRh c19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rZWxzZQot KyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eS4uLiAiID4mNjsgfQotK2NhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSsjaW5jbHVk ZSA8JGFjX2hlYWRlcj4KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRh Y19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQot KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgot KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfaGVh ZGVyX2NvbXBpbGVyPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJ YWNfaGVhZGVyX2NvbXBpbGVyPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLSskYXNfZWNobyAiJGFj X2hlYWRlcl9jb21waWxlciIgPiY2OyB9Ci0rCi0rIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2Ui ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gIiA+JjY7 IH0KLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRl IDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4k YWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwot K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4k YWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsK LSsJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVuCi0rICBhY19o ZWFkZXJfcHJlcHJvYz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r ICBhY19oZWFkZXJfcHJlcHJvYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19leHQKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVh ZGVyX3ByZXByb2MiID4mNQotKyRhc19lY2hvICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQot KwotKyMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotK2Nhc2UgJGFjX2hlYWRlcl9jb21w aWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbgotKyAg eWVzOm5vOiApCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNf aGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9j ZXNzb3IhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2Nl cHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7 fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjog cHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidz IHJlc3VsdCIgPiYyO30KLSsgICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi0rICAgIDs7Ci0rICBu bzp5ZXM6KiApCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNf aGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxl ZCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19o ZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQot KyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlz c2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50 YXRpb24iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0 aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQg Q2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRh Y19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIi ID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVh ZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBw cmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2ls bCB0YWtlIHByZWNlZGVuY2UiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19o ZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIg PiYyO30KLSsgICAgKCBjYXQgPDxcX0FTQk9YCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgUmVwb3J0IHRoaXMgdG8gbXNvYmN6YWtAdXNl cnMuc291cmNlZm9yZ2UubmV0ICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICMjCi0rX0FTQk9YCi0rICAgICApIHwgc2VkICJzL14vJGFzX21lOiBX QVJOSU5HOiAgICAgLyIgPiYyCi0rICAgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVy OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRh Y19oZWFkZXJfcHJlcHJvYyIKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19I ZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIg PiY2OyB9Ci0rCi0rZmkKLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30K LSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInll czsgdGhlbgotKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgYCRhc19lY2hv ICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0r ZG9uZQotKwotKwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQgZmlsZXMKLSthY19jb25maWdfZmls ZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNw ZWMgc29jaS9NYWtlZmlsZSBzb2NpL2NvcmUvTWFrZWZpbGUgc29jaS9jb3JlL3Rlc3QvTWFrZWZp bGUgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIHNv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv TWFrZWZpbGUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUgc29jaS9iYWNr ZW5kcy9vcmFjbGUvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSBt YW4vTWFrZWZpbGUgZG9jL01ha2VmaWxlIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSBidWlsZC9NYWtl ZmlsZSBidWlsZC91bml4L01ha2VmaWxlIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSBidWlsZC9tc3Zj ODAvZGxsL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiCi0rCi0rCi0rY2F0ID5j b25mY2FjaGUgPDxcX0FDRU9GCi0rIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBj YWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi0rIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0 ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCi0rIyBzY3JpcHRzIGFu ZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4K LSsjIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4gIElmIGl0IGNvbnRhaW5zIHJl c3VsdHMgeW91IGRvbid0Ci0rIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQg aXQuCi0rIwotKyMgY29uZmlnLnN0YXR1cyBvbmx5IHBheXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNo ZSBmaWxlIGlmIHlvdSBnaXZlIGl0Ci0rIyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBj b25maWd1cmUuCi0rIwotKyMgYGFjX2N2X2Vudl9mb28nIHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0 KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgotKyMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1 bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKLSsjIGZvbGxvd2luZyB2YWx1 ZXMuCi0rCi0rX0FDRU9GCi0rCi0rIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBj YWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKLSsjIGJ1dCB3ZSBrbm93IG9mIG5v IHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgotKyMg U28sIHdlIGtpbGwgdmFyaWFibGVzIGNvbnRhaW5pbmcgbmV3bGluZXMuCi0rIyBVbHRyaXggc2gg c2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCi0r IyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2ln biB0byB0aGUgdmFycy4KLSsoCi0rICBmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1u ICdzL15cKFthLXpBLVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ2A7IGRvCi0rICAgIGV2YWwg YWNfdmFsPVwkJGFjX3ZhcgotKyAgICBjYXNlICRhY192YWwgaW4gIygKLSsgICAgKiR7YXNfbmx9 KikKLSsgICAgICBjYXNlICRhY192YXIgaW4gIygKLSsgICAgICAqX2N2XyopIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5z IGEgbmV3bGluZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFi bGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7Ci0rICAgICAgZXNhYwotKyAg ICAgIGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKLSsg ICAgICBCQVNIX0FSR1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAotKyAgICAg ICopICRhc191bnNldCAkYWNfdmFyIDs7Ci0rICAgICAgZXNhYyA7OwotKyAgICBlc2FjCi0rICBk b25lCi0rCi0rICAoc2V0KSAyPiYxIHwKLSsgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsg c2V0KSAyPiYxYCBpbiAjKAotKyAgICAqJHthc19ubH1hY19zcGFjZT1cICopCi0rICAgICAgIyBg c2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90 ZQotKyAgICAgICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJu cyBcXCBpbnRvIFwpLgotKyAgICAgIHNlZCAtbiBcCi0rCSJzLycvJ1xcXFwnJy9nOwotKwkgIHMv XlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9 J1xcMicvcCIKLSsgICAgICA7OyAjKAotKyAgICAqKQotKyAgICAgICMgYHNldCcgcXVvdGVzIGNv cnJlY3RseSBhcyByZXF1aXJlZCBieSBQT1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCi0rICAg ICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKLSsg ICAgICA7OwotKyAgICBlc2FjIHwKLSsgICAgc29ydAotKykgfAotKyAgc2VkICcKLSsgICAgIC9e YWNfY3ZfZW52Xy9iIGVuZAotKyAgICAgdCBjbGVhcgotKyAgICAgOmNsZWFyCi0rICAgICBzL15c KFtePV0qXCk9XCguKlt7fV0uKlwpJC90ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCi0rICAg ICB0IGVuZAotKyAgICAgcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCi0rICAgICA6 ZW5kJyA+PmNvbmZjYWNoZQotK2lmIGRpZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYv bnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgIGlmIHRlc3QgLXcgIiRjYWNoZV9maWxlIjsgdGhl bgotKyAgICB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJgotKyAgICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogdXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0r ICAgIGNhdCBjb25mY2FjaGUgPiRjYWNoZV9maWxlCi0rICBlbHNlCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmls ZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUg JGNhY2hlX2ZpbGUiID4mNjt9Ci0rICBmaQotK2ZpCi0rcm0gLWYgY29uZmNhY2hlCi0rCi0rdGVz dCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotKyMgTGV0 IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4LgotK3Rlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUg JiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLSsKLStERUZTPS1ESEFWRV9DT05GSUdfSAotKwot K2FjX2xpYm9ianM9Ci0rYWNfbHRsaWJvYmpzPQotK2ZvciBhY19pIGluIDogJExJQk9CSlM7IGRv IHRlc3QgIngkYWNfaSIgPSB4OiAmJiBjb250aW51ZQotKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVu c2lvbiwgYW5kICRVIGlmIGFscmVhZHkgaW5zdGFsbGVkLgotKyAgYWNfc2NyaXB0PSdzL1wkVVwu Ly4vO3MvXC5vJC8vO3MvXC5vYmokLy8nCi0rICBhY19pPWAkYXNfZWNobyAiJGFjX2kiIHwgc2Vk ICIkYWNfc2NyaXB0ImAKLSsgICMgMi4gUHJlcGVuZCBMSUJPQkpESVIuICBXaGVuIHVzZWQgd2l0 aCBhdXRvbWFrZT49MS4xMCBMSUJPQkpESVIKLSsgICMgICAgd2lsbCBiZSBzZXQgdG8gdGhlIGRp cmVjdG9yeSB3aGVyZSBMSUJPQkpTIG9iamVjdHMgYXJlIGJ1aWx0LgotKyAgYWNfbGlib2Jqcz0i JGFjX2xpYm9ianMgXCR7TElCT0JKRElSfSRhY19pXCRVLiRhY19vYmpleHQiCi0rICBhY19sdGxp Ym9ianM9IiRhY19sdGxpYm9ianMgXCR7TElCT0JKRElSfSRhY19pIickVS5sbycKLStkb25lCi0r TElCT0JKUz0kYWNfbGlib2JqcwotKwotK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCi0rCi0rCi0r aWYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9DUFBV TklUX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb25kaXRpb25hbCBcIkhBVkVfQ1BQVU5JVFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFs bHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9DUFBVTklU XCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtB TURFUF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiQU1ERVBcIiB3YXMgbmV2ZXIg ZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg Y29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkK LStpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19m YXN0ZGVwQ1hYX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQu Ci0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9f ZmFzdGRlcENYWFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUg bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19UUlVF fSIgJiYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0Nc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIk e1NPQ0lfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9IRUFERVJTX0JV UklFRF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY29uZGl0aW9uYWwgXCJTT0NJX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQu Ci0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJ X0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGNvbmRpdGlvbmFsIFwiU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZp bmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwi U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYy O30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7U09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1h Y3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRFwi IHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SEFWRV9NWVNRTF9UUlVFfSIgJiYgdGVzdCAteiAi JHtIQVZFX01ZU1FMX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfTVlTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4K LStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9u YWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVf TVlTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3Jv IHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfT1JBQ0xFX1RSVUV9IiAmJiB0 ZXN0IC16ICIke0hBVkVfT1JBQ0xFX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVy IGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2Vk IGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9u YWwgXCJIQVZFX09SQUNMRVwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFu cyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JF U1FMX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfUE9TVEdSRVNRTF9GQUxTRX0iOyB0aGVuCi0r ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZF X1BPU1RHUkVTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhl IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfUE9TVEdSRVNRTFwiIHdhcyBuZXZlciBk ZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBj b25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQot K2lmIHRlc3QgLXogIiR7SU5GT19ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SU5GT19ET0NfRkFM U0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRp dGlvbmFsIFwiSU5GT19ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVh bnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRl ZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0r aWYgdGVzdCAteiAiJHtIVE1MX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtIVE1MX0RPQ19GQUxT RX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0 aW9uYWwgXCJIVE1MX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFu cyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStp ZiB0ZXN0IC16ICIke1JVTl9URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFM U0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRp dGlvbmFsIFwiUlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIg ZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg Y29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkK LSsKLSs6ICR7Q09ORklHX1NUQVRVUz0uL2NvbmZpZy5zdGF0dXN9Ci0rYWNfd3JpdGVfZmFpbD0w Ci0rYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSthY19jbGVhbl9maWxlcz0i JGFjX2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogY3Jl YXRpbmcgJENPTkZJR19TVEFUVVMiID4mNjt9Ci0rY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKLSsjISAkU0hFTEwKLSsjIEdlbmVyYXRlZCBieSAkYXNfbWUu Ci0rIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24u Ci0rIyBDb21waWxlciBvdXRwdXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRl YnVnZ2luZwotKyMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLSsK LStkZWJ1Zz1mYWxzZQotK2FjX2NzX3JlY2hlY2s9ZmFsc2UKLSthY19jc19zaWxlbnQ9ZmFsc2UK LStTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQotK19BQ0VPRgotKwotK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsjIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKLSsjIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKLSsKLSsjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUKLStEVUFMQ0FT RT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVS U0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBlbXVs YXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29y ZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIg dXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSci JEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAy Pi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsKLStm aQotKwotKwotKwotKwotKyMgUEFUSCBuZWVkcyBDUgotKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24g Q2hhcmFjdGVyIFJhbmdlcy4KLSthc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2 d3h5eicKLSthc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKLSthc19j cl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLSthc19jcl9kaWdpdHM9JzAx MjM0NTY3ODknCi0rYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCi0rCi0r YXNfbmw9JwotKycKLStleHBvcnQgYXNfbmwKLSsjIFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jh c2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgotK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCi0rYXNfZWNobz0kYXNfZWNobyRhc19l Y2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0rYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFz X2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KLStpZiAodGVzdCAiWGBwcmludGYgJXMgJGFz X2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJp bnRmICVzXG4nCi0rICBhc19lY2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJY YCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNf ZWNobyI7IHRoZW4KLSsgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQx JGFzX25sIicKLSsgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwotKyAgZWxzZQotKyAg ICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19l Y2hvX25fYm9keT0nZXZhbAotKyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4KLSsg ICAgICAqIiRhc19ubCIqKQotKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKLSsJ YXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2FjOwot KyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsgICAg JwotKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAkYXNf ZWNob19uX2JvZHkgYXNfZWNobycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0rICBh c19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1c2Vy IGlzIGFsd2F5cyByaWdodC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNl dDsgdGhlbgotKyAgUEFUSF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRI PSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2Jpbjov YmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAgIFBB VEhfU0VQQVJBVE9SPSc7JwotKyAgfQotK2ZpCi0rCi0rIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9z c2libGUuCi0raWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAy PiYxOyB0aGVuCi0rICBhc191bnNldD11bnNldAotK2Vsc2UKLSsgIGFzX3Vuc2V0PWZhbHNlCi0r ZmkKLSsKLSsKLSsjIElGUwotKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4g cHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCi0rIyB0aGVyZSB0byBwcmV2ZW50IGVk aXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFjZS10YWIuCi0rIyAoSWYgX0FTX1BBVEhf V0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCi0r IyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQotK0lGUz0iICIiCSRh c19ubCIKLSsKLSsjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29u dGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgotK2Nhc2UgJDAgaW4KLSsgICpbXFwvXSogKSBh c19teXNlbGY9JDAgOzsKLSsgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBh c19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rICAgICA7OwotK2VzYWMKLSsjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJv YmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0rIyBpbiB3aGljaCBjYXNlIHdlIGFy ZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCi0raWYgdGVzdCAieCRhc19teXNlbGYiID0g eDsgdGhlbgotKyAgYXNfbXlzZWxmPSQwCi0rZmkKLStpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYi OyB0aGVuCi0rICAkYXNfZWNobyAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2Vs ZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUiID4mMgotKyAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9Ci0rZmkKLSsKLSsjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtz aC4KLStmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1BSUxQQVRICi0rZG8gKCRhc191bnNldCAkYXNf dmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKLStkb25lCi0rUFMxPSck ICcKLStQUzI9Jz4gJwotK1BTND0nKyAnCi0rCi0rIyBOTFMgbnVpc2FuY2VzLgotK0xDX0FMTD1D Ci0rZXhwb3J0IExDX0FMTAotK0xBTkdVQUdFPUMKLStleHBvcnQgTEFOR1VBR0UKLSsKLSsjIFJl cXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KLStpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwg Mj4mMSAmJgotKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0 aGVuCi0rICBhc19leHByPWV4cHIKLStlbHNlCi0rICBhc19leHByPWZhbHNlCi0rZmkKLSsKLStp ZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0g LyAyPiYxYCIgPSAiWC8iOyB0aGVuCi0rICBhc19iYXNlbmFtZT1iYXNlbmFtZQotK2Vsc2UKLSsg IGFzX2Jhc2VuYW1lPWZhbHNlCi0rZmkKLSsKLSsKLSsjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUu Ci0rYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4cHIgWC8iJDAiIDogJy4q L1woW14vXVteL10qXCkvKiQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBY IiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYLyIkMCIgfAot KyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0r CSAgcy8uKi8uLzsgcSdgCi0rCi0rIyBDRFBBVEguCi0rJGFzX3Vuc2V0IENEUEFUSAotKwotKwot KwotKyAgYXNfbGluZW5vXzE9JExJTkVOTwotKyAgYXNfbGluZW5vXzI9JExJTkVOTwotKyAgdGVz dCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0rICB0ZXN0ICJ4YGV4cHIg JGFzX2xpbmVub18xICsgMWAiID0gIngkYXNfbGluZW5vXzIiIHx8IHsKLSsKLSsgICMgQ3JlYXRl ICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8K LSsgICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAn c2VkJyBpbnNlcnRzIGEKLSsgICMgbGluZS1udW1iZXIgbGluZSBhZnRlciBlYWNoIGxpbmUgdXNp bmcgJExJTkVOTzsgdGhlIHNlY29uZCAnc2VkJwotKyAgIyBkb2VzIHRoZSByZWFsIHdvcmsuICBU aGUgc2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2gKLSsgICMgbGluZS1udW1iZXIg bGluZSB3aXRoIHRoZSBsaW5lIGNvbnRhaW5pbmcgJExJTkVOTywgYW5kIGFwcGVuZHMKLSsgICMg dHJhaWxpbmcgJy0nIGR1cmluZyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBh IHNwZWNpYWwKLSsgICMgY2FzZSBhdCBsaW5lIGVuZC4KLSsgICMgKFJhamEgUiBIYXJpbmF0aCBz dWdnZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQotKyAgIyBzY3JpcHRz IHdpdGggb3B0aW1pemF0aW9uIGhlbHAgZnJvbSBQYW9sbyBCb256aW5pLiAgQmxhbWUgTGVlCi0r ICAjIEUuIE1jTWFob24gKDE5MzEtMTk4OSkgZm9yIHNlZCdzIHN5bnRheC4gIDotKQotKyAgc2Vk IC1uICcKLSsgICAgcAotKyAgICAvWyRdTElORU5PLz0KLSsgICcgPCRhc19teXNlbGYgfAotKyAg ICBzZWQgJwotKyAgICAgIHMvWyRdTElORU5PLiovJi0vCi0rICAgICAgdCBsaW5lbm8KLSsgICAg ICBiCi0rICAgICAgOmxpbmVubwotKyAgICAgIE4KLSsgICAgICA6bG9vcAotKyAgICAgIHMvWyRd TElORU5PXChbXickYXNfY3JfYWxudW0nX10uKlxuXClcKC4qXCkvXDJcMVwyLwotKyAgICAgIHQg bG9vcAotKyAgICAgIHMvLVxuLiovLwotKyAgICAnID4kYXNfbWUubGluZW5vICYmCi0rICBjaG1v ZCAreCAiJGFzX21lLmxpbmVubyIgfHwKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4m MgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotKyAgIyBEb24ndCB0cnkgdG8gZXhl YyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKLSsgICMg KHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5k IHRoZQotKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNl bnNpdGl2ZSB0byB0aGlzKS4KLSsgIC4gIi4vJGFzX21lLmxpbmVubyIKLSsgICMgRXhpdCBzdGF0 dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotKyAgZXhpdAotK30KLSsKLSsKLStpZiAo YXNfZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgkYXNfZGlyIiA9IFgvKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4KLSsgIGFzX2Rpcm5hbWU9ZGlybmFtZQotK2Vsc2UKLSsgIGFzX2Rpcm5hbWU9 ZmFsc2UKLStmaQotKwotK0VDSE9fQz0gRUNIT19OPSBFQ0hPX1Q9Ci0rY2FzZSBgZWNobyAtbiB4 YCBpbgotKy1uKikKLSsgIGNhc2UgYGVjaG8gJ3hcYydgIGluCi0rICAqYyopIEVDSE9fVD0nCSc7 OwkjIEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KLSsgICopICAgRUNIT19DPSdcYyc7 OwotKyAgZXNhYzs7Ci0rKikKLSsgIEVDSE9fTj0nLW4nOzsKLStlc2FjCi0raWYgZXhwciBhIDog J1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipc KC4uLlwpJ2AiID0gWDAwMTsgdGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxzZQotKyAgYXNfZXhw cj1mYWxzZQotK2ZpCi0rCi0rcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKLStp ZiB0ZXN0IC1kIGNvbmYkJC5kaXI7IHRoZW4KLSsgIHJtIC1mIGNvbmYkJC5kaXIvY29uZiQkLmZp bGUKLStlbHNlCi0rICBybSAtZiBjb25mJCQuZGlyCi0rICBta2RpciBjb25mJCQuZGlyIDI+L2Rl di9udWxsCi0rZmkKLStpZiAoZWNobyA+Y29uZiQkLmZpbGUpIDI+L2Rldi9udWxsOyB0aGVuCi0r ICBpZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNf bG5fcz0nbG4gLXMnCi0rICAgICMgLi4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6Ci0rICAg ICMgMSkgT24gTVNZUywgYm90aCBgbG4gLXMgZmlsZSBkaXInIGFuZCBgbG4gZmlsZSBkaXInIGZh aWwuCi0rICAgICMgMikgREpHUFAgPCAyLjA0IGhhcyBubyBzeW1saW5rczsgYGxuIC1zJyBjcmVh dGVzIGEgd3JhcHBlciBleGVjdXRhYmxlLgotKyAgICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUg dG8gZGVmYXVsdCB0byBgY3AgLXAnLgotKyAgICBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQuZGly IDI+L2Rldi9udWxsICYmIHRlc3QgISAtZiBjb25mJCQuZXhlIHx8Ci0rICAgICAgYXNfbG5fcz0n Y3AgLXAnCi0rICBlbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgot KyAgICBhc19sbl9zPWxuCi0rICBlbHNlCi0rICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZmkKLStl bHNlCi0rICBhc19sbl9zPSdjcCAtcCcKLStmaQotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNv bmYkJC5kaXIvY29uZiQkLmZpbGUgY29uZiQkLmZpbGUKLStybWRpciBjb25mJCQuZGlyIDI+L2Rl di9udWxsCi0rCi0raWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfbWtkaXJf cD06Ci0rZWxzZQotKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKLSsgIGFzX21rZGlyX3A9 ZmFsc2UKLStmaQotKwotK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFz X3Rlc3RfeD0ndGVzdCAteCcKLStlbHNlCi0rICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsgICAgYXNfbHNfTF9vcHRpb249TAotKyAgZWxzZQotKyAgICBhc19sc19MX29wdGlv bj0KLSsgIGZpCi0rICBhc190ZXN0X3g9JwotKyAgICBldmFsIHNoIC1jICdcJycKLSsgICAgICBp ZiB0ZXN0IC1kICIkMSI7IHRoZW4KLSsJdGVzdCAtZCAiJDEvLiI7Ci0rICAgICAgZWxzZQotKwlj YXNlICQxIGluCi0rCS0qKXNldCAiLi8kMSI7OwotKwllc2FjOwotKwljYXNlIGBscyAtbGQnJGFz X2xzX0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbgotKwk/Pz9bc3hdKik6OzsqKWZhbHNl Oztlc2FjO2ZpCi0rICAgICdcJycgc2gKLSsgICcKLStmaQotK2FzX2V4ZWN1dGFibGVfcD0kYXNf dGVzdF94Ci0rCi0rIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlk IENQUCBuYW1lLgotK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNf Y3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rIyBTZWQgZXhwcmVzc2lv biB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi0rYXNfdHJfc2g9 ImV2YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLSsKLStleGVj IDY+JjEKLSsKLSsjIFNhdmUgdGhlIGxvZyBtZXNzYWdlLCB0byBrZWVwICRbMF0gYW5kIHNvIG9u IG1lYW5pbmdmdWwsIGFuZCB0bwotKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09O RklHX0ZJTEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgotKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMg aGFuZGxpbmcuCi0rYWNfbG9nPSIKLStUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFz X21lIDMuMC4wLCB3aGljaCB3YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJ bnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLSsKLSsgIENPTkZJR19GSUxFUyAgICA9ICRDT05G SUdfRklMRVMKLSsgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotKyAgQ09ORklH X0xJTktTICAgID0gJENPTkZJR19MSU5LUwotKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19D T01NQU5EUwotKyAgJCAkMCAkQAotKwotK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rl di9udWxsIHwgc2VkIDFxYAotKyIKLSsKLStfQUNFT0YKLSsKLStjYXNlICRhY19jb25maWdfZmls ZXMgaW4gKiIKLSsiKikgc2V0IHggJGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19m aWxlcz0kKjs7Ci0rZXNhYwotKwotK2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCi0rIiop IHNldCB4ICRhY19jb25maWdfaGVhZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsK LStlc2FjCi0rCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVf ZmFpbD0xCi0rIyBGaWxlcyB0aGF0IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgotK2NvbmZp Z19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyIKLStjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19o ZWFkZXJzIgotK2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKLSsKLStfQUNF T0YKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rYWNfY3NfdXNhZ2U9IlwKLStcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVt cGxhdGVzIGFjY29yZGluZyB0byB0aGUKLStjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0rCi0rVXNh Z2U6ICQwIFtPUFRJT05dLi4uIFtGSUxFXS4uLgotKwotKyAgLWgsIC0taGVscCAgICAgICBwcmlu dCB0aGlzIGhlbHAsIHRoZW4gZXhpdAotKyAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJzaW9u IG51bWJlciBhbmQgY29uZmlndXJhdGlvbiBzZXR0aW5ncywgdGhlbiBleGl0Ci0rICAtcSwgLS1x dWlldCwgLS1zaWxlbnQKLSsgICAgICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNz IG1lc3NhZ2VzCi0rICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmls ZXMKLSsgICAgICAtLXJlY2hlY2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGlu IHRoZSBzYW1lIGNvbmRpdGlvbnMKLSsgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0rICAg ICAgICAgICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQot KyAgICAgIC0taGVhZGVyPUZJTEVbOlRFTVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0 YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQotKwotK0NvbmZpZ3VyYXRpb24g ZmlsZXM6Ci0rJGNvbmZpZ19maWxlcwotKwotK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKLSskY29u ZmlnX2hlYWRlcnMKLSsKLStDb25maWd1cmF0aW9uIGNvbW1hbmRzOgotKyRjb25maWdfY29tbWFu ZHMKLSsKLStSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKLSsKLStfQUNF T0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSth Y19jc192ZXJzaW9uPSJcXAotK1NPQ0kgY29uZmlnLnN0YXR1cyAzLjAuMAotK2NvbmZpZ3VyZWQg YnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42MywKLSsgIHdpdGggb3B0aW9ucyBc XCJgJGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxg XCRdL1xcXFwmL2cnYFxcIgotKwotK0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLStUaGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgotKwotK2FjX3B3ZD0nJGFj X3B3ZCcKLStzcmNkaXI9JyRzcmNkaXInCi0rSU5TVEFMTD0nJElOU1RBTEwnCi0rTUtESVJfUD0n JE1LRElSX1AnCi0rQVdLPSckQVdLJwotK3Rlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCi0rX0FD RU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9 MQotKyMgVGhlIGRlZmF1bHQgbGlzdHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lm eSBhbnkgZmlsZS4KLSthY19uZWVkX2RlZmF1bHRzPToKLSt3aGlsZSB0ZXN0ICQjICE9IDAKLStk bwotKyAgY2FzZSAkMSBpbgotKyAgLS0qPSopCi0rICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6 ICdYXChbXj1dKlwpPSdgCi0rICAgIGFjX29wdGFyZz1gZXhwciAiWCQxIiA6ICdYW149XSo9XCgu KlwpJ2AKLSsgICAgYWNfc2hpZnQ9OgotKyAgICA7OwotKyAgKikKLSsgICAgYWNfb3B0aW9uPSQx Ci0rICAgIGFjX29wdGFyZz0kMgotKyAgICBhY19zaGlmdD1zaGlmdAotKyAgICA7OwotKyAgZXNh YwotKwotKyAgY2FzZSAkYWNfb3B0aW9uIGluCi0rICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25z LgotKyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2gg fCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0rICAgIGFjX2NzX3JlY2hlY2s9OiA7OwotKyAgLS12ZXJz aW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12IHwg LVYgKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7Ci0rICAtLWRlYnVn IHwgLS1kZWJ1IHwgLS1kZWIgfCAtLWRlIHwgLS1kIHwgLWQgKQotKyAgICBkZWJ1Zz06IDs7Ci0r ICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotKyAgICAkYWNfc2hpZnQKLSsgICAgY2Fz ZSAkYWNfb3B0YXJnIGluCi0rICAgICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRh cmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7Ci0rICAgIGVzYWMKLSsgICAgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTICckYWNfb3B0YXJnJyIKLSsgICAgYWNfbmVlZF9kZWZhdWx0 cz1mYWxzZTs7Ci0rICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0rICAg ICRhY19zaGlmdAotKyAgICBjYXNlICRhY19vcHRhcmcgaW4KLSsgICAgKlwnKikgYWNfb3B0YXJn PWAkYXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsg ICAgZXNhYwotKyAgICBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTICckYWNfb3B0YXJn JyIKLSsgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0rICAtLWhlIHwgLS1oKQotKyAgICAj IENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotKyAgICB7ICRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotK1RyeSBcYCQwIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07Owot KyAgLS1oZWxwIHwgLS1oZWwgfCAtaCApCi0rICAgICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBl eGl0IDs7Ci0rICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUg fCAtLXEgXAotKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1z aWwgfCAtLXNpIHwgLS1zKQotKyAgICBhY19jc19zaWxlbnQ9OiA7OwotKwotKyAgIyBUaGlzIGlz IGFuIGVycm9yLgotKyAgLSopIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXpl ZCBvcHRpb246ICQxCi0rVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4m MgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKwotKyAgKikgYWNfY29uZmlnX3Rh cmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIKLSsgICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFs c2UgOzsKLSsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotKwotK2FjX2NvbmZpZ3VyZV9leHRy YV9hcmdzPQotKwotK2lmICRhY19jc19zaWxlbnQ7IHRoZW4KLSsgIGV4ZWMgNj4vZGV2L251bGwK LSsgIGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPSIkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1z aWxlbnQiCi0rZmkKLSsKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8 fCBhY193cml0ZV9mYWlsPTEKLStpZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4KLSsgIHNldCBYICck U0hFTEwnICckMCcgJGFjX2NvbmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3Mg LS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24KLSsgIHNoaWZ0Ci0rICBcJGFzX2VjaG8gInJ1bm5p bmcgQ09ORklHX1NIRUxMPSRTSEVMTCBcJCoiID4mNgotKyAgQ09ORklHX1NIRUxMPSckU0hFTEwn Ci0rICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICBleGVjICJcJEAiCi0rZmkKLSsKLStfQUNFT0YK LStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rZXhl YyA1Pj5jb25maWcubG9nCi0rewotKyAgZWNobwotKyAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMj IC87cy8uLi4kLyAjIy87cDt4O3A7eCcgPDxfQVNCT1gKLSsjIyBSdW5uaW5nICRhc19tZS4gIyMK LStfQVNCT1gKLSsgICRhc19lY2hvICIkYWNfbG9nIgotK30gPiY1Ci0rCi0rX0FDRU9GCi0rY2F0 ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIwotKyMgSU5J VC1DT01NQU5EUwotKyMKLStBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFj X2F1eF9kaXIiCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgotK2ZvciBh Y19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwotK2RvCi0rICBjYXNlICRhY19j b25maWdfdGFyZ2V0IGluCi0rICAgICJzb2NpL2NvbmZpZy5oIikgQ09ORklHX0hFQURFUlM9IiRD T05GSUdfSEVBREVSUyBzb2NpL2NvbmZpZy5oIiA7OwotKyAgICAiZGVwZmlsZXMiKSBDT05GSUdf Q09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0rICAgICJNYWtlZmlsZSIp IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSsgICAgInNvY2ktY29u ZmlnIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2ktY29uZmlnIiA7OwotKyAgICAi c29jaS5wYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLnBjIiA7OwotKyAgICAi c29jaS5zcGVjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kuc3BlYyIgOzsKLSsg ICAgInNvY2kvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9NYWtl ZmlsZSIgOzsKLSsgICAgInNvY2kvY29yZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBzb2NpL2NvcmUvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2NvcmUvdGVzdC9NYWtl ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUvdGVzdC9NYWtlZmls ZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMv bXlzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5k cy9teXNxbC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01h a2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSIg OzsKLSsgICAgInNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIgOzsK LSsgICAgIm1hbi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtYW4vTWFr ZWZpbGUiIDs7Ci0rICAgICJkb2MvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM RVMgZG9jL01ha2VmaWxlIiA7OwotKyAgICAiZG9jL2JhY2tlbmRzL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgImJ1 aWxkL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL01ha2VmaWxl IiA7OwotKyAgICAiYnVpbGQvdW5peC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBidWlsZC91bml4L01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2YzgwL01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9NYWtlZmlsZSIgOzsK LSsgICAgImJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf RklMRVMgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4MC9s aWIvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZSIgOzsKLSsKLSsgICopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rICBlc2FjCi0rZG9uZQotKwotKwot KyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRoZSBp dGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNl ZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSsjIFdlIHVzZSB0aGUgbG9uZyBmb3Jt IGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0rIyBi aXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KLStpZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgot KyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25m aWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09ORklH X0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0rICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9 IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwotK2ZpCi0rCi0rIyBI YXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRo ZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdhaW5z dCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotKyMgY3JlYXRpbmcgYW5kIG1vdmlu ZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSsjIEhvb2sg Zm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0rIyBOb3RlIHRoYXQgdGhlcmUgaXMg YSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVk OgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJlZW4gYXNz aWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8fAotK3sKLSsgIHRtcD0KLSsgIHRyYXAgJ2V4aXRf c3RhdHVzPSQ/Ci0rICB7IHRlc3QgLXogIiR0bXAiIHx8IHRlc3QgISAtZCAiJHRtcCIgfHwgcm0g LWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0YXR1cwotKycgMAotKyAgdHJhcCAneyAoZXhp dCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKLSt9Ci0rIyBDcmVhdGUgYSAoc2VjdXJlKSB0bXAg ZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0rCi0rewotKyAgdG1wPWAodW1hc2sgMDc3ICYmIG1r dGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4vZGV2L251bGxgICYmCi0rICB0ZXN0IC1uICIkdG1w IiAmJiB0ZXN0IC1kICIkdG1wIgotK30gIHx8Ci0rewotKyAgdG1wPS4vY29uZiQkLSRSQU5ET00K LSsgICh1bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQotK30gfHwKLSt7Ci0rICAgJGFzX2VjaG8g IiRhc19tZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCi0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rfQotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZv ciBDT05GSUdfRklMRVMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0 aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgotKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3 aXRoIGAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgnLgotK2lmIHRlc3QgLW4gIiRDT05GSUdfRklM RVMiOyB0aGVuCi0rCi0rCi0rYWNfY3I9Jw0nCi0rYWNfY3NfYXdrX2NyPWAkQVdLICdCRUdJTiB7 IHByaW50ICJhXHJiIiB9JyA8L2Rldi9udWxsIDI+L2Rldi9udWxsYAotK2lmIHRlc3QgIiRhY19j c19hd2tfY3IiID0gImEke2FjX2NyfWIiOyB0aGVuCi0rICBhY19jc19hd2tfY3I9J1xccicKLStl bHNlCi0rICBhY19jc19hd2tfY3I9JGFjX2NyCi0rZmkKLSsKLStlY2hvICdCRUdJTiB7JyA+IiR0 bXAvc3ViczEuYXdrIiAmJgotK19BQ0VPRgotKwotKwotK3sKLSsgIGVjaG8gImNhdCA+Y29uZiQk c3Vicy5hd2sgPDxfQUNFT0YiICYmCi0rICBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBzZWQgJ3Mv LiovJiEkJiRhY19kZWxpbS8nICYmCi0rICBlY2hvICJfQUNFT0YiCi0rfSA+Y29uZiQkc3Vicy5z aCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBt YWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQg bm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICckJ2AK LSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSBmYWxz ZSBmYWxzZSBmYWxzZSA6OyBkbwotKyAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKLSsgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RB VFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJ R19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rCi0rICBhY19k ZWxpbV9uPWBzZWQgLW4gInMvLiokYWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1YnMuYXdrIHwgZ3Jl cCAtYyBYYAotKyAgaWYgdGVzdCAkYWNfZGVsaW1fbiA9ICRhY19kZWxpbV9udW07IHRoZW4KLSsg ICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVT IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZWxzZQotKyAgICBhY19k ZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBfJGFjX2RlbGltISEgIgotKyAgZmkKLStkb25lCi0r cm0gLWYgY29uZiQkc3Vicy5zaAotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8 IGFjX3dyaXRlX2ZhaWw9MQotK2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8XFxfQUNBV0sgJiYK LStfQUNFT0YKLStzZWQgLW4gJwotK2gKLStzL14vU1siLzsgcy8hLiovIl09LwotK3AKLStnCi0r cy9eW14hXSohLy8KLSs6cmVwbAotK3QgcmVwbAotK3MvJyIkYWNfZGVsaW0iJyQvLwotK3QgZGVs aW0KLSs6bmwKLStoCi0rcy9cKC5cezE0OFx9XCkuKi9cMS8KLSt0IG1vcmUxCi0rcy9bIlxcXS9c XCYvZzsgcy9eLyIvOyBzLyQvXFxuIlxcLwotK3AKLStuCi0rYiByZXBsCi0rOm1vcmUxCi0rcy9b IlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBu bAotKzpkZWxpbQotK2gKLStzL1woLlx7MTQ4XH1cKS4qL1wxLwotK3QgbW9yZTIKLStzL1siXFxd L1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AKLStiCi0rOm1vcmUyCi0rcy9bIlxcXS9cXCYvZzsg cy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBkZWxpbQotKycgPGNv bmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlteIiJdL3sKLSsgIE4KLSsgIHMvXG4vLwotK30KLSsn ID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCi0rcm0gLWYgY29uZiQkc3Vicy5h d2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStf QUNBV0sKLStjYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgotKyAgZm9yIChrZXkg aW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rCi0rfQotK3sKLSsgIGxpbmUg PSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChsaW5lLCBmaWVsZCwgIkAiKQotKyAgc3Vic3RlZCA9 IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKLSsgIGZvciAoaSA9IDI7IGkgPCBuZmllbGRz OyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRbaV0KLSsgICAga2V5bGVuID0gbGVuZ3RoKGtleSkK LSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsKLSsgICAgICB2YWx1ZSA9IFNba2V5XQotKyAgICAg IGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJzdHIobGluZSwgbGVu ICsga2V5bGVuICsgMykKLSsgICAgICBsZW4gKz0gbGVuZ3RoKHZhbHVlKSArIGxlbmd0aChmaWVs ZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAxCi0rICAgIH0gZWxzZQotKyAgICAgIGxlbiArPSAx ICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmludCBsaW5lCi0rfQotKwotK19BQ0FXSwotK19BQ0VP RgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStp ZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsg IHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19jci8kYWNfY3NfYXdrX2NyL2ciCi0rZWxzZQotKyAg Y2F0Ci0rZmkgPCAiJHRtcC9zdWJzMS5hd2siID4gIiR0bXAvc3Vicy5hd2siIFwKLSsgIHx8IHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmln IGZpbGVzIG1hY2hpbmVyeSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v dCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotK19BQ0VPRgotKwotKyMgVlBBVEggbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBz b21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNkaXIpLAotKyMgJHtzcmNkaXJ9IGFuZCBAc3Jj ZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5kCi0rIyB0 cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQQVRIIGJl Y29tZXMgZW1wdHkKLSsjIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNl cnZlIGxpbmUgbnVtYmVycykuCi0raWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4KLSsgIGFj X3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj0vewotK3MvOipcJChzcmNkaXIpOiovOi8KLStzLzoq XCR7c3JjZGlyfToqLzovCi0rcy86KkBzcmNkaXJAOiovOi8KLStzL15cKFtePV0qPVsJIF0qXCk6 Ki9cMS8KLStzLzoqJC8vCi0rcy9eW149XSo9WwkgXSokLy8KLSt9JwotK2ZpCi0rCi0rY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2ZpICMgdGVzdCAt biAiJENPTkZJR19GSUxFUyIKLSsKLSsjIFNldCB1cCB0aGUgc2NyaXB0cyBmb3IgQ09ORklHX0hF QURFUlMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUg bm8gQ09ORklHX0hFQURFUlMuCi0rIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGggYC4v Y29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCi0raWYgdGVzdCAtbiAiJENPTkZJR19IRUFERVJTIjsg dGhlbgotK2NhdCA+IiR0bXAvZGVmaW5lcy5hd2siIDw8XF9BQ0FXSyB8fAotK0JFR0lOIHsKLStf QUNFT0YKLSsKLSsjIFRyYW5zZm9ybSBjb25mZGVmcy5oIGludG8gYW4gYXdrIHNjcmlwdCBgZGVm aW5lcy5hd2snLCBlbWJlZGRlZCBhcwotKyMgaGVyZS1kb2N1bWVudCBpbiBjb25maWcuc3RhdHVz LCB0aGF0IHN1YnN0aXR1dGVzIHRoZSBwcm9wZXIgdmFsdWVzIGludG8KLSsjIGNvbmZpZy5oLmlu IHRvIHByb2R1Y2UgY29uZmlnLmguCi0rCi0rIyBDcmVhdGUgYSBkZWxpbWl0ZXIgc3RyaW5nIHRo YXQgZG9lcyBub3QgZXhpc3QgaW4gY29uZmRlZnMuaCwgdG8gZWFzZQotKyMgaGFuZGxpbmcgb2Yg bG9uZyBsaW5lcy4KLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxz ZSBmYWxzZSA6OyBkbwotKyAgYWNfdD1gc2VkIC1uICIvJGFjX2RlbGltL3AiIGNvbmZkZWZzLmhg Ci0rICBpZiB0ZXN0IC16ICIkYWNfdCI7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xh c3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rICBlbHNlCi0rICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2Rl bGltIF8kYWNfZGVsaW0hISAiCi0rICBmaQotK2RvbmUKLSsKLSsjIEZvciB0aGUgYXdrIHNjcmlw dCwgRCBpcyBhbiBhcnJheSBvZiBtYWNybyB2YWx1ZXMga2V5ZWQgYnkgbmFtZSwKLSsjIGxpa2V3 aXNlIFAgY29udGFpbnMgbWFjcm8gcGFyYW1ldGVycyBpZiBhbnkuICBQcmVzZXJ2ZSBiYWNrc2xh c2gKLSsjIG5ld2xpbmUgc2VxdWVuY2VzLgotKwotK2FjX3dvcmRfcmU9W18kYXNfY3JfTGV0dGVy c11bXyRhc19jcl9hbG51bV0qCi0rc2VkIC1uICcKLStzLy5cezE0OFx9LyYnIiRhY19kZWxpbSIn L2cKLSt0IHJzZXQKLSs6cnNldAotK3MvXlsJIF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qLyAvCi0r dCBkZWYKLStkCi0rOmRlZgotK3MvXFwkLy8KLSt0IGJzbmwKLStzL1siXFxdL1xcJi9nCi0rcy9e IFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJcMiJc Ci0rRFsiXDEiXT0iIFwzIi9wCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClbCSBdKlwoLipcKS9E WyJcMSJdPSIgXDIiL3AKLStkCi0rOmJzbmwKLStzL1siXFxdL1xcJi9nCi0rcy9eIFwoJyIkYWNf d29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJcMiJcCi0rRFsiXDEi XT0iIFwzXFxcXFxcbiJcXC9wCi0rdCBjb250Ci0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClbCSBd KlwoLipcKS9EWyJcMSJdPSIgXDJcXFxcXFxuIlxcL3AKLSt0IGNvbnQKLStkCi0rOmNvbnQKLStu Ci0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCi0rdCBjbGVhcgotKzpjbGVhcgotK3MvXFwk Ly8KLSt0IGJzbmxjCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi9wCi0rZAotKzpic25s YwotK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kL1xcXFxcXG4iXFwvcAotK2IgY29udAotKycg PGNvbmZkZWZzLmggfCBzZWQgJwotK3MvJyIkYWNfZGVsaW0iJy8iXFxcCi0rIi9nJyA+PiRDT05G SUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8 X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgZm9yIChrZXkgaW4gRCkgRF9pc19zZXRba2V5 XSA9IDEKLSsgIEZTID0gIgciCi0rfQotKy9eW1x0IF0qI1tcdCBdKihkZWZpbmV8dW5kZWYpW1x0 IF0rJGFjX3dvcmRfcmUoW1x0IChdfFwkKS8gewotKyAgbGluZSA9IFwkIDAKLSsgIHNwbGl0KGxp bmUsIGFyZywgIiAiKQotKyAgaWYgKGFyZ1sxXSA9PSAiIyIpIHsKLSsgICAgZGVmdW5kZWYgPSBh cmdbMl0KLSsgICAgbWFjMSA9IGFyZ1szXQotKyAgfSBlbHNlIHsKLSsgICAgZGVmdW5kZWYgPSBz dWJzdHIoYXJnWzFdLCAyKQotKyAgICBtYWMxID0gYXJnWzJdCi0rICB9Ci0rICBzcGxpdChtYWMx LCBtYWMyLCAiKCIpICMpCi0rICBtYWNybyA9IG1hYzJbMV0KLSsgIHByZWZpeCA9IHN1YnN0cihs aW5lLCAxLCBpbmRleChsaW5lLCBkZWZ1bmRlZikgLSAxKQotKyAgaWYgKERfaXNfc2V0W21hY3Jv XSkgewotKyAgICAjIFByZXNlcnZlIHRoZSB3aGl0ZSBzcGFjZSBzdXJyb3VuZGluZyB0aGUgIiMi LgotKyAgICBwcmludCBwcmVmaXggImRlZmluZSIsIG1hY3JvIFBbbWFjcm9dIERbbWFjcm9dCi0r ICAgIG5leHQKLSsgIH0gZWxzZSB7Ci0rICAgICMgUmVwbGFjZSAjdW5kZWYgd2l0aCBjb21tZW50 cy4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSwKLSsgICAgIyBpbiB0aGUgY2FzZSBv ZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1aXJlZAotKyAgICAj IG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmlu ZSBpdC4KLSsgICAgaWYgKGRlZnVuZGVmID09ICJ1bmRlZiIpIHsKLSsgICAgICBwcmludCAiLyoi LCBwcmVmaXggZGVmdW5kZWYsIG1hY3JvLCAiKi8iCi0rICAgICAgbmV4dAotKyAgICB9Ci0rICB9 Ci0rfQotK3sgcHJpbnQgfQotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVT IDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5IiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFk ZXJzIG1hY2hpbmVyeSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaSAj IHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyIKLSsKLSsKLStldmFsIHNldCBYICIgIDpGICRDT05G SUdfRklMRVMgIDpIICRDT05GSUdfSEVBREVSUyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgotK3No aWZ0Ci0rZm9yIGFjX3RhZwotK2RvCi0rICBjYXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10pIGFj X21vZGU9JGFjX3RhZzsgY29udGludWU7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRhY190 YWcgaW4KLSsgIDpbRkhMXSo6Kik7OwotKyAgOkwqIHwgOkMqOiopIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW52YWxpZCB0YWcgJGFjX3RhZyIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH07OwotKyAgOltGSF0tKSBhY190YWc9LTotOzsKLSsgIDpbRkhdKikgYWNf dGFnPSRhY190YWc6JGFjX3RhZy5pbjs7Ci0rICBlc2FjCi0rICBhY19zYXZlX0lGUz0kSUZTCi0r ICBJRlM9OgotKyAgc2V0IHggJGFjX3RhZwotKyAgSUZTPSRhY19zYXZlX0lGUwotKyAgc2hpZnQK LSsgIGFjX2ZpbGU9JDEKLSsgIHNoaWZ0Ci0rCi0rICBjYXNlICRhY19tb2RlIGluCi0rICA6TCkg YWNfc291cmNlPSQxOzsKLSsgIDpbRkhdKQotKyAgICBhY19maWxlX2lucHV0cz0KLSsgICAgZm9y IGFjX2YKLSsgICAgZG8KLSsgICAgICBjYXNlICRhY19mIGluCi0rICAgICAgLSkgYWNfZj0iJHRt cC9zdGRpbiI7OwotKyAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhlIGJ1 aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCi0rCSAjIChpZiB0aGUgcGF0aCBpcyBu b3QgYWJzb2x1dGUpLiAgVGhlIGFic29sdXRlIHBhdGggY2Fubm90IGJlIERPUy1zdHlsZSwKLSsJ ICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicuCi0rCSB0ZXN0IC1mICIkYWNfZiIg fHwKLSsJICAgY2FzZSAkYWNfZiBpbgotKwkgICBbXFwvJF0qKSBmYWxzZTs7Ci0rCSAgICopIHRl c3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKLSsJICAgZXNh YyB8fAotKwkgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZp bmQgaW5wdXQgZmlsZTogJGFjX2YiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH07OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRhY19mIGluICpcJyopIGFjX2Y9YCRh c19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyBlc2FjCi0rICAgICAg YWNfZmlsZV9pbnB1dHM9IiRhY19maWxlX2lucHV0cyAnJGFjX2YnIgotKyAgICBkb25lCi0rCi0r ICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50 aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBz dXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBj b25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lucHV0PSdHZW5lcmF0ZWQgZnJvbSAn YAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0qL3x8O3N8OlteOl0qL3wsIHxnJwot KwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVu Ci0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICRjb25maWd1cmVfaW5wdXQiCi0r ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30KLSsgICAgZmkKLSsg ICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hhcmFjdGVycyBpbnRlcnByZXRlZCBieSBzZWQgaW4g cmVwbGFjZW1lbnQgc3RyaW5ncy4KLSsgICAgY2FzZSAkY29uZmlndXJlX2lucHV0IGluICMoCi0r ICAgICpcJiogfCAqXHwqIHwgKlxcKiApCi0rICAgICAgIGFjX3NlZF9jb25mX2lucHV0PWAkYXNf ZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAotKyAgICAgICBzZWQgJ3MvW1xcXFwmfF0vXFxcXCYv ZydgOzsgIygKLSsgICAgKikgYWNfc2VkX2NvbmZfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dDs7Ci0r ICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkYWNfdGFnIGluCi0rICAgICo6LToqIHwgKjotKSBjYXQg PiIkdG1wL3N0ZGluIiBcCi0rICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfSA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBhY19k aXI9YCRhc19kaXJuYW1lIC0tICIkYWNfZmlsZSIgfHwKLSskYXNfZXhwciBYIiRhY19maWxlIiA6 ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAnWFwo Ly9cKVteL10nIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRh Y19maWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhY19m aWxlIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAg ICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAg cy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8K LSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgeyBhc19kaXI9IiRhY19kaXIiCi0rICBjYXNl ICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMKLSsgIHRl c3QgLWQgIiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9 IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19k aXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQg InMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7Owot KyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAg IGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGly IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdY XCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIk YXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19k aXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwot KwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEK LSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJl YWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFz X2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLSsgIGFjX2J1aWxkZGlyPS4K LSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRp cl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyopCi0rICBhY19kaXJfc3VmZml4PS9g JGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAgIyBBICIuLiIgZm9y IGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9wX2J1aWxkZGlyX3N1 Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98 fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikgYWNfdG9wX2J1aWxk ZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNfdG9wX2J1aWxkX3By ZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVzYWMgOzsKLStlc2FjCi0rYWNfYWJz X3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19wd2QkYWNfZGlyX3N1 ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9wX2J1aWxkZGlyPSRh Y190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAuKSAgIyBXZSBhcmUg YnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFjX3RvcF9zcmNkaXI9 JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7Owot KyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9 JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKLSsgICAg YWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2ZSBuYW1lLgotKyAg ICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsg ICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKLSsgICAgYWNfYWJz X3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fic19zcmNkaXI9JGFj X2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsKLSsgIGNhc2UgJGFjX21vZGUgaW4K LSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklMRQotKyAgIwotKwotKyAgY2FzZSAkSU5TVEFM TCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwotKyAg KikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7Ci0rICBlc2FjCi0r ICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNlICRNS0RJUl9QIGluCi0rICBbXFwvJF0qIHwg PzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1L RElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxf QUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBJZiB0aGUgdGVtcGxhdGUgZG9lcyBub3Qga25v dyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgotKyMgRklYTUU6IFRoaXMgaGFjayBzaG91 bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgotK2FjX2RhdGFyb290ZGlyX2hh Y2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotKwotK2FjX3NlZF9kYXRhcm9vdD0nCi0rL2RhdGFy b290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0YWRpckAvcAotKy9AZG9jZGlyQC9wCi0r L0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsvQG1hbmRpckAvcAotKycKLStjYXNlIGBl dmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lucHV0cyJgIGluCi0r KmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OwotKypAZGF0YWRpckAqfCpA ZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAqKQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBp Z25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRhcm9vdGRp ciBzZXR0aW5nIiA+JjI7fQotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgYWNfZGF0YXJvb3RkaXJfaGFjaz0nCi0rICBzJkBkYXRh ZGlyQCYkZGF0YWRpciZnCi0rICBzJkBkb2NkaXJAJiRkb2NkaXImZwotKyAgcyZAaW5mb2RpckAm JGluZm9kaXImZwotKyAgcyZAbG9jYWxlZGlyQCYkbG9jYWxlZGlyJmcKLSsgIHMmQG1hbmRpckAm JG1hbmRpciZnCi0rICAgIHMmXFxcJHtkYXRhcm9vdGRpcn0mJGRhdGFyb290ZGlyJmcnIDs7Ci0r ZXNhYwotK19BQ0VPRgotKwotKyMgTmV1dHJhbGl6ZSBWUEFUSCB3aGVuIGAkc3JjZGlyJyA9IGAu Jy4KLSsjIFNoZWxsIGNvZGUgaW4gY29uZmlndXJlLmFjIG1pZ2h0IHNldCBleHRyYXN1Yi4KLSsj IEZJWE1FOiBkbyB3ZSByZWFsbHkgd2FudCB0byBtYWludGFpbiB0aGlzIGZlYXR1cmU/Ci0rY2F0 ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfc2VkX2V4 dHJhPSIkYWNfdnBzdWIKLSskZXh0cmFzdWIKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRV UyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rOnQKLSsvQFthLXpBLVpfXVthLXpBLVpf MC05XSpALyFiCi0rc3xAY29uZmlndXJlX2lucHV0QHwkYWNfc2VkX2NvbmZfaW5wdXR8O3QgdAot K3MmQHRvcF9idWlsZGRpckAmJGFjX3RvcF9idWlsZGRpcl9zdWImO3QgdAotK3MmQHRvcF9idWls ZF9wcmVmaXhAJiRhY190b3BfYnVpbGRfcHJlZml4Jjt0IHQKLStzJkBzcmNkaXJAJiRhY19zcmNk aXImO3QgdAotK3MmQGFic19zcmNkaXJAJiRhY19hYnNfc3JjZGlyJjt0IHQKLStzJkB0b3Bfc3Jj ZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYWJzX3RvcF9zcmNkaXJAJiRhY19hYnNfdG9w X3NyY2RpciY7dCB0Ci0rcyZAYnVpbGRkaXJAJiRhY19idWlsZGRpciY7dCB0Ci0rcyZAYWJzX2J1 aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0IHQKLStzJkBhYnNfdG9wX2J1aWxkZGlyQCYkYWNf YWJzX3RvcF9idWlsZGRpciY7dCB0Ci0rcyZASU5TVEFMTEAmJGFjX0lOU1RBTEwmO3QgdAotK3Mm QE1LRElSX1BAJiRhY19NS0RJUl9QJjt0IHQKLSskYWNfZGF0YXJvb3RkaXJfaGFjawotKyIKLStl dmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1mICIk dG1wL3N1YnMuYXdrIiA+JHRtcC9vdXQgXAotKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotK3Rlc3QgLXogIiRhY19kYXRhcm9vdGRpcl9oYWNrJGFj X2RhdGFyb290ZGlyX3NlZW4iICYmCi0rICB7IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJvb3Rk aXJ9L3AnICIkdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgotKyAgeyBhY19vdXQ9 YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGlyWwkgXSo6Kj0vcCcgIiR0bXAvb3V0ImA7IHRlc3Qg LXogIiRhY19vdXQiOyB9ICYmCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJv b3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBp dCBpcyBkZWZpbmVkLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGUg Y29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi0rd2hp Y2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVk LiIgPiYyO30KLSsKLSsgIHJtIC1mICIkdG1wL3N0ZGluIgotKyAgY2FzZSAkYWNfZmlsZSBpbgot KyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0gLWYgIiR0bXAvb3V0Ijs7Ci0rICAqKSBybSAtZiAi JGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIgIiRhY19maWxlIjs7Ci0rICBlc2FjIFwKLSsgIHx8 IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRh Y19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAk YWNfZmlsZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgOzsKLSsgIDpI KQotKyAgIwotKyAgIyBDT05GSUdfSEVBREVSCi0rICAjCi0rICBpZiB0ZXN0IHgiJGFjX2ZpbGUi ICE9IHgtOyB0aGVuCi0rICAgIHsKLSsgICAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1 dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRh Y19maWxlX2lucHV0cyIKLSsgICAgfSA+IiR0bXAvY29uZmlnLmgiIFwKLSsgICAgICB8fCB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmls ZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2Zp bGUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIGlmIGRpZmYgIiRh Y19maWxlIiAiJHRtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQotKyAgICBlbHNlCi0r ICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAgICAgIG12ICIkdG1wL2NvbmZpZy5oIiAiJGFjX2Zp bGUiIFwKLSsJfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5v dCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBu b3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot KyAgICBmaQotKyAgZWxzZQotKyAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8i IFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxl X2lucHV0cyIgXAotKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBjb3VsZCBub3QgY3JlYXRlIC0iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3Vs ZCBub3QgY3JlYXRlIC0iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBm aQotKyMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgotK19h bV9hcmc9IiRhY19maWxlIgotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4g JGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1f YXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAgX2Ft X3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwotK2Rv bmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YCRhc19kaXJuYW1lIC0tICIkX2Ft X2FyZyIgfHwKLSskYXNfZXhwciBYIiRfYW1fYXJnIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9d Ki8qJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJF9h bV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRfYW1fYXJnIiA6ICdYXCgvXCknIFx8IC4g Mj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRfYW1fYXJnIiB8Ci0rICAgIHNlZCAnL15YXCgu KlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQot KwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15Y XChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEn YC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotKyA7OwotKwotKyAgOkMpICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNjt9Ci0rIDs7Ci0rICBl c2FjCi0rCi0rCi0rICBjYXNlICRhY19maWxlJGFjX21vZGUgaW4KLSsgICAgImRlcGZpbGVzIjpD KSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsg ZG8KLSsgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUu Ci0rICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAotKyAgIyBDaGVjayB3aGV0 aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSsgICMg V2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQK LSsgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUg ZmlsZSBjb250ZW50LgotKyAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdo OiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSsgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRk IGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCi0rICAjIEdyZXAnaW5n IHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQot KyAgIyBsaW1pdCBvZiAyMDQ4LCBidXQgYWxsIHNlZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5k IGF0IGxlYXN0IDQwMDAuCi0rICBpZiBzZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFr ZS4qLFgscCcgIiRtZiIgfCBncmVwIFggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGRpcnBh cnQ9YCRhc19kaXJuYW1lIC0tICIkbWYiIHx8Ci0rJGFzX2V4cHIgWCIkbWYiIDogJ1hcKC4qW14v XVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRtZiIgOiAnWFwoLy9cKVteL10nIFx8IFwK LSsJIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkbWYiIDogJ1hcKC9cKScgXHwgLiAy Pi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJG1mIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11c KVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg L15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9e WFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wp LiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAg ZWxzZQotKyAgICBjb250aW51ZQotKyAgZmkKLSsgICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBv ZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCi0rICAjIGZyb20gdGhlIE1ha2Vm aWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0rICBERVBESVI9YHNlZCAtbiAncy9eREVQRElS ID0gLy9wJyA8ICIkbWYiYAotKyAgdGVzdCAteiAiJERFUERJUiIgJiYgY29udGludWUKLSsgIGFt X19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotKyAgdGVz dCAteiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCi0rICBhbV9fcXVvdGU9YHNlZCAtbiAncy9e YW1fX3F1b3RlID0gLy9wJyA8ICIkbWYiYAotKyAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1h eSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSsgIFU9YHNlZCAtbiAncy9e VSA9IC8vcCcgPCAiJG1mImAKLSsgICMgRmluZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMs IHRoZXkgYXJlIGluY2x1ZGVkIGZpbGVzIHdpdGgKLSsgICMgJChERVBESVIpIGluIHRoZWlyIG5h bWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotKyAgIyBzaW1wbGVz dCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0 aGUKLSsgICMgZXhwYW5zaW9uLgotKyAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0rICAgIHMvXiRh bV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcg PCIkbWYiIHwgXAotKyAgICAgICBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAt ZSAncy9cJFUvJyIkVSInL2cnYDsgZG8KLSsgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBl eGlzdHMuCi0rICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQotKyAgICBm ZGlyPWAkYXNfZGlybmFtZSAtLSAiJGZpbGUiIHx8Ci0rJGFzX2V4cHIgWCIkZmlsZSIgOiAnWFwo LipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9d JyBcfCBcCi0rCSBYIiRmaWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkZmlsZSIgOiAnWFwo L1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkZmlsZSIgfAotKyAgICBzZWQg Jy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQot KwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4q Ly4vOyBxJ2AKLSsgICAgeyBhc19kaXI9JGRpcnBhcnQvJGZkaXIKLSsgIGNhc2UgJGFzX2RpciBp biAjKAotKyAgLSopIGFzX2Rpcj0uLyRhc19kaXI7OwotKyAgZXNhYwotKyAgdGVzdCAtZCAiJGFz X2RpciIgfHwgeyAkYXNfbWtkaXJfcCAmJiBta2RpciAtcCAiJGFzX2RpciI7IH0gfHwgewotKyAg ICBhc19kaXJzPQotKyAgICB3aGlsZSA6OyBkbwotKyAgICAgIGNhc2UgJGFzX2RpciBpbiAjKAot KyAgICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8nLydcXFxc XFxcXCcnL2ciYDs7ICMnKAotKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7Ci0rICAgICAgZXNh YwotKyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCi0rICAgICAgYXNfZGlyPWAk YXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKLSskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4q W14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9d JyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhc19kaXIiIDog J1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFzX2RpciIgfAotKyAg ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0r CSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkg ICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0r CSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICBzLy4qLy4vOyBxJ2AKLSsgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawotKyAgICBk b25lCi0rICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGlycyIKLSsg IH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotKyAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJw YXJ0LyRmaWxlIgotKyAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKLSsgIGRv bmUKLStkb25lCi0rIDs7Ci0rCi0rICBlc2FjCi0rZG9uZSAjIGZvciBhY190YWcKLSsKLSsKLSt7 IChleGl0IDApOyBleGl0IDA7IH0KLStfQUNFT0YKLStjaG1vZCAreCAkQ09ORklHX1NUQVRVUwot K2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCi0rCi0rdGVzdCAkYWNfd3JpdGVf ZmFpbCA9IDAgfHwKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB3cml0 ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogd3JpdGUgZmFpbHVyZSBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsKLSsjIGNvbmZpZ3VyZSBpcyB3cml0aW5n IHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCi0rIyBjb25maWcu c3RhdHVzIGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cu Ci0rIyBVbmZvcnR1bmF0ZWx5LCBvbiBET1MgdGhpcyBmYWlscywgYXMgY29uZmlnLmxvZyBpcyBz dGlsbCBrZXB0IG9wZW4KLSsjIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBi ZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKLSsjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVk LiAgU28gd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9udWxsLAotKyMgZWZmZWN0aXZlbHkgY2xvc2lu ZyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQKLSsjIGFw cGVuZGVkIHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3Vy ZSwgd2UKLSsjIG5lZWQgdG8gbWFrZSB0aGUgRkQgYXZhaWxhYmxlIGFnYWluLgotK2lmIHRlc3Qg IiRub19jcmVhdGUiICE9IHllczsgdGhlbgotKyAgYWNfY3Nfc3VjY2Vzcz06Ci0rICBhY19jb25m aWdfc3RhdHVzX2FyZ3M9Ci0rICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgotKyAgICBhY19jb25m aWdfc3RhdHVzX2FyZ3M9IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKLSsgIGV4ZWMg NT4vZGV2L251bGwKLSsgICRTSEVMTCAkQ09ORklHX1NUQVRVUyAkYWNfY29uZmlnX3N0YXR1c19h cmdzIHx8IGFjX2NzX3N1Y2Nlc3M9ZmFsc2UKLSsgIGV4ZWMgNT4+Y29uZmlnLmxvZwotKyAgIyBV c2UgfHwsIG5vdCAmJiwgdG8gYXZvaWQgZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwg d2hpY2gKLSsgICMgd291bGQgbWFrZSBjb25maWd1cmUgZmFpbCBpZiB0aGlzIGlzIHRoZSBsYXN0 IGluc3RydWN0aW9uLgotKyAgJGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 Ci0rZmkKLStpZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVkX29wdHMiICYmIHRlc3QgIiRlbmFi bGVfb3B0aW9uX2NoZWNraW5nIiAhPSBubzsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29w dHMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25z OiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMjt9Ci0rZmkKLSsKLSsKLStlY2hvICIKLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRp b246Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rRGlyZWN0b3JpZXM6Ci0rICAtIHByZWZp eCAuLi4uLi4uLi4uLi4uLi4gOiAke3ByZWZpeH0KLSsgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4u LiA6ICR7ZXhlY19wcmVmaXh9Ci0rICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1 ZGVkaXJ9Ci0rICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KLSsgIC0gZG9j ZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZG9jZGlyfQotKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4u Li4uIDogJHttYW5kaXJ9Ci0rICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9 Ci0rCi0rU3dpdGNoZXM6Ci0rICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9l eGNlcHRpb25zfQotKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19k b2N9Ci0rICAtIGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KLSsg IC0gc2hhcmVkIC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KLSsgIC0gc3RhdGlj IC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KLSsKLStEb2N1bWVudGF0aW9uIHRv b2xzOgotKyAgLSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQotKyAgLSBk b3h5Z2VuIC4uLi4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQotKyAgLSBsYXRleCAuLi4uLi4u Li4uLi4uLi4uIDogJHtsYXRleF9va30KLSsgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7 ZHZpcHNfb2t9Ci0rICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQotKwotK1Rl c3RpbmcgdG9vbHM6Ci0rICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9Ci0r ICAtIHNlZCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KLSsKLStDb21waWxlci9saW5r ZXIgZmxhZ3MvbGlicy9kZWZzOgotKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9 Ci0rICAtIENYWEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQotKyAgLSBDUFBGTEFH UyAuLi4uLi4uLi4uLi4uIDogJHtDUFBGTEFHU30KLSsgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4u LiA6ICR7TERGTEFHU30KLSsgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KLSsK LStCdXJyaWVkIGhlYWRlciBmaWxlczoKLSsgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4u IDogJHtlbmFibGVfYnVycmllZF9oZWFkZXJzfQotKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAu Li4uLi4gOiAke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIFBPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQot KwotK0V4dGVybmFsIGxpYnJhcmllczoKLSsgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6Ci0r ICAgIG8gQk9PU1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059Ci0rICAgIG8gQk9P U1RfQ0ZMQUdTIC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KLSsgICAgbyBCT09TVF9MSUJTIC4u Li4uLi4uLiA6ICR7Qk9PU1RfTElCU30KLSsgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7 Qk9PU1RfREFURV9USU1FX0xJQn0KLSsgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQn0KLSsKLSsgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6 ICR7ZW5hYmxlX2JhY2tlbmRfbXlzcWx9Ci0rICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAk e01ZU1FMX1ZFUlNJT059Ci0rICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NG TEFHU30KLSsgICAgbyBNWVNRTF9MREZMQUdTIC4uLi4uLiA6ICR7TVlTUUxfTERGTEFHU30KLSsK LSsgIC0gUG9zdEdyZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNx bH0KLSsgICAgbyBQT1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQot KyAgICBvIFBPU1RHUkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KLSsgICAg byBQT1NUR1JFU1FMX0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfQotKwotKyAgLSBP cmFjbGUgc3VwcG9ydCAuLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9Ci0rICAgIG8g T1JBQ0xFX1ZFUlNJT04gLi4uLi4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KLSsgICAgbyBPUkFD TEVfQ0ZMQUdTIC4uLi4uLiA6ICR7T1JBQ0xFX09DSV9DRkxBR1N9Ci0rICAgIG8gT1JBQ0xFX0xE RkxBR1MgLi4uLi4gOiAke09SQUNMRV9PQ0lfTERGTEFHU30KLSsKLSsgIC0gQ1BQVW5pdCAuLi4u Li4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVS U0lPTn0KLSsgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0r ICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KLSsKLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLStOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxk IGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsiCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlLmFjIHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1 cmUuYWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlndXJlLmFjCTIwMDktMDUtMDYgMDE6MzA6MzAuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDQwMCBAQAotKyMgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0 byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdAotKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfUFJFUkVRKDIu NTkpCi0rQUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWogU29iY3ph ayA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pl0pCi0rQUNfSU5JVChbU09DSV0sWzMu MC4wXSxbbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0XSxbc29jaV0pCi0rQUNfQ09ORklH X0hFQURFUihbc29jaS9jb25maWcuaF0pCi0rQUNfQ09ORklHX1NSQ0RJUihbc29jaS9jb3JlL2Vy cm9yLmNwcF0pCi0rQUNfQ09ORklHX0FVWF9ESVIoW2NvbmZpZ10pCi0rQU1fSU5JVF9BVVRPTUFL RQotK0FNX1BBVEhfQ1BQVU5JVCgxLjEwKQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX0NQUFVOSVRd LCBbdGVzdCAieCRDUFBVTklUX0xJQlMiICE9IHhdKQotKwotKyMgUlBNIHJlbGVhc2UgbnVtYmVy Ci0rUlBNX1JFTEVBU0U9IjExIgotK0FDX1NVQlNUKFJQTV9SRUxFQVNFKQotKwotKyMgU2hhcmVk IGxpYnJhcnkgdmVyc2lvbmluZwotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OPSIzOjA6MCIKLSsj ICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKLSsjICAgICAgICAgICAgICAgICArLS0tLS0t KyB8ICstLS0rCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgfAotKyMgICAgICAg ICAgICAgIGN1cnJlbnQ6cmV2aXNpb246YWdlCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAg fCAgICAgfAotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICstIGluY3JlbWVudCBp ZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAg ICB8ICAgICAgICBzZXQgdG8gemVybyBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiAKLSsjICAgICAg ICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICByZW1vdmVkIG9yIGNoYW5nZWQKLSsjICAgICAg ICAgICAgICAgICB8ICAgICAgICArLSBpbmNyZW1lbnQgaWYgc291cmNlIGNvZGUgaGFzIGNoYW5n ZWQ7Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgc2V0IHRvIHplcm8gaWYgY3VycmVu dCBpcyBpbmNyZW1lbnRlZAotKyMgICAgICAgICAgICAgICAgICstIGluY3JlbWVudCBpZiBpbnRl cmZhY2VzIGhhdmUgYmVlbiBhZGRlZCwgcmVtb3ZlZAotKyMgICAgICAgICAgICAgICAgICAgIG9y IGNoYW5nZWQKLStBQ19TVUJTVChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLSsjIFVwbG9h ZCBjb21tYW5kIGZvciBTb3VyY2VGb3JnZQotK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1 cGxvYWQuc291cmNlZm9yZ2UubmV0IC9pbmNvbWluZyIKLStBQ19TVUJTVChVUExPQURfQ09NTUFO RCkKLSsKLSsjIENoZWNrIGZvciBob3N0IGFuZCBkaXNhYmxlIGJ1aWxkaW5nIGEgc2hhcmVkIGxp YnJhcnkgaW4gV2luZG93cwotK0FDX0NBTk9OSUNBTF9IT1NUCi0rY2FzZSAkaG9zdCBpbgotKyAg Ki0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0q LXdpbmRvd3MqKSAKLSsgICAgQUNfRElTQUJMRV9TSEFSRUQKLSsgICAgQUNfRU5BQkxFX1NUQVRJ QwotKyAgICA7OwotKyAgKikgIAotKyAgICBBQ19FTkFCTEVfU0hBUkVECi0rICAgIEFDX0RJU0FC TEVfU1RBVElDCi0rICAgIDs7Ci0rZXNhYwotKwotKyMgQ2hlY2tzIGZvciBwcm9ncmFtcwotK3Nh dmVfQ1hYRkxBR1M9IiRDWFhGTEFHUyIKLStBQ19QUk9HX0NYWAotK0FDX1BST0dfQ1hYQ1BQCi0r Q1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdTIgotK0FDX1BST0dfSU5TVEFMTAotK0FDX1BST0dfTElC VE9PTAotK0FDX1BST0dfTE5fUwotK0FDX1BST0dfTUFLRV9TRVQKLSsKLSsjIFNldCBkZWZhdWx0 IGxhbmd1YWdlIHRvIEMrKwotK0FDX0xBTkcoW0MrK10pCi0rCi0rIyBDaGVjayBmb3IgZXhjZXB0 aW9ucyBzd2l0Y2gKLStBQ19BUkdfRU5BQkxFKGV4Y2VwdGlvbnMsCi0rICAgICAgICAgICAgICBb QVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWV4Y2VwdGlvbnNdLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtlbmFibGUgZXhjZXB0aW9ucyBoYW5kbGluZyBtZWNoYW5pc21dKV0sCi0r ICAgICAgICAgICAgICBbQUNfREVGSU5FKFtTT0NJX0VYQ0VQVElPTlNdLCBbMV0sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgIFtEZWZpbmUgaWYgeW91IHdhbnQgZXhjZXB0aW9ucyBoYW5kbGlu Z10pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9leGNlcHRpb25zIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2Vw dGlvbnM9eWVzCi0rdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiICE9IHhubyAmJiBlbmFi bGVfZXhjZXB0aW9ucz15ZXMKLSsKLSsjIENoZWNrIGZvciBpbmZvIHBhZ2VzCi0rQUNfQVJHX0VO QUJMRShpbmZvLWRvYywgCi0rICAgICAgICAgICAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJs ZS1pbmZvLWRvY10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RvIG5vdCBnZW5l cmF0ZSBJbmZvIGRvY3VtZW50YXRpb25dKV0pCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9 IHhubyAmJiBlbmFibGVfaW5mb19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mg c3dpdGNoCi0rQUNfQVJHX0VOQUJMRShodG1sLWRvYywgCi0rICAgICAgICAgICAgICBbQVNfSEVM UF9TVFJJTkcoWy0tZGlzYWJsZS1odG1sLWRvY10sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW2RvIG5vdCBnZW5lcmF0ZSBIVE1MIGRvY3VtZW50YXRpb25dKV0pCi0rdGVzdCAieCRl bmFibGVfaHRtbF9kb2MiICE9IHhubyAmJiBlbmFibGVfaHRtbF9kb2M9eWVzCi0rCi0rCi0rIyBQ cm92aWRlIC0td2l0aC1kb2NkaXIKLStBQ19BUkdfV0lUSChkb2NkaXIsCi0rICAgICAgICAgICAg W0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZG9jZGlyPURJUl0sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtzZXQgZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSXSldLAotKyAgICAg ICAgICAgIFtET0NfRElSPSIkd2l0aHZhbCJdLAotKyAgICAgICAgICAgIFtET0NfRElSPSIiXSkK LStpZiB0ZXN0ICJ4JERPQ19ESVIiICE9IHg7IHRoZW4KLSsgIGRvY2Rpcj0iJERPQ19ESVIiCi0r ZWxzZQotKyAgZG9jZGlyPSIke2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKLStmaQot K0FDX1NVQlNUKGRvY2RpcikKLSsKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxl cyAoZm9yIFNPQ0kgaXRzZWxmKQotK0FDX0FSR19FTkFCTEUoYnVycmllZC1oZWFkZXJzLCAKLSsg QVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJ1cnJpZWQtaGVhZGVyc10sCi0rCQlbaW5jbHVkZSBo ZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKLSsgWyBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubwot KyAgIGVsc2UKLSsgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpIF0sCi0r IFsgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQ TSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKLStBTV9D T05ESVRJT05BTChbU09DSV9IRUFERVJTX0JVUklFRF0sIFt0ZXN0ICJ4JGVuYWJsZV9idXJyaWVk X2hlYWRlcnMiID0geHllc10pCi0rQUNfU1VCU1QoU09DSV9IRUFERVJTX0JVUklFRCkKLStpZiB0 ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdT PSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3Ig YnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rQUNfQVJHX0VOQUJMRSht eXNxbC1idXJyaWVkLWhlYWRlcnMsIAotKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbXlzcWwt YnVycmllZC1oZWFkZXJzXSwKLSsJCVtpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEg ZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAotKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRo ZW4KLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5hYmxl X215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9teXNxbF9i dXJyaWVkX2hlYWRlcnM9bm8gXSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMg Z2VuZXJhdGlvbgotK2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rQU1fQ09ORElU SU9OQUwoW1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURdLAotKyAgICAgICAgICAgICAgIFt0ZXN0 ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCi0rQUNfU1VCU1QoU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRCkKLStpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVk X2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIg ZmlsZXMgKGZvciBQb3N0R3JlU1FMIGNsaWVudCkKLStBQ19BUkdfRU5BQkxFKHBvc3RncmVzcWwt YnVycmllZC1oZWFkZXJzLCAKLSsgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvc3RncmVzcWwt YnVycmllZC1oZWFkZXJzXSwKLSsJCVtpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZy b20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBu bzsgdGhlbgotKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNl Ci0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaSBdLAotKyBb IGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBm b3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzPXllcwotK0FNX0NPTkRJVElPTkFMKFtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRURdLAotKyAgICAgICAgICAgICAgIFt0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycyIgPSB4eWVzXSkKLStBQ19TVUJTVChTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQpCi0raWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0g eHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0 dHA6Ly93d3cuYm9vc3Qub3JnKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBWF9CT09TVChbMS4zM10pCi0rQUNfU1VCU1QoQk9P U1RfVkVSU0lPTikKLStBQ19TVUJTVChCT09TVF9DRkxBR1MpCi0rQUNfU1VCU1QoQk9PU1RfTElC UykKLStBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQotK0FDX1NVQlNUKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgTXlT UUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rQUNfQVJHX0VOQUJMRShbYmFja2VuZC1teXNxbF0sCi0rICAgIEFDX0hFTFBfU1RS SU5HKFstLWVuYWJsZS1iYWNrZW5kLW15c3FsXSwKLSsgICAgICAgIFtidWlsZC1pbiBNeVNRTCBi YWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9AOj5AXQotKyAgICApLAotKyAgICBbIGlmIHRl c3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3Fs PW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9eWVzCi0rICAgICAgZmkg XSwKLSsgICAgWyBlbmFibGVfYmFja2VuZF9teXNxbD1ubyBdCi0rKQotKwotK2lmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0gInh5ZXMiOyB0aGVuCi0rICAgTVlTUUxfRElSUz0ibXlz cWwiCi0rICAgTVlTUUxfUkVRX1ZFUlNJT049IjMuMC4wIgotKyAgIEFYX0xJQl9NWVNRTChbJE1Z U1FMX1JFUV9WRVJTSU9OXSkKLStmaQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX01ZU1FMXSwgW3Rl c3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllc10pCi0rI01ZU1FMX0RJUlM9Im15c3Fs IgotKwotK0FDX1NVQlNUKFtNWVNRTF9ESVJTXSkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1 cHBvcnQgZm9yIE9yYWNsZSBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfQVJHX0VOQUJMRShb YmFja2VuZC1vcmFjbGVdLAotKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1v cmFjbGVdLAotKwkJICAgW2J1aWxkLWluIE9SQUNMRSBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1 bHQ9bm9AOj5AXSksCi0rICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAg ICAgIAkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxlX2Jh Y2tlbmRfb3JhY2xlPXllcwotKyAgICAgIGZpIF0sCi0rICAgIFsgZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlPW5vIF0KLSspCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUiID0gInh5 ZXMiOyB0aGVuCi0rICAgT1JBQ0xFX0RJUlM9Im9yYWNsZSIKLSsgICBPUkFDTEVfT0NJX1JFUV9W RVJTSU9OPSI5LjAiCi0rICAgQVhfTElCX09SQUNMRV9PQ0koJE9SQUNMRV9PQ0lfUkVRX1ZFUlNJ T04pCi0rZmkKLStBTV9DT05ESVRJT05BTChbSEFWRV9PUkFDTEVdLCBbdGVzdCAieCRlbmFibGVf YmFja2VuZF9vcmFjbGUiID0geHllc10pCi0rI09SQUNMRV9ESVJTPSJvcmFjbGUiCi0rCi0rQUNf U1VCU1QoW09SQUNMRV9ESVJTXSkKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIFBv c3RncmVTUUwgYmFja2VuZAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQt cG9zdGdyZXNxbF0sCi0rICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLXBvc3Rn cmVzcWxdLAotKyAgICAgICAgW2J1aWxkLWluIFBvc3RncmVTUUwgYmFja2VuZCBzdXBwb3J0IEA8 OkBkZWZhdWx0PW5vQDo+QF0KLSsgICAgKSwKLSsgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9 IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vCi0rICAgICAg ZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD15ZXMKLSsgICAgICBmaSBdLAotKyAg ICBbIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8gXQotKykKLSsKLStpZiB0ZXN0ICJ4JGVu YWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0gInh5ZXMiOyB0aGVuCi0rICAgUE9TVEdSRVNRTF9E SVJTPSJwb3N0Z3Jlc3FsIgotKyAgIFBPU1RHUkVTUUxfUkVRX1ZFUlNJT049IjcuMS40IgotKyAg IEFYX0xJQl9QT1NUR1JFU1FMKCRQT1NUR1JFU1FMX1JFUV9WRVJTSU9OKQotK2ZpCi0rQU1fQ09O RElUSU9OQUwoW0hBVkVfUE9TVEdSRVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3Rn cmVzcWwiID0geHllc10pCi0rI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLStBQ19T VUJTVChbUE9TVEdSRVNRTF9ESVJTXSkKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQg Zm9yIGRvY3VtZW50YXRpb24KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRh dGlvbiBidWlsZCB0b29scwotKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZvX29rXSwgW3RleGluZm9d LCBbeWVzXSwgW25vXSkKLSsjaWYgdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubzsgdGhl bgotKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFibGVfaW5mb19kb2M9bm8K LSsjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQotKyNmaQotK0FNX0NPTkRJVElP TkFMKFtJTkZPX0RPQ10sIFt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzXSkKLSsKLSsj IENoZWNrcyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotK0FDX0NIRUNLX1BST0coW2Rv eHlnZW5fb2tdLCBbZG94eWdlbl0sIFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW2xhdGV4 X29rXSwgW2xhdGV4XSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tfUFJPRyhbZHZpcHNfb2tdLCBb ZHZpcHNdLCBbeWVzXSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtnc19va10sIFtnc10sIFt5ZXNd LCBbbm9dKQotK2lmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KLSsgIHRl c3QgIngkZG94eWdlbl9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3Qg IngkbGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGR2 aXBzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRnc19vayIg IT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtw ZXJsXSwgW10pCi0rZmkKLStBTV9DT05ESVRJT05BTChbSFRNTF9ET0NdLCBbdGVzdCAieCRlbmFi bGVfaHRtbF9kb2MiID0geHllc10pCi0rCi0rCi0rIyBDaGVjayBmb3IgZGlmZiBwcm9ncmFtIHVz ZWQgZm9yIHRlc3RzCi0rQUNfQ0hFQ0tfUFJPRyhbZGlmZl9va10sIFtkaWZmXSwgW3llc10sIFtu b10pCi0rQUNfQ0hFQ0tfUFJPRyhbc2VkX29rXSwgW3NlZF0sIFt5ZXNdLCBbbm9dKQotK2VuYWJs ZV90ZXN0cz15ZXMKLSt0ZXN0ICJ4JGRpZmZfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5v Ci0rdGVzdCAieCRzZWRfb2siICE9IHh5ZXMgJiYgZW5hYmxlX3Rlc3RzPW5vCi0rQU1fQ09ORElU SU9OQUwoW1JVTl9URVNUU10sIFt0ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzXSkKLSsKLSsK LSsjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCi0rQUNfSEVBREVSX1NUREMKLStBQ19IRUFERVJf VElNRQotK0FDX0NIRUNLX0hFQURFUlMoW2NtYXRoIFwKLSsgIGRlcXVlIFwKLSsgIGZzdHJlYW0g XAotKyAgaW9tYW5pcCBcCi0rICBpb3N0cmVhbSBcCi0rICBzc3RyZWFtIFwKLSsgIGxpbWl0cyBc Ci0rICBsaXN0IFwKLSsgIHNldCBcCi0rICB2ZWN0b3IgXAotKyAgbWFwIFwKLSsgIHF1ZXVlIFwK LSsgIHN0ZGV4Y2VwdCBcCi0rICBzdHJpbmddKQotKwotKwotKyMgRGVmaW5lIGNvbmZpZ3VyZWQg ZmlsZXMKLStBQ19DT05GSUdfRklMRVMoCi0rCU1ha2VmaWxlCi0rCXNvY2ktY29uZmlnCi0rCXNv Y2kucGMKLSsJc29jaS5zcGVjCi0rCXNvY2kvTWFrZWZpbGUKLSsJc29jaS9jb3JlL01ha2VmaWxl Ci0rCXNvY2kvY29yZS90ZXN0L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsJ c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQotKwlzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qv TWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlCi0rCXNvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL01h a2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKLSsJbWFuL01ha2Vm aWxlCi0rICAgICAgICBkb2MvTWFrZWZpbGUKLSsgICAgICAgIGRvYy9iYWNrZW5kcy9NYWtlZmls ZQotKwlidWlsZC9NYWtlZmlsZQotKwlidWlsZC91bml4L01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4 MC9NYWtlZmlsZQotKwlidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9s aWIvTWFrZWZpbGUpCi0rCi0rQUNfT1VUUFVUCi0rCi0rZWNobyAiCi0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeSBjb25maWd1cmF0aW9uOgotKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKwotK0RpcmVjdG9yaWVzOgotKyAgLSBwcmVmaXggLi4uLi4uLi4u Li4uLi4uIDogJHtwcmVmaXh9Ci0rICAtIGV4ZWNfcHJlZml4IC4uLi4uLi4uLi4gOiAke2V4ZWNf cHJlZml4fQotKyAgLSBpbmNsdWRlZGlyIC4uLi4uLi4uLi4uIDogJHtpbmNsdWRlZGlyfQotKyAg LSBsaWJkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtsaWJkaXJ9Ci0rICAtIGRvY2RpciAuLi4uLi4u Li4uLi4uLi4gOiAke2RvY2Rpcn0KLSsgIC0gbWFuZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bWFu ZGlyfQotKyAgLSBpbmZvZGlyIC4uLi4uLi4uLi4uLi4uIDogJHtpbmZvZGlyfQotKwotK1N3aXRj aGVzOgotKyAgLSBleGNlcHRpb25zIC4uLi4uLi4uLi4uIDogJHtlbmFibGVfZXhjZXB0aW9uc30K LSsgIC0gaW5mby1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2luZm9fZG9jfQotKyAgLSBo dG1sLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaHRtbF9kb2N9Ci0rICAtIHNoYXJlZCAu Li4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9zaGFyZWR9Ci0rICAtIHN0YXRpYyAuLi4uLi4uLi4u Li4uLi4gOiAke2VuYWJsZV9zdGF0aWN9Ci0rCi0rRG9jdW1lbnRhdGlvbiB0b29sczoKLSsgIC0g dGV4aW5mbyAuLi4uLi4uLi4uLi4uLiA6ICR7dGV4aW5mb19va30KLSsgIC0gZG94eWdlbiAuLi4u Li4uLi4uLi4uLiA6ICR7ZG94eWdlbl9va30KLSsgIC0gbGF0ZXggLi4uLi4uLi4uLi4uLi4uLiA6 ICR7bGF0ZXhfb2t9Ci0rICAtIGR2aXBzIC4uLi4uLi4uLi4uLi4uLi4gOiAke2R2aXBzX29rfQot KyAgLSBnaG9zdHNjcmlwdCAuLi4uLi4uLi4uIDogJHtnc19va30KLSsKLStUZXN0aW5nIHRvb2xz OgotKyAgLSBkaWZmIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtkaWZmX29rfQotKyAgLSBzZWQgLi4u Li4uLi4uLi4uLi4uLi4uIDogJHtzZWRfb2t9Ci0rCi0rQ29tcGlsZXIvbGlua2VyIGZsYWdzL2xp YnMvZGVmczoKLSsgIC0gQ1hYIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7Q1hYfQotKyAgLSBDWFhG TEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDWFhGTEFHU30KLSsgIC0gQ1BQRkxBR1MgLi4uLi4uLi4u Li4uLiA6ICR7Q1BQRkxBR1N9Ci0rICAtIExERkxBR1MgLi4uLi4uLi4uLi4uLi4gOiAke0xERkxB R1N9Ci0rICAtIExJQlMgLi4uLi4uLi4uLi4uLi4uLi4gOiAke0xJQlN9Ci0rCi0rQnVycmllZCBo ZWFkZXIgZmlsZXM6Ci0rICAtIFNPQ0lfSEVBREVSU19CVVJJRUQgLi4uLi4uLiA6ICR7ZW5hYmxl X2J1cnJpZWRfaGVhZGVyc30KLSsgIC0gTVlTUUxfSEVBREVSU19CVVJJRUQgLi4uLi4uIDogJHtl bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzfQotKyAgLSBQT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEIC4gOiAke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyc30KLSsKLStFeHRlcm5h bCBsaWJyYXJpZXM6Ci0rICAtIEJvb3N0IC4uLi4uLi4uLi4uLi4uLi4gOgotKyAgICBvIEJPT1NU X1ZFUlNJT04gLi4uLi4uIDogJHtCT09TVF9WRVJTSU9OfQotKyAgICBvIEJPT1NUX0NGTEFHUyAu Li4uLi4uIDogJHtCT09TVF9DRkxBR1N9Ci0rICAgIG8gQk9PU1RfTElCUyAuLi4uLi4uLi4gOiAk e0JPT1NUX0xJQlN9Ci0rICAgIG8gQk9PU1RfRFRfTElCIC4uLi4uLi4gOiAke0JPT1NUX0RBVEVf VElNRV9MSUJ9Ci0rICAgIG8gQk9PU1RfUE9fTElCIC4uLi4uLi4gOiAke0JPT1NUX1BST0dSQU1f T1BUSU9OU19MSUJ9Ci0rCi0rICAtIE15U1FMIHN1cHBvcnQgLi4uLi4uLi4gOiAke2VuYWJsZV9i YWNrZW5kX215c3FsfQotKyAgICBvIE1ZU1FMX1ZFUlNJT04gLi4uLi4uIDogJHtNWVNRTF9WRVJT SU9OfQotKyAgICBvIE1ZU1FMX0NGTEFHUyAuLi4uLi4uIDogJHtNWVNRTF9DRkxBR1N9Ci0rICAg IG8gTVlTUUxfTERGTEFHUyAuLi4uLi4gOiAke01ZU1FMX0xERkxBR1N9Ci0rCi0rICAtIFBvc3RH cmVTUUwgc3VwcG9ydCAuLi4gOiAke2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWx9Ci0rICAgIG8g UE9TVEdSRVNRTF9WRVJTSU9OIC4gOiAke1BPU1RHUkVTUUxfVkVSU0lPTn0KLSsgICAgbyBQT1NU R1JFU1FMX0NGTEFHUyAuLiA6ICR7UE9TVEdSRVNRTF9DRkxBR1N9Ci0rICAgIG8gUE9TVEdSRVNR TF9MREZMQUdTIC4gOiAke1BPU1RHUkVTUUxfTERGTEFHU30gCi0rCi0rICAtIE9yYWNsZSBzdXBw b3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVfVkVS U0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxBR1Mg Li4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4u LiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfSAKLSsKLSsgIC0gQ1BQVW5pdCAuLi4uLi4uLi4uLi4u LiA6Ci0rICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQUFVOSVRfVkVSU0lPTn0KLSsg ICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9DRkxBR1N9Ci0rICAgIG8gQ1BQ VU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KLSsKLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLStOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwnIHRvIGJ1aWxkIGFuZCBpbnN0 YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsi Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svQ09QWUlORyBzb2NpLTMuMC4wX3RyZXAzMDAv Q09QWUlORwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0NPUFlJTkcJMjAwOS0wNS0wNiAwMTozMjo0 MC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQ09QWUlORwkyMDA5LTA0 LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAotQEAgLTIxLDMgKzIxLDQgQEAKLSBGT1IgQU5Z IERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwKLSBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLSBERUFMSU5HUyBJTiBUSEUgU09GVFdB UkUuCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxl LmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01h a2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6NTA6MzguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDE2IEBACi0rIyMgZG9jL2JhY2tlbmRzIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwot KyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxl LmluCi0rCi0rU1VCRElSUyA9Ci0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZ ID0gJChodG1sX2Jja19zb3VyY2VzKQotKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwu aHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAot KwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsK LSsjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tfc291cmNlcykKLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9i YWNrZW5kcy9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9N YWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0 OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTQ4IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5l cmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJl X2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxl LmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0r IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwg dG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJU SUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dk YXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBB Q0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2Nk ID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2lu c3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9H UkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3No KSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChw cm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxM ID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklO U1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAK LStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGRvYy9iYWNrZW5kcwotK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NP 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 TVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVD SE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBF WEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJ TlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNU QUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RB TExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dS QU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0g QExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMg PSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJf UEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNR TF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBA TVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElU ID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05A Ci0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BH X0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9D RkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FM X0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQ T1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBS UE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxM ID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK LStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA Ci0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2Fj X2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3 ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGlu Z19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1f X3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJp bmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLSti dWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3Zl bmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9 IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlm Zl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStk dmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0g QGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2Fs aWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBo b3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRp ckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2lu c3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIg PSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9j YWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFu ZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVk aXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJh bnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAK LStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRp ciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBA c3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9w cmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGly QAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVp bGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2h0bWxfYmNrX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIp L2RvYy9iYWNrZW5kcy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMv ZmlyZWJpcmQuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL215c3FsLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9vZGJjLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9vcmFjbGUuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tl bmRzL3Bvc3RncmVzcWwuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL3NxbGl0 ZTMuaHRtbAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJT ID0gCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3Vy Y2VzKQotKyNmaXJlYmlyZC5odG1sIGluZGV4Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3Jh Y2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNxbGl0ZTMuaHRtbAotK0VYVFJBX0RJU1QgPSAkKEVY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsK LSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxl LmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQo YW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAot KwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9i YWNrZW5kcy9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRP TUFLRSkgLS1nbnUgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUK LStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo OzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVM TCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBc Ci0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklH X1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAg JChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2Fs X200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0r Ci0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJl Y3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNk Ci0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMg TWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBp bnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBz ZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGlj aCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVu IGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0 aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxj b209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2Ug JCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdm YWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0r CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc Ci0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZp OyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0 ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0r JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZv ciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSog fCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVz YWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkg IGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUykn IDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVj aG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJ ICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQp IFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIK LSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElT UCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt dHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdT Ci0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJ aGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1 ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0t LWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0r CSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdT IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1Nf QVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlx dWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsg XAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQo TElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdT KSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJ aGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRv cF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rp c3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEgg dGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0 cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGlu ICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2Rp cnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1 aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1L RElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8Xnwk KGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVz YWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAk JGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsg XAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8k JGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNy Y2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNw IC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAg IGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAg IHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAx OyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9k aXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQk c3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAg IHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0 ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1y ZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0r aW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVj dXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFM TF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwK LSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JB TV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJp YzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykK LSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1y ZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0 Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwot K2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJz aXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsK LStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFt OgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0r Ci0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMp IGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBh bGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwK LSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0r CWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1s IFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0 YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxs LWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBp bnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYg aW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRp cnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYg cGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0 YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3Vy Y2VzKQotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9k b2MvYmFja2VuZHMvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5k cy9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6NDc6 NTMuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDcgQEAKLStodG1sX2Jja19zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9teXNxbC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwK LSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy9zcWxpdGUzLmh0bWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFr ZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAy MDoxNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNyBAQAotK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9kb2Mvc291cmNlcy5tawotKwotK1NVQkRJUlMgPSBiYWNrZW5kcwotKwotK0VYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKQotKwot K0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAw L2RvYy9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbgkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9kb2MvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0Ny4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsNTQ3IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4x MC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJp Z2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAy MDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRp ciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9 IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklO U1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9z dEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZp bGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zb3VyY2VzLm1rCi0rc3ViZGlyID0gZG9jCi0r QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0r YW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9E RVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3Rh bGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5o Ci0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JF Q1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vy c2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWlu c3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2 ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1y ZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlc Ci0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRB R1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0r RElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQo RVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIg PSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVS QAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0g QEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9M SUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9P U1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBA Qk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09T VF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9T SUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJP T1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9O QAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJA Ci0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdT QAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1Mg PSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0r Q1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5J VF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RF ID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZ R1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9 IEBEU1lNVVRJTEAKLStFQ0hPID0gQEVDSE9ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04g PSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhU ID0gQEVYRUVYVEAKLStGNzcgPSBARjc3QAotK0ZGTEFHUyA9IEBGRkxBR1NACi0rR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQ QAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAot K0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBA SU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBf UFJPR1JBTUAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJ QlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBN S0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0g QE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFH UyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TUVESVQgPSBATk1FRElUQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JB Q0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JB Q0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJ T04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdF X0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FH RV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFS TkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVS U0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxA Ci0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JF U1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RH UkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9O ID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNF ID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0r U0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVS SUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JV UklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQ TE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJz X2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGly ID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJA Ci0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19j dF9GNzcgPSBAYWNfY3RfRjc3QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19s ZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAK LSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIg PSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFz QAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVp bGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRh ZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9 IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29r QAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVm aXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hv c3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29z ID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBo dG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJA Ci0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xp YmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9 IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9 IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5j bHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBz ZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0 YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRp ciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1 aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVp bGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK2h0bWxfbG9jYWxfc291cmNlcyA9 ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9i YXNpY3MuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKLSsJJCh0b3Bf c3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1s IFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCi0rCSQodG9wX3NyY2Rpcikv ZG9jL2luZGV4Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAot KwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKLSsJJCh0b3Bfc3JjZGly KS9kb2MvcmF0aW9uYWxlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCi0rCSQodG9wX3NyY2Rp cikvZG9jL3N0cnVjdHVyZS5odG1sCi0rCi0rU1VCRElSUyA9IGJhY2tlbmRzCi0rRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gJChodG1sX2xvY2FsX3NvdXJjZXMpCi0rRVhUUkFf RElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotK2FsbDogYWxsLXJl Y3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5tayAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1 cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQg MDsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBkb2MvTWFrZWZpbGUnOyBc Ci0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBkb2MvTWFr ZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJ ICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikv JEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5 YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsK LSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVh bi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYg LmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1v c3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2Un IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2 YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywK LSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBg Y29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRv IGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwg cGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChS RUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHgg JCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10q KTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWls Y29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwK LSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAot KwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgot KwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0r CSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49 bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xl YW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJT KScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9 IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAu IjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBz dWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJk aXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK LSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBc Ci0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6 ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtp ZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1Mp IC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAg aW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJ ZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsg XAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVz dCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRl X29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0r CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAot Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8 IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7 IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwK LSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFH UzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0 ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAk KENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0 YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRp cikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkg JChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1Mg SUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxF UykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK LSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc Ci0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAk KHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZp bGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAt ZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRp cikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlz dD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0 ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRp ciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0 ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3Rk aXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIg XAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92 ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRp c3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNr LWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQot K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStp bnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJl Y3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFs bDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc Ci0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStk aXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj OgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1 c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0 b29scyB0byByZWJ1aWxkLiIKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06 IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVh bjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06 IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmkt cmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raW5m bzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsK LStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFt OgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt aW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBz LXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNp dmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3Vu aW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNV UlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6 ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdU QUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNs ZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVh bi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBk dmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwt YW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwt ZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5z dGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1h biBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1h bSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxs ZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVh bi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVu aW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9S VDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tayBzb2NpLTMuMC4w X3RyZXAzMDAvZG9jL3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNl cy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9kb2Mvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjU0OjAwLjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSwxMyBAQAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2Rpcikv ZG9jL2JhY2tlbmRzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCi0r CSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYm9v c3QuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxl Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9wX3Ny Y2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVy ZS5odG1sCi1MZXMgZmljaGllcnMgYmluYWlyZXMgc29jaS0zLjAuMF80LXBhY2svZG9jL3N0cnVj dHVyZS5wbmcgZXQgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zdHJ1Y3R1cmUucG5nIHNvbnQgZGlm ZsOpcmVudHMuCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3N0eWxlLmNzcyBzb2Np LTMuMC4wX3RyZXAzMDAvZG9jL3N0eWxlLmNzcwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9z dHlsZS5jc3MJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvZG9jL3N0eWxlLmNzcwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotQEAgLTEsOTAgKzAsMCBAQAotLWJvZHkKLS17Ci0tICBiYWNrZ3JvdW5kLWNvbG9yOiB3 aGl0ZTsKLS0gIGNvbG9yOiBibGFjazsKLS0gIG1hcmdpbi1sZWZ0OiAxMDBweDsKLS0gIG1hcmdp bi1yaWdodDogMTAwcHg7Ci0tICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7Ci0tICBm b250LXNpemU6IHNtYWxsOwotLX0KLS0KLS1wLmJhbm5lcgotLXsKLS0gIGZvbnQtc2l6ZTogeC1s YXJnZTsKLS0gIGZvbnQtd2VpZ2h0OiBib2xkOwotLSAgZm9udC1zdHJldGNoOiBleHBhbmRlZDsK LS0gIGJvcmRlci1ib3R0b20tY29sb3I6IGJsYWNrOwotLSAgYm9yZGVyLWJvdHRvbS1zdHlsZTog c29saWQ7Ci0tICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7Ci0tICBwYWRkaW5nLWJvdHRvbTog NXB4OwotLX0KLS0KLS1kaXYubmF2aWdhdGlvbiB7IH0KLS0KLS1kaXYubmF2aWdhdGlvbi1pbmRl bnRlZAotLXsKLS0gIG1hcmdpbi1sZWZ0OiA0MHB4OwotLX0KLS0KLS1kaXYuZGlhZ3JhbQotLXsK LS0gIHRleHQtYWxpZ246IGNlbnRlcjsKLS19Ci0tCi0tZGl2Lm5vdGUKLS17Ci0tICBib3JkZXIt Y29sb3I6IGJsYWNrOwotLSAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7Ci0tICBib3JkZXItd2lkdGg6 IDFweDsKLS0gIG1hcmdpbi10b3A6IDIwcHg7Ci0tICBwYWRkaW5nLWxlZnQ6IDIwcHg7Ci0tICBw YWRkaW5nLXJpZ2h0OiAyMHB4OwotLX0KLS0KLS1zcGFuLm5vdGUKLS17Ci0tICBmb250LXNpemU6 IGxhcmdlOwotLSAgZm9udC13ZWlnaHQ6IGJvbGQ7Ci0tfQotLQotLWNvZGUKLS17Ci0tLyogICBm b250LXdlaWdodDogYm9sZDsgKi8KLS0gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotLSAgY29s b3I6ICM4QjAwMDA7Ci0tLyogIGZvbnQtc2l6ZTogbGFyZ2U7ICovCi0tfQotLQotLXByZS5leGFt cGxlCi0tewotLSAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjBGMDsKLS0gIGNvbG9yOiBibGFjazsK LS0gIGJvcmRlci13aWR0aDogMXB4OwotLSAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7Ci0tICBib3Jk ZXItY29sb3I6IGJsdWU7Ci0tICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAxMHB4OwotLX0KLS0K LS10YWJsZS5mb290LWxpbmtzCi0tewotLSAgd2lkdGg6IDEwMCU7Ci0tICBwYWRkaW5nLXRvcDog MjBweDsKLS19Ci0tCi0tdGQuZm9vdC1saW5rLWxlZnQKLS17Ci0tICB0ZXh0LWFsaWduOiBsZWZ0 OwotLX0KLS0KLS10ZC5mb290LWxpbmstcmlnaHQKLS17Ci0tICB0ZXh0LWFsaWduOiByaWdodDsK LS19Ci0tCi0tcC5jb3B5cmlnaHQKLS17Ci0tICBib3JkZXItdG9wLWNvbG9yOiBibGFjazsKLS0g IGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOwotLSAgYm9yZGVyLXRvcC13aWR0aDogMXB4OwotLSAg cGFkZGluZy10b3A6IDVweDsKLS19Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svSU5TVEFM TCBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RB TEwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvSU5TVEFMTAkyMDA5LTA1LTA2IDAxOjMxOjUwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSwyMzcgQEAKLStJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zCi0rKioqKioqKioqKioqKioq KioqKioqKioqKgotKwotK0NvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwgMjAwNCwgMjAwNSwKLSsyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKwotK1RoaXMgZmlsZSBpcyBmcmVlIGRvY3VtZW50YXRpb247IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSt1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rCi0rQmFzaWMgSW5zdGFsbGF0aW9uCi0r PT09PT09PT09PT09PT09PT09Ci0rCi0rQnJpZWZseSwgdGhlIHNoZWxsIGNvbW1hbmRzIGAuL2Nv bmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJyBzaG91bGQKLStjb25maWd1cmUsIGJ1aWxkLCBh bmQgaW5zdGFsbCB0aGlzIHBhY2thZ2UuICBUaGUgZm9sbG93aW5nCi0rbW9yZS1kZXRhaWxlZCBp bnN0cnVjdGlvbnMgYXJlIGdlbmVyaWM7IHNlZSB0aGUgYFJFQURNRScgZmlsZSBmb3IKLStpbnN0 cnVjdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlLgotKwotKyAgIFRoZSBgY29uZmlndXJl JyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2YWx1ZXMgZm9yCi0rdmFy aW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbi4g IEl0IHVzZXMKLSt0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRp cmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KLStJdCBtYXkgYWxzbyBjcmVhdGUgb25lIG9yIG1vcmUg YC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1kZXBlbmRlbnQKLStkZWZpbml0aW9ucy4gIEZp bmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5zdGF0dXMnIHRoYXQKLSt5 b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3Vy YXRpb24sIGFuZCBhCi0rZmlsZSBgY29uZmlnLmxvZycgY29udGFpbmluZyBjb21waWxlciBvdXRw dXQgKHVzZWZ1bCBtYWlubHkgZm9yCi0rZGVidWdnaW5nIGBjb25maWd1cmUnKS4KLSsKLSsgICBJ dCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5IGNhbGxlZCBgY29uZmln LmNhY2hlJwotK2FuZCBlbmFibGVkIHdpdGggYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnIG9y IHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCi0rdGhlIHJlc3VsdHMgb2YgaXRzIHRlc3RzIHRvIHNw ZWVkIHVwIHJlY29uZmlndXJpbmcuICBDYWNoaW5nIGlzCi0rZGlzYWJsZWQgYnkgZGVmYXVsdCB0 byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Ygc3RhbGUKLStjYWNoZSBm aWxlcy4KLSsKLSsgICBJZiB5b3UgbmVlZCB0byBkbyB1bnVzdWFsIHRoaW5ncyB0byBjb21waWxl IHRoZSBwYWNrYWdlLCBwbGVhc2UgdHJ5Ci0rdG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScg Y291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAotK2RpZmZzIG9yIGluc3Ry dWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBpbiB0aGUgYFJFQURNRScgc28gdGhleSBjYW4K LStiZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4dCByZWxlYXNlLiAgSWYgeW91IGFyZSB1c2luZyB0 aGUgY2FjaGUsIGFuZCBhdAotK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVz dWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKLSttYXkgcmVtb3ZlIG9yIGVkaXQgaXQu Ci0rCi0rICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1 c2VkIHRvIGNyZWF0ZQotK2Bjb25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBjYWxsZWQgYGF1dG9jb25m Jy4gIFlvdSBuZWVkIGBjb25maWd1cmUuYWMnIGlmCi0reW91IHdhbnQgdG8gY2hhbmdlIGl0IG9y IHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcgYSBuZXdlciB2ZXJzaW9uCi0rb2YgYGF1dG9j b25mJy4KLSsKLStUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgot KwotKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIHBhY2thZ2UncyBz b3VyY2UgY29kZSBhbmQgdHlwZQotKyAgICAgYC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhl IHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgotKwotKyAgICAgUnVubmluZyBgY29uZmlndXJlJyBt aWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBydW5uaW5nLCBpdCBwcmludHMKLSsgICAgIHNvbWUg bWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCi0rCi0r ICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxlIHRoZSBwYWNrYWdlLgotKwotKyAgMy4gT3B0aW9u YWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3RzIHRoYXQgY29tZSB3 aXRoCi0rICAgICB0aGUgcGFja2FnZS4KLSsKLSsgIDQuIFR5cGUgYG1ha2UgaW5zdGFsbCcgdG8g aW5zdGFsbCB0aGUgcHJvZ3JhbXMgYW5kIGFueSBkYXRhIGZpbGVzIGFuZAotKyAgICAgZG9jdW1l bnRhdGlvbi4KLSsKLSsgIDUuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVzIGFu ZCBvYmplY3QgZmlsZXMgZnJvbSB0aGUKLSsgICAgIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSBieSB0 eXBpbmcgYG1ha2UgY2xlYW4nLiAgVG8gYWxzbyByZW1vdmUgdGhlCi0rICAgICBmaWxlcyB0aGF0 IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IK LSsgICAgIGEgZGlmZmVyZW50IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3RjbGVh bicuICBUaGVyZSBpcwotKyAgICAgYWxzbyBhIGBtYWtlIG1haW50YWluZXItY2xlYW4nIHRhcmdl dCwgYnV0IHRoYXQgaXMgaW50ZW5kZWQgbWFpbmx5Ci0rICAgICBmb3IgdGhlIHBhY2thZ2UncyBk ZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAotKyAgICAgYWxs IHNvcnRzIG9mIG90aGVyIHByb2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMgdGhh dCBjYW1lCi0rICAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0rCi0rICA2LiBPZnRlbiwgeW91 IGNhbiBhbHNvIHR5cGUgYG1ha2UgdW5pbnN0YWxsJyB0byByZW1vdmUgdGhlIGluc3RhbGxlZAot KyAgICAgZmlsZXMgYWdhaW4uCi0rCi0rQ29tcGlsZXJzIGFuZCBPcHRpb25zCi0rPT09PT09PT09 PT09PT09PT09PT09Ci0rCi0rU29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRpb25zIGZv ciBjb21waWxhdGlvbiBvciBsaW5raW5nIHRoYXQgdGhlCi0rYGNvbmZpZ3VyZScgc2NyaXB0IGRv ZXMgbm90IGtub3cgYWJvdXQuICBSdW4gYC4vY29uZmlndXJlIC0taGVscCcgZm9yCi0rZGV0YWls cyBvbiBzb21lIG9mIHRoZSBwZXJ0aW5lbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotKwotKyAg IFlvdSBjYW4gZ2l2ZSBgY29uZmlndXJlJyBpbml0aWFsIHZhbHVlcyBmb3IgY29uZmlndXJhdGlv biBwYXJhbWV0ZXJzCi0rYnkgc2V0dGluZyB2YXJpYWJsZXMgaW4gdGhlIGNvbW1hbmQgbGluZSBv ciBpbiB0aGUgZW52aXJvbm1lbnQuICBIZXJlCi0raXMgYW4gZXhhbXBsZToKLSsKLSsgICAgIC4v Y29uZmlndXJlIENDPWM5OSBDRkxBR1M9LWcgTElCUz0tbHBvc2l4Ci0rCi0rICAgKk5vdGUgRGVm aW5pbmcgVmFyaWFibGVzOjosIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rQ29tcGlsaW5nIEZvciBN dWx0aXBsZSBBcmNoaXRlY3R1cmVzCi0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0rCi0rWW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtp bmQgb2YgY29tcHV0ZXIgYXQgdGhlCi0rc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRoZSBvYmplY3Qg ZmlsZXMgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlIGluIHRoZWlyCi0rb3duIGRpcmVjdG9yeS4gIFRv IGRvIHRoaXMsIHlvdSBjYW4gdXNlIEdOVSBgbWFrZScuICBgY2QnIHRvIHRoZQotK2RpcmVjdG9y eSB3aGVyZSB5b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBh bmQgcnVuCi0rdGhlIGBjb25maWd1cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1dG9tYXRpY2Fs bHkgY2hlY2tzIGZvciB0aGUKLStzb3VyY2UgY29kZSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQgYGNv bmZpZ3VyZScgaXMgaW4gYW5kIGluIGAuLicuCi0rCi0rICAgV2l0aCBhIG5vbi1HTlUgYG1ha2Un LCBpdCBpcyBzYWZlciB0byBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBvbmUKLSthcmNoaXRlY3R1 cmUgYXQgYSB0aW1lIGluIHRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnkuICBBZnRlciB5b3UgaGF2 ZQotK2luc3RhbGxlZCB0aGUgcGFja2FnZSBmb3Igb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtl IGRpc3RjbGVhbicgYmVmb3JlCi0rcmVjb25maWd1cmluZyBmb3IgYW5vdGhlciBhcmNoaXRlY3R1 cmUuCi0rCi0rSW5zdGFsbGF0aW9uIE5hbWVzCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rQnkg ZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgaW5zdGFsbHMgdGhlIHBhY2thZ2UncyBjb21tYW5kcyB1 bmRlcgotK2AvdXNyL2xvY2FsL2JpbicsIGluY2x1ZGUgZmlsZXMgdW5kZXIgYC91c3IvbG9jYWwv aW5jbHVkZScsIGV0Yy4gIFlvdQotK2NhbiBzcGVjaWZ5IGFuIGluc3RhbGxhdGlvbiBwcmVmaXgg b3RoZXIgdGhhbiBgL3Vzci9sb2NhbCcgYnkgZ2l2aW5nCi0rYGNvbmZpZ3VyZScgdGhlIG9wdGlv biBgLS1wcmVmaXg9UFJFRklYJy4KLSsKLSsgICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5z dGFsbGF0aW9uIHByZWZpeGVzIGZvcgotK2FyY2hpdGVjdHVyZS1zcGVjaWZpYyBmaWxlcyBhbmQg YXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzLiAgSWYgeW91Ci0rcGFzcyB0aGUgb3B0aW9u IGAtLWV4ZWMtcHJlZml4PVBSRUZJWCcgdG8gYGNvbmZpZ3VyZScsIHRoZSBwYWNrYWdlIHVzZXMK LStQUkVGSVggYXMgdGhlIHByZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFy aWVzLgotK0RvY3VtZW50YXRpb24gYW5kIG90aGVyIGRhdGEgZmlsZXMgc3RpbGwgdXNlIHRoZSBy ZWd1bGFyIHByZWZpeC4KLSsKLSsgICBJbiBhZGRpdGlvbiwgaWYgeW91IHVzZSBhbiB1bnVzdWFs IGRpcmVjdG9yeSBsYXlvdXQgeW91IGNhbiBnaXZlCi0rb3B0aW9ucyBsaWtlIGAtLWJpbmRpcj1E SVInIHRvIHNwZWNpZnkgZGlmZmVyZW50IHZhbHVlcyBmb3IgcGFydGljdWxhcgotK2tpbmRzIG9m IGZpbGVzLiAgUnVuIGBjb25maWd1cmUgLS1oZWxwJyBmb3IgYSBsaXN0IG9mIHRoZSBkaXJlY3Rv cmllcwotK3lvdSBjYW4gc2V0IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uCi0r Ci0rICAgSWYgdGhlIHBhY2thZ2Ugc3VwcG9ydHMgaXQsIHlvdSBjYW4gY2F1c2UgcHJvZ3JhbXMg dG8gYmUgaW5zdGFsbGVkCi0rd2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWly IG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJlJyB0aGUKLStvcHRpb24gYC0tcHJvZ3JhbS1wcmVm aXg9UFJFRklYJyBvciBgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVgnLgotKwotK09wdGlvbmFsIEZl YXR1cmVzCi0rPT09PT09PT09PT09PT09PT0KLSsKLStTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRp b24gdG8gYC0tZW5hYmxlLUZFQVRVUkUnIG9wdGlvbnMgdG8KLStgY29uZmlndXJlJywgd2hlcmUg RkVBVFVSRSBpbmRpY2F0ZXMgYW4gb3B0aW9uYWwgcGFydCBvZiB0aGUgcGFja2FnZS4KLStUaGV5 IG1heSBhbHNvIHBheSBhdHRlbnRpb24gdG8gYC0td2l0aC1QQUNLQUdFJyBvcHRpb25zLCB3aGVy ZSBQQUNLQUdFCi0raXMgc29tZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFgg V2luZG93IFN5c3RlbSkuICBUaGUKLStgUkVBRE1FJyBzaG91bGQgbWVudGlvbiBhbnkgYC0tZW5h YmxlLScgYW5kIGAtLXdpdGgtJyBvcHRpb25zIHRoYXQgdGhlCi0rcGFja2FnZSByZWNvZ25pemVz LgotKwotKyAgIEZvciBwYWNrYWdlcyB0aGF0IHVzZSB0aGUgWCBXaW5kb3cgU3lzdGVtLCBgY29u ZmlndXJlJyBjYW4gdXN1YWxseQotK2ZpbmQgdGhlIFggaW5jbHVkZSBhbmQgbGlicmFyeSBmaWxl cyBhdXRvbWF0aWNhbGx5LCBidXQgaWYgaXQgZG9lc24ndCwKLSt5b3UgY2FuIHVzZSB0aGUgYGNv bmZpZ3VyZScgb3B0aW9ucyBgLS14LWluY2x1ZGVzPURJUicgYW5kCi0rYC0teC1saWJyYXJpZXM9 RElSJyB0byBzcGVjaWZ5IHRoZWlyIGxvY2F0aW9ucy4KLSsKLStTcGVjaWZ5aW5nIHRoZSBTeXN0 ZW0gVHlwZQotKz09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rVGhlcmUgbWF5IGJlIHNv bWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBvdXQgYXV0b21hdGljYWxseSwK LStidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIG1hY2hpbmUgdGhlIHBhY2th Z2Ugd2lsbCBydW4gb24uCi0rVXN1YWxseSwgYXNzdW1pbmcgdGhlIHBhY2thZ2UgaXMgYnVpbHQg dG8gYmUgcnVuIG9uIHRoZSBfc2FtZV8KLSthcmNoaXRlY3R1cmVzLCBgY29uZmlndXJlJyBjYW4g ZmlndXJlIHRoYXQgb3V0LCBidXQgaWYgaXQgcHJpbnRzIGEKLSttZXNzYWdlIHNheWluZyBpdCBj YW5ub3QgZ3Vlc3MgdGhlIG1hY2hpbmUgdHlwZSwgZ2l2ZSBpdCB0aGUKLStgLS1idWlsZD1UWVBF JyBvcHRpb24uICBUWVBFIGNhbiBlaXRoZXIgYmUgYSBzaG9ydCBuYW1lIGZvciB0aGUgc3lzdGVt Ci0rdHlwZSwgc3VjaCBhcyBgc3VuNCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2hpY2ggaGFzIHRo ZSBmb3JtOgotKwotKyAgICAgQ1BVLUNPTVBBTlktU1lTVEVNCi0rCi0rd2hlcmUgU1lTVEVNIGNh biBoYXZlIG9uZSBvZiB0aGVzZSBmb3JtczoKLSsKLSsgICAgIE9TIEtFUk5FTC1PUwotKwotKyAg IFNlZSB0aGUgZmlsZSBgY29uZmlnLnN1YicgZm9yIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgZWFj aCBmaWVsZC4gIElmCi0rYGNvbmZpZy5zdWInIGlzbid0IGluY2x1ZGVkIGluIHRoaXMgcGFja2Fn ZSwgdGhlbiB0aGlzIHBhY2thZ2UgZG9lc24ndAotK25lZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0 eXBlLgotKwotKyAgIElmIHlvdSBhcmUgX2J1aWxkaW5nXyBjb21waWxlciB0b29scyBmb3IgY3Jv c3MtY29tcGlsaW5nLCB5b3Ugc2hvdWxkCi0rdXNlIHRoZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUn IHRvIHNlbGVjdCB0aGUgdHlwZSBvZiBzeXN0ZW0gdGhleSB3aWxsCi0rcHJvZHVjZSBjb2RlIGZv ci4KLSsKLSsgICBJZiB5b3Ugd2FudCB0byBfdXNlXyBhIGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdl bmVyYXRlcyBjb2RlIGZvciBhCi0rcGxhdGZvcm0gZGlmZmVyZW50IGZyb20gdGhlIGJ1aWxkIHBs YXRmb3JtLCB5b3Ugc2hvdWxkIHNwZWNpZnkgdGhlCi0rImhvc3QiIHBsYXRmb3JtIChpLmUuLCB0 aGF0IG9uIHdoaWNoIHRoZSBnZW5lcmF0ZWQgcHJvZ3JhbXMgd2lsbAotK2V2ZW50dWFsbHkgYmUg cnVuKSB3aXRoIGAtLWhvc3Q9VFlQRScuCi0rCi0rU2hhcmluZyBEZWZhdWx0cwotKz09PT09PT09 PT09PT09PT0KLSsKLStJZiB5b3Ugd2FudCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGBjb25m aWd1cmUnIHNjcmlwdHMgdG8gc2hhcmUsIHlvdQotK2NhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNj cmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVzIGRlZmF1bHQKLSt2YWx1ZXMgZm9y IHZhcmlhYmxlcyBsaWtlIGBDQycsIGBjYWNoZV9maWxlJywgYW5kIGBwcmVmaXgnLgotK2Bjb25m aWd1cmUnIGxvb2tzIGZvciBgUFJFRklYL3NoYXJlL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMs IHRoZW4KLStgUFJFRklYL2V0Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBj YW4gc2V0IHRoZQotK2BDT05GSUdfU0lURScgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGxv Y2F0aW9uIG9mIHRoZSBzaXRlIHNjcmlwdC4KLStBIHdhcm5pbmc6IG5vdCBhbGwgYGNvbmZpZ3Vy ZScgc2NyaXB0cyBsb29rIGZvciBhIHNpdGUgc2NyaXB0LgotKwotK0RlZmluaW5nIFZhcmlhYmxl cwotKz09PT09PT09PT09PT09PT09PQotKwotK1ZhcmlhYmxlcyBub3QgZGVmaW5lZCBpbiBhIHNp dGUgc2hlbGwgc2NyaXB0IGNhbiBiZSBzZXQgaW4gdGhlCi0rZW52aXJvbm1lbnQgcGFzc2VkIHRv IGBjb25maWd1cmUnLiAgSG93ZXZlciwgc29tZSBwYWNrYWdlcyBtYXkgcnVuCi0rY29uZmlndXJl IGFnYWluIGR1cmluZyB0aGUgYnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhl c2UKLSt2YXJpYWJsZXMgbWF5IGJlIGxvc3QuICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHByb2Js ZW0sIHlvdSBzaG91bGQgc2V0Ci0rdGhlbSBpbiB0aGUgYGNvbmZpZ3VyZScgY29tbWFuZCBsaW5l LCB1c2luZyBgVkFSPXZhbHVlJy4gIEZvciBleGFtcGxlOgotKwotKyAgICAgLi9jb25maWd1cmUg Q0M9L3Vzci9sb2NhbDIvYmluL2djYwotKwotK2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRv IGJlIHVzZWQgYXMgdGhlIEMgY29tcGlsZXIgKHVubGVzcyBpdCBpcwotK292ZXJyaWRkZW4gaW4g dGhlIHNpdGUgc2hlbGwgc2NyaXB0KS4KLSsKLStVbmZvcnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1 ZSBkb2VzIG5vdCB3b3JrIGZvciBgQ09ORklHX1NIRUxMJyBkdWUgdG8KLSthbiBBdXRvY29uZiBi dWcuICBVbnRpbCB0aGUgYnVnIGlzIGZpeGVkIHlvdSBjYW4gdXNlIHRoaXMgd29ya2Fyb3VuZDoK LSsKLSsgICAgIENPTkZJR19TSEVMTD0vYmluL2Jhc2ggL2Jpbi9iYXNoIC4vY29uZmlndXJlIENP TkZJR19TSEVMTD0vYmluL2Jhc2gKLSsKLStgY29uZmlndXJlJyBJbnZvY2F0aW9uCi0rPT09PT09 PT09PT09PT09PT09PT09PQotKwotK2Bjb25maWd1cmUnIHJlY29nbml6ZXMgdGhlIGZvbGxvd2lu ZyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IGl0IG9wZXJhdGVzLgotKwotK2AtLWhlbHAnCi0rYC1o JwotKyAgICAgUHJpbnQgYSBzdW1tYXJ5IG9mIHRoZSBvcHRpb25zIHRvIGBjb25maWd1cmUnLCBh bmQgZXhpdC4KLSsKLStgLS12ZXJzaW9uJwotK2AtVicKLSsgICAgIFByaW50IHRoZSB2ZXJzaW9u IG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCi0rICAgICBzY3Jp cHQsIGFuZCBleGl0LgotKwotK2AtLWNhY2hlLWZpbGU9RklMRScKLSsgICAgIEVuYWJsZSB0aGUg Y2FjaGU6IHVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSwKLSsg ICAgIHRyYWRpdGlvbmFsbHkgYGNvbmZpZy5jYWNoZScuICBGSUxFIGRlZmF1bHRzIHRvIGAvZGV2 L251bGwnIHRvCi0rICAgICBkaXNhYmxlIGNhY2hpbmcuCi0rCi0rYC0tY29uZmlnLWNhY2hlJwot K2AtQycKLSsgICAgIEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScuCi0rCi0r YC0tcXVpZXQnCi0rYC0tc2lsZW50JwotK2AtcScKLSsgICAgIERvIG5vdCBwcmludCBtZXNzYWdl cyBzYXlpbmcgd2hpY2ggY2hlY2tzIGFyZSBiZWluZyBtYWRlLiAgVG8KLSsgICAgIHN1cHByZXNz IGFsbCBub3JtYWwgb3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55IGVycm9y Ci0rICAgICBtZXNzYWdlcyB3aWxsIHN0aWxsIGJlIHNob3duKS4KLSsKLStgLS1zcmNkaXI9RElS JwotKyAgICAgTG9vayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJlY3Rvcnkg RElSLiAgVXN1YWxseQotKyAgICAgYGNvbmZpZ3VyZScgY2FuIGRldGVybWluZSB0aGF0IGRpcmVj dG9yeSBhdXRvbWF0aWNhbGx5LgotKwotK2Bjb25maWd1cmUnIGFsc28gYWNjZXB0cyBzb21lIG90 aGVyLCBub3Qgd2lkZWx5IHVzZWZ1bCwgb3B0aW9ucy4gIFJ1bgotK2Bjb25maWd1cmUgLS1oZWxw JyBmb3IgbW9yZSBkZXRhaWxzLgotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2Vm aWxlIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01h a2VmaWxlCTIwMDktMDUtMDYgMDE6MzI6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL01ha2VmaWxlCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1A QCAtMSwyMCArMCwwIEBACi0tYnVpbGRfbGlicyA6Ci0tCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9j YWwvdGNsYCBidWlsZC50Y2wgY29yZSBjb3JlLXNvIG15c3FsIG15c3FsLXNvIHBvc3RncmVzcWwg cG9zdGdyZXNxbC1zbyBvcmFjbGUgb3JhY2xlLXNvCi0tCi0tdGVzdHMgOgotLQljZCBidWlsZC91 bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIG15c3FsLXRlc3Qgb3JhY2xlLXRlc3QgcG9z dGdyZXNxbC10ZXN0Ci0tCi0taW5zdGFsbCA6Ci0tCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwv dGNsYCBpbnN0YWxsLnRjbAotLQotLXVuaW5zdGFsbCA6Ci0tCWNkIGJ1aWxkL3VuaXgvbG9jYWw7 IC9iaW4vc2ggdW5pbnN0YWxsLnNoCi0tCi0tY2xlYW4gOgotLQlmaW5kIC4gLW5hbWUgJyoubycg fCB4YXJncyBybQotLQlmaW5kIC4gLW5hbWUgJyouYScgfCB4YXJncyBybQotLQlmaW5kIC4gLW5h bWUgJyouc28nIHwgeGFyZ3Mgcm0KLS0Jcm0gLWYgc3JjL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbAotLQlybSAtZiBzcmMvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUKLS0J cm0gLWYgc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwKLS0Jcm0g LXJmIGJ1aWxkL3VuaXgvaW5jbHVkZSBidWlsZC91bml4L2xpYiBidWlsZC91bml4L3Rlc3RzCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAw L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZp bGUuYW0JMjAwOS0wNS0wMyAwMDoxOTo0Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjIg QEAKLSsjIyB0b3AgZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgotKwotK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZwotKwotK0FVVE9NQUtFX09QVElP TlMgPSBkaXN0LWJ6aXAyCi0rCi0raWYgUlVOX1RFU1RTCi0rIyAgVEVTVF9ESVIgPSB0ZXN0Ci0r ZW5kaWYKLSsKLStNQU5fRE9DX0RJUiA9IG1hbgotKwotKyMgTWFpbnRhaW5hbmNlIGZpbGVzCi0r TUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBc Ci0rCQkJY29uZmlnLWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKLSsK LSsjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtl ZmlsZSBjb250cmliCi0rRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJp YgotKwotK0VYVFJBX0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkpIEBQQUNLQUdFQC5tNAotKwotKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0 b3JpZXM6Ci0rU1VCRElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChU RVNUX0RJUikKLSsKLSsKLSsjIENvbmZpZ3VyYXRpb24gaGVscGVycwotK2Jpbl9TQ1JJUFRTID0g QFBBQ0tBR0VALWNvbmZpZwotKwotK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcK LStwa2djb25maWdfREFUQSA9IEBQQUNLQUdFQC5wYwotKwotK200ZGF0YWRpciA9ICQoZGF0YWRp cikvYWNsb2NhbAotK200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00Ci0rCi0rIyBUYXJnZXRzCi0r dW5pbnN0YWxsLWxvY2FsOgotKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRpcikvQFBBQ0tB R0VACi0rCi0rZGlzdC1odG1sOgotKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwKLSsKLSsKLStz bmFwc2hvdDogc25hcHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKLSsKLSsKLStzbmFwc2hvdC1zcmM6 Ci0rICAgICAgICAkKE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSAr IiVZJW0lZCJgCi0rCi0rc25hcHNob3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1s IGh0bWxfdGFybmFtZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJg Ci0rCi0rdXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCi0rCi0rdXBsb2FkLXNyYzogZGlz dAotKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3og XAotKwlAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgotKwotK3VwbG9hZC1odG1s OiBkaXN0LWh0bWwKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRv Yy1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJ T05ALnRhci5iejIKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21t b24gc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL01ha2VmaWxlLmNvbW1vbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24JMjAwOS0wNC0xOCAxNzoyMDoz Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMiBAQAotK0BTRVRfTUFLRUAKLStBTV9DUFBG TEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5pbgot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmluCTIwMDktMDUt MDYgMDE6MzE6NTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDc5NyBAQAotKyMgTWFrZWZp bGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMg QGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhp cyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmli dXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLSsKLStWUEFUSCA9 IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGly ID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJB VE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAot K2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQ VCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQot K3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9 IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFM TCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3Ry aXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSBS RUFETUUgJChhbV9fY29uZmlndXJlX2RlcHMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQo c3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4gXAotKwkkKHNyY2Rp cikvc29jaS5wYy5pbiAkKHNyY2Rpcikvc29jaS5zcGVjLmluIFwKLSsJJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24gJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgQVVUSE9SUyBcCi0rCUNPUFlJ TkcgQ2hhbmdlTG9nIElOU1RBTEwgTkVXUyBjb25maWcvY29uZmlnLmd1ZXNzIFwKLSsJY29uZmln L2NvbmZpZy5zdWIgY29uZmlnL2RlcGNvbXAgY29uZmlnL2luc3RhbGwtc2ggXAotKwljb25maWcv bHRtYWluLnNoIGNvbmZpZy9taXNzaW5nCi0rc3ViZGlyID0gLgotK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVw cyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0r CSQoQUNMT0NBTF9NNCkKLSthbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0 dXMgY29uZmlnLmNhY2hlIGNvbmZpZy5sb2cgXAotKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5z dGF0dXMubGluZW5vCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdf SEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklM RVMgPSBzb2NpLWNvbmZpZyBzb2NpLnBjIHNvY2kuc3BlYwotK2FtX19pbnN0YWxsZGlycyA9ICIk KERFU1RESVIpJChiaW5kaXIpIiAiJChERVNURElSKSQobTRkYXRhZGlyKSIgXAotKwkiJChERVNU RElSKSQocGtnY29uZmlnZGlyKSIKLStiaW5TQ1JJUFRfSU5TVEFMTCA9ICQoSU5TVEFMTF9TQ1JJ UFQpCi0rU0NSSVBUUyA9ICQoYmluX1NDUklQVFMpCi0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VT ID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2 aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUg XAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2 ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSth bV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2Rp cikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAg ICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNl ZCAtZSAnc3xeLiovfHwnYDsKLSttNGRhdGFEQVRBX0lOU1RBTEwgPSAkKElOU1RBTExfREFUQSkK LStwa2djb25maWdEQVRBX0lOU1RBTEwgPSAkKElOU1RBTExfREFUQSkKLStEQVRBID0gJChtNGRh dGFfREFUQSkgJChwa2djb25maWdfREFUQSkKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1v c3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vy c2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9 IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rZGlzdGRp ciA9ICQoUEFDS0FHRSktJChWRVJTSU9OKQotK3RvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotK2Ft X19yZW1vdmVfZGlzdGRpciA9IFwKLSsgIHsgdGVzdCAhIC1kICQoZGlzdGRpcikgXAotKyAgICB8 fCB7IGZpbmQgJChkaXN0ZGlyKSAtdHlwZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cg e30gJzsnIFwKLSsgICAgICAgICAmJiBybSAtZnIgJChkaXN0ZGlyKTsgfTsgfQotK0RJU1RfQVJD SElWRVMgPSAkKGRpc3RkaXIpLnRhci5neiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9 IC0tYmVzdAotK2Rpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAt cHJpbnQKLStkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQK LStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVU T0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtF ID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFH U0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1Rf RklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1T X0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AK LStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA Ci0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9M SUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NA Ci0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBD UFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9D RkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJT ID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAot K0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1P REVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStE RUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAK LStFQ0hPID0gQEVDSE9ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGNzcgPSBARjc3QAotK0ZGTEFHUyA9IEBGRkxBR1NACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwg PSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStM REZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AK LStMSUJUT09MID0gQExJQlRPT0xACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJ Qk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01Z U1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJ R0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9M REZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTUVESVQgPSBATk1F RElUQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0r T1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZM QUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xF X09DSV9WRVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK LStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxF QVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hF TExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAot K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9GNzcgPSBAYWNf Y3RfRjc3QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9 IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0g QGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAot K2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2Nw dSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0g QGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFk aXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAot K2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9 IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19w cmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBA aG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NA Ci0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2lu Y2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9z aCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJk aXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJA Ci0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0r bWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStw ZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5k aXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikg LUkkKHRvcF9zcmNkaXIpCi0rQUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmlnCi0rQVVUT01BS0Vf T1BUSU9OUyA9IGRpc3QtYnppcDIKLSsKLSsjICBURVNUX0RJUiA9IHRlc3QKLStNQU5fRE9DX0RJ UiA9IG1hbgotKwotKyMgTWFpbnRhaW5hbmNlIGZpbGVzCi0rTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBcCi0rCQkJY29uZmlnLWguaW4gc2lj L3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKLSsKLSsKLSsjRVhUUkFfRElTVF9GT1Jf U09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmliCi0rRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJpYgotK0VYVFJBX0RJU1QgPSBN YWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpIEBQQUNL QUdFQC5tNAotKwotKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6Ci0rU1VCRElSUyA9IGJ1 aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKLSsKLSsjIENvbmZp Z3VyYXRpb24gaGVscGVycwotK2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNvbmZpZwotK3BrZ2Nv bmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKLStwa2djb25maWdfREFUQSA9IEBQQUNLQUdF QC5wYwotK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAotK200ZGF0YV9EQVRBID0gQFBB Q0tBR0VALm00Ci0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotK2FtLS1yZWZy ZXNoOgotKwlAOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJ QGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAkKEFV VE9NQUtFKSAtLWdudSAnOyBcCi0rCSAgICAgIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAt LWdudSAgXAotKwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBc Ci0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgIE1ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSAgTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAn JD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGVjaG8gJyAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMnOyBcCi0rCSAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXM7OyBcCi0r CSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCSQo U0hFTEwpIC4vY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHNyY2RpcikgJiYgJChBVVRPQ09O RikKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHNyY2Rp cikgJiYgJChBQ0xPQ0FMKSAkKEFDTE9DQUxfQU1GTEFHUykKLStzb2NpLWNvbmZpZzogJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2ktY29uZmlnLmluCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStzb2NpLnBjOiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5wYy5pbgotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACi0rc29jaS5zcGVj OiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5zcGVjLmluCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStpbnN0 YWxsLWJpblNDUklQVFM6ICQoYmluX1NDUklQVFMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0 ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGJpbmRpcikiCi0r CUBsaXN0PSckKGJpbl9TQ1JJUFRTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgaWYg dGVzdCAtZiAkJGQkJHA7IHRoZW4gXAotKwkgICAgZj1gZWNobyAiJCRwIiB8IHNlZCAnc3xeLiov fHw7JCh0cmFuc2Zvcm0pJ2A7IFwKLSsJICAgIGVjaG8gIiAkKGJpblNDUklQVF9JTlNUQUxMKSAn JCRkJCRwJyAnJChERVNURElSKSQoYmluZGlyKS8kJGYnIjsgXAotKwkgICAgJChiaW5TQ1JJUFRf SU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAotKwkgIGVsc2Ug OjsgZmk7IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1iaW5TQ1JJUFRTOgotKwlAJChOT1JNQUxf VU5JTlNUQUxMKQotKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSknYDsgXAot KwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQoYmluZGlyKS8kJGYnIjsgXAotKwkgIHJtIC1m ICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK21vc3RseWNsZWFuLWxp YnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGli cyBfbGlicwotKwotK2Rpc3RjbGVhbi1saWJ0b29sOgotKwktcm0gLWYgbGlidG9vbAotK2luc3Rh bGwtbTRkYXRhREFUQTogJChtNGRhdGFfREFUQSkKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRl c3QgLXogIiQobTRkYXRhZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobTRkYXRhZGly KSIKLSsJQGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAg aWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJ ICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKG00ZGF0YURBVEFfSU5TVEFMTCkg JyQkZCQkcCcgJyQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmJyI7IFwKLSsJICAkKG00ZGF0YURB VEFfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmIjsgXAotKwlk b25lCi0rCi0rdW5pbnN0YWxsLW00ZGF0YURBVEE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0r CUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9JChh bV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChtNGRhdGFkaXIp LyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmIjsgXAotKwlk b25lCi0raW5zdGFsbC1wa2djb25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRBKQotKwlAJChOT1JN QUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElSX1ApICIk KERFU1RESVIpJChwa2djb25maWdkaXIpIgotKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyBm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNl IGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNo byAiICQocGtnY29uZmlnREFUQV9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnY29u ZmlnZGlyKS8kJGYnIjsgXAotKwkgICQocGtnY29uZmlnREFUQV9JTlNUQUxMKSAiJCRkJCRwIiAi JChERVNURElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwt cGtnY29uZmlnREFUQToKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnY29u ZmlnX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIp IFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmJyI7IFwK LSsJICBybSAtZiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsK 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 MF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg 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 IEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJJChhbV9fcmVt b3ZlX2Rpc3RkaXIpCi0rCXRlc3QgLWQgJChkaXN0ZGlyKSB8fCBta2RpciAkKGRpc3RkaXIpCi0r CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK LSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0r CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJ CSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc Ci0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQo ZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChk aXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQk ZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQo RElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwK LSsJICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikg JiYgcHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAm JiBwd2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJ ICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlz dGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGly KSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJLWZpbmQgJChk aXN0ZGlyKSAtdHlwZSBkICEgLXBlcm0gLTc3NyAtZXhlYyBjaG1vZCBhK3J3eCB7fSBcOyAtbyBc Ci0rCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30g XDsgLW8gXAotKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7 IC1vIFwKLSsJICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1leGVjICQoaW5zdGFsbF9zaCkgLWMg LW0gYStyIHt9IHt9IFw7IFwKLSsJfHwgY2htb2QgLVIgYStyICQoZGlzdGRpcikKLStkaXN0LWd6 aXA6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChH WklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rpc3Rk aXIpCi0rZGlzdC1iemlwMjogZGlzdGRpcgotKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190 YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgotKwkkKGFtX19yZW1vdmVfZGlz dGRpcikKLSsKLStkaXN0LWx6bWE6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChh bV9fdGFyKSB8IGx6bWEgLTkgLWMgPiQoZGlzdGRpcikudGFyLmx6bWEKLSsJJChhbV9fcmVtb3Zl X2Rpc3RkaXIpCi0rCi0rZGlzdC10YXJaOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYm ICQoYW1fX3RhcikgfCBjb21wcmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgotKwkkKGFtX19yZW1v dmVfZGlzdGRpcikKLSsKLStkaXN0LXNoYXI6IGRpc3RkaXIKLSsJc2hhciAkKGRpc3RkaXIpIHwg R1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnNoYXIuZ3oKLSsJJChhbV9fcmVt b3ZlX2Rpc3RkaXIpCi0rCi0rZGlzdC16aXA6IGRpc3RkaXIKLSsJLXJtIC1mICQoZGlzdGRpciku emlwCi0rCXppcCAtcnEgJChkaXN0ZGlyKS56aXAgJChkaXN0ZGlyKQotKwkkKGFtX19yZW1vdmVf ZGlzdGRpcikKLSsKLStkaXN0IGRpc3QtYWxsOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIp ICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFy Lmd6Ci0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChk aXN0ZGlyKS50YXIuYnoyCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotKyMgVGhpcyB0YXJn ZXQgdW50YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4g IFRoZW4KLSsjIGl0IGd1YXJhbnRlZXMgdGhhdCB0aGUgZGlzdHJpYnV0aW9uIGlzIHNlbGYtY29u dGFpbmVkIGJ5IG1ha2luZyBhbm90aGVyCi0rIyB0YXJmaWxlLgotK2Rpc3RjaGVjazogZGlzdAot KwljYXNlICckKERJU1RfQVJDSElWRVMpJyBpbiBcCi0rCSoudGFyLmd6KikgXAotKwkgIEdaSVA9 JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7 XAotKwkqLnRhci5iejIqKSBcCi0rCSAgYnVuemlwMiAtYyAkKGRpc3RkaXIpLnRhci5iejIgfCAk KGFtX191bnRhcikgOztcCi0rCSoudGFyLmx6bWEqKSBcCi0rCSAgdW5sem1hIC1jICQoZGlzdGRp cikudGFyLmx6bWEgfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLloqKSBcCi0rCSAgdW5jb21w cmVzcyAtYyAkKGRpc3RkaXIpLnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAotKwkqLnNoYXIuZ3oq KSBcCi0rCSAgR1pJUD0kKEdaSVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGlyKS5zaGFyLmd6IHwg dW5zaGFyIDs7XAotKwkqLnppcCopIFwKLSsJICB1bnppcCAkKGRpc3RkaXIpLnppcCA7O1wKLSsJ ZXNhYwotKwljaG1vZCAtUiBhLXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQoZGlzdGRpcikKLSsJ bWtkaXIgJChkaXN0ZGlyKS9fYnVpbGQKLSsJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAotKwljaG1v ZCBhLXcgJChkaXN0ZGlyKQotKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2NkKSAkKGRpc3RkaXIp L19pbnN0ICYmIHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdgIFwKLSsJICAmJiBk Y19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKLSsJICAmJiBjZCAkKGRp c3RkaXIpL19idWlsZCBcCi0rCSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGlyPS4uIC0tcHJlZml4 PSIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdT KSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGR2aSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sg XAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAotKwkgICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGxjaGVjayBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdW5pbnN0YWxsIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0 dW5pbnN0YWxsY2hlY2tfZGlyPSIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkgICAgICAgIGRpc3R1 bmluc3RhbGxjaGVjayBcCi0rCSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIg XAotKwkgICYmICh7IFwKLSsJICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAwNzcgJiYgbWtkaXIg IiQkZGNfZGVzdGRpciIpIFwKLSsJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERF U1RESVI9IiQkZGNfZGVzdGRpciIgaW5zdGFsbCBcCi0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCi0rCSAgICAgICAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIFwKLSsJICAg ICAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0 YWxsY2hlY2s7IFwKLSsJICAgICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAx OyB9KSBcCi0rCSAgJiYgcm0gLXJmICIkJGRjX2Rlc3RkaXIiIFwKLSsJICAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBkaXN0IFwKLSsJICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCi0r CSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sKLSsJJChhbV9fcmVt b3ZlX2Rpc3RkaXIpCi0rCUAoZWNobyAiJChkaXN0ZGlyKSBhcmNoaXZlcyByZWFkeSBmb3IgZGlz dHJpYnV0aW9uOiAiOyBcCi0rCSAgbGlzdD0nJChESVNUX0FSQ0hJVkVTKSc7IGZvciBpIGluICQk bGlzdDsgZG8gZWNobyAkJGk7IGRvbmUpIHwgXAotKwkgIHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAt ZSAxcCAtZSAxeCAtZSAnJCRwJyAtZSAnJCR4JwotK2Rpc3R1bmluc3RhbGxjaGVjazoKLSsJQGNk ICQoZGlzdHVuaW5zdGFsbGNoZWNrX2RpcikgXAotKwkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxj aGVja19saXN0ZmlsZXMpIHwgd2MgLWxgIC1sZSAxIFwKLSsJICAgfHwgeyBlY2hvICJFUlJPUjog ZmlsZXMgbGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKLSsJICAgICAgICBpZiB0ZXN0IC1uICIk KERFU1RESVIpIjsgdGhlbiBcCi0rCSAgICAgICAgICBlY2hvICIgIChjaGVjayBERVNURElSIHN1 cHBvcnQpIjsgXAotKwkgICAgICAgIGZpIDsgXAotKwkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNo ZWNrX2xpc3RmaWxlcykgOyBcCi0rCSAgICAgICAgZXhpdCAxOyB9ID4mMgotK2Rpc3RjbGVhbmNo ZWNrOiBkaXN0Y2xlYW4KLSsJQGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCi0rCSAg ZWNobyAiRVJST1I6IGRpc3RjbGVhbmNoZWNrIGNhbiBvbmx5IHJ1biBmcm9tIGEgVlBBVEggYnVp bGQiIDsgXAotKwkgIGV4aXQgMSA7IFwKLSsJZmkKLSsJQHRlc3QgYCQoZGlzdGNsZWFuY2hlY2tf bGlzdGZpbGVzKSB8IHdjIC1sYCAtZXEgMCBcCi0rCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMg bGVmdCBpbiBidWlsZCBkaXJlY3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCi0rCSAgICAgICAk KGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgOyBcCi0rCSAgICAgICBleGl0IDE7IH0gPiYyCi0r Y2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2Vm aWxlICQoU0NSSVBUUykgJChEQVRBKQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNp dmUKLStpbnN0YWxsZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIg IiQoREVTVERJUikkKG00ZGF0YWRpcikiICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8g XAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQot K2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0 YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0r aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJ JChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8 IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSci YCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwot K2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8 fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUyki IHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2 ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NP TkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xl YW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBo dG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsK LStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLXBrZ2NvbmZpZ0RB VEEKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1l eGVjLWFtOiBpbnN0YWxsLWJpblNDUklQVFMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsK LStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06 Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJt IC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtcmYgJCh0b3Bfc3JjZGly KS9hdXRvbTR0ZS5jYWNoZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStw ZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1h bTogdW5pbnN0YWxsLWJpblNDUklQVFMgdW5pbnN0YWxsLWxvY2FsIFwKLSsJdW5pbnN0YWxsLW00 ZGF0YURBVEEgdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3Rh bGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVj ayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjdGFncyBj dGFncy1yZWN1cnNpdmUgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKLSsJZGlzdC1nemlwIGRp c3QtbHptYSBkaXN0LXNoYXIgZGlzdC10YXJaIGRpc3QtemlwIGRpc3RjaGVjayBcCi0rCWRpc3Rj bGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBc Ci0rCWRpc3RjbGVhbmNoZWNrIGRpc3RkaXIgZGlzdHVuaW5zdGFsbGNoZWNrIGR2aSBkdmktYW0g aHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxs LWJpblNDUklQVFMgXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZp IGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBp bnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBk Zi1hbSBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0g aW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRp cnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4t bGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmlu c3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBc Ci0rCXVuaW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1wa2djb25maWdEQVRBCi0rCi0rQFNF VF9NQUtFQAotKwotKyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJcm0gLXJmICQoREVT VERJUikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoKLSsJJChNQUtFKSAt QyBkb2MgZGlzdC1odG1sCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1s Ci0rCi0rc25hcHNob3Qtc3JjOgotKyAgICAgICAgJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tB R0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0bWw6Ci0rCSQoTUFL RSkgLUMgZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1k b2MtYGRhdGUgKyIlWSVtJWQiYAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAot KwotK3VwbG9hZC1zcmM6IGRpc3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1F QC1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5i ejIKLSsKLSt1cGxvYWQtaHRtbDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tB R0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5B TUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9t YW4vTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDkuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDQgQEAKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0g c29jaS1jb25maWcuMQotKwotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01h a2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmluCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9N YWtlZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSw0MzAgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJv bSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMp IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0r IyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBs YXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01B S0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdF QAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChp bmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59 JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3No KSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5z dGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElO U1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9S TUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05P Uk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9 IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK3N1 YmRpciA9IG1hbgotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGly KS9NYWtlZmlsZS5pbgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSth bV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jl c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVw cykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3Rh bGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRp cikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElT VF9TT1VSQ0VTID0KLSttYW4xZGlyID0gJChtYW5kaXIpL21hbjEKLSthbV9faW5zdGFsbGRpcnMg PSAiJChERVNURElSKSQobWFuMWRpcikiCi0rTlJPRkYgPSBucm9mZgotK01BTlMgPSAkKG1hbl9N QU5TKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFS QAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVU T0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NG TEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRF X1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElC QAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9M SUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA Ci0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0r Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJ QiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0g QEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1Rf VkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJ T05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0g QENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRf Q0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09O RklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0g QENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hY REVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhf VyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZ TVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0r RUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAot K0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dF TkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAg PSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExf REFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NS SVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxM X1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JK U0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AK LStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElS X1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NP TkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FM X0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJT ID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdT QAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09D SV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0r UEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0g QFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNL QUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9 IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK LStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1f UkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9N QUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFE RVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFO RCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGly ID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9i dWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bf c3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhA Ci0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK LSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0r YmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29z QAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJA Ci0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2Rp ZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9z dEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0r aG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxk aXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBp bmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9v a0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStt YW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAot K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2Rp ciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAot K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLSsKLSsjIE1hbiBwYWdl cwotK21hbl9NQU5TID0gc29jaS1jb25maWcuMQotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQot K2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAq JCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSAgbWFuL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYm IFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgbWFuL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtl ZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0r CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSsk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChD T05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICou bG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1t YW4xOiAkKG1hbjFfTUFOUykgJChtYW5fTUFOUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRl c3QgLXogIiQobWFuMWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgot KwlAbGlzdD0nJChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0X21hbjFfTUFO UyknOyBcCi0rCWwyPSckKG1hbl9NQU5TKSAkKGRpc3RfbWFuX01BTlMpICQobm9kaXN0X21hbl9N QU5TKSc7IFwKLSsJZm9yIGkgaW4gJCRsMjsgZG8gXAotKwkgIGNhc2UgIiQkaSIgaW4gXAotKwkg ICAgKi4xKikgbGlzdD0iJCRsaXN0ICQkaSIgOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQoc3JjZGlyKS8kJGk7IHRo ZW4gZmlsZT0kKHNyY2RpcikvJCRpOyBcCi0rCSAgZWxzZSBmaWxlPSQkaTsgZmk7IFwKLSsJICBl eHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxcLi8vJ2A7IFwKLSsJICBjYXNlICIkJGV4dCIg aW4gXAotKwkgICAgMSopIDs7IFwKLSsJICAgICopIGV4dD0nMScgOzsgXAotKwkgIGVzYWM7IFwK LSsJICBpbnN0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9cXC5bMC05YS16XSokJC8vJ2A7IFwKLSsJ ICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKLSsJICBpbnN0PWBl Y2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKLSsJICBlY2hvICIgJChJ TlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAot KwkgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0 IjsgXAotKwlkb25lCi0rdW5pbnN0YWxsLW1hbjE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0r CUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5T KSc7IFwKLSsJbDI9JyQobWFuX01BTlMpICQoZGlzdF9tYW5fTUFOUykgJChub2Rpc3RfbWFuX01B TlMpJzsgXAotKwlmb3IgaSBpbiAkJGwyOyBkbyBcCi0rCSAgY2FzZSAiJCRpIiBpbiBcCi0rCSAg ICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0r CWZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgIGV4dD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXi4q XFwuLy8nYDsgXAotKwkgIGNhc2UgIiQkZXh0IiBpbiBcCi0rCSAgICAxKikgOzsgXAotKwkgICAg KikgZXh0PScxJyA7OyBcCi0rCSAgZXNhYzsgXAotKwkgIGluc3Q9YGVjaG8gJCRpIHwgc2VkIC1l ICdzL1xcLlswLTlhLXpdKiQkLy8nYDsgXAotKwkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkIC1l ICdzL14uKlwvLy8nYDsgXAotKwkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkICckKHRyYW5zZm9y bSknYC4kJGV4dDsgXAotKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQobWFuMWRpcikvJCRp bnN0JyI7IFwKLSsJICBybSAtZiAiJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0IjsgXAotKwlk b25lCi0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0r Ci0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIp IiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVj aG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwls aXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0 OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAv fHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIp L3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkg YGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRp cikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAot Kwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8 fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAg aWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIg fCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8k JGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQo c3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwK LSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3Ag LXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2Fs bC1hbTogTWFrZWZpbGUgJChNQU5TKQotK2luc3RhbGxkaXJzOgotKwlmb3IgZGlyIGluICIkKERF U1RESVIpJChtYW4xZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9Q KSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVj OiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5z dGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAot KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLStt b3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdl bmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xl YW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0r CS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVy aWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0r aW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxs LW1hbgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZXhlYy1h bToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46IGluc3RhbGwtbWFuMQotKwotK2luc3Rh bGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsK LStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4t YW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFu LWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwot K3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgotKwotK3VuaW5zdGFsbC1t YW46IHVuaW5zdGFsbC1tYW4xCi0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAot KwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFu LWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxs LXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3Rh bGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFu IG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdW5pbnN0 YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCi0rCi0rIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv bWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCi0t LS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3NvY2ktY29uZmln LjEJMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzkgQEAK LSsuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5IgotKy5TSCBOQU1FCi0rc29jaS1jb25maWcgLSBz Y3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBvZiB0aGUgaW5z dGFsbGVkIFNPQ0kgbGlicmFyeQotKy5TSCBTWU5PUFNJUwotKy5CIHNvY2ktY29uZmlnCi0rW1wt XC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3NdCi0rLlNIIERF U0NSSVBUSU9OCi0rLlBQCi0rXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNl ZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCi0rdGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxh Z3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCi0rYW5kIGxpbmsgcHJvZ3JhbXMgdGhh dCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKLSt0byB0aGUgLm00 IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggXGZJU09DSVxm UC4KLSsuCi0rLlNIIE9QVElPTlMKLSsubAotK1xmSXNvY2ktY29uZmlnXGZQIGFjY2VwdHMgdGhl IGZvbGxvd2luZyBvcHRpb25zOgotKy5UUCA4Ci0rLkIgIFwtXC12ZXJzaW9uCi0rUHJpbnQgdGhl IGN1cnJlbnRseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBcZklTT0NJXGZQIG9uIHRoZSBzdGFuZGFy ZCBvdXRwdXQuCi0rLlRQIDgKLSsuQiAgXC1cLWxpYnMKLStQcmludCB0aGUgbGlua2VyIGZsYWdz IHRoYXQgYXJlIG5lY2Vzc2FyeSB0byBsaW5rIGEgXGZJU09DSVxmUCBwcm9ncmFtLCB3aXRoIGNi bGFzCi0rLlRQIDgKLSsuQiAgXC1cLWNmbGFncwotK1ByaW50IHRoZSBjb21waWxlciBmbGFncyB0 aGF0IGFyZSBuZWNlc3NhcnkgdG8gY29tcGlsZSBhIFxmSVNPQ0lcZlAgcHJvZ3JhbS4KLSsuVFAg OAotKy5CICBcLVwtcHJlZml4Ci0rU2hvdyB0aGUgU09DSSBpbnN0YWxsYXRpb24gcHJlZml4Lgot Ky5TSCBTRUUgQUxTTwotKy5CUiBndGstY29uZmlnICgxKSwKLSsuQlIgZ25vbWUtY29uZmlnICgx KQotKy5TSCBDT1BZUklHSFQKLStDb3B5cmlnaHQgXChjbyAgMjAwOSBEZW5pcyBBcm5hdWQKLSsK LStQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNv ZnR3YXJlIGFuZCBpdHMKLStkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91 dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCi0rcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdAotK2JvdGggdGhhdCBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbgotK3N1cHBv cnRpbmcgZG9jdW1lbnRhdGlvbi4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9ORVdTIHNv Y2ktMy4wLjBfdHJlcDMwMC9ORVdTCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTkVXUwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdT CTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMgQEAKLSsK LSsqIFdlZCBNYXIgMjYgMjAwOSBSUE0gcmVsZWFzZSBmb3IgdmVyc2lvbiAzLjAuMAotKwotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUu YW0JMjAwOS0wNC0yOCAyMzoxNToxNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOSBAQAot K2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLSsjIyBTb3VyY2UgZGly ZWN0b3J5Ci0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJ UlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAotKwotK0VY VFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFr ZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0OC4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsNTM2IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4x MC4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJp Z2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAy MDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRp ciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9 IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklO U1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9z dEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZp bGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kv YmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2Fj bG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQo Q09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09V UkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2 ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJz aXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3Rh bGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1 cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZl Ci0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4t cmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1 cnNpdmUKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQo U1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChU RVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBB TVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0g QEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09T VF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1Rf REFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVN X0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9P U1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhf TElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElC QAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVB RF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJP T1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFH UyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBV TklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklU X0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lP TiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAot K0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQ QVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAot K0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBARUNIT0AKLStFQ0hPX0MgPSBARUNIT19D QAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JF UEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBGNzdACi0rRkZMQUdTID0gQEZGTEFHU0AK LStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStH UkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNU QUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxM X1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5T VEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJ Qk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMTl9TID0gQExO X1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStN S0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNR TF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStN WVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9W RVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVf RElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NG TEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNM RV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rUEFDS0FHRSA9IEBQQUNLQUdF QAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFN RSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0r UEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBA UEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BF UkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdT ID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJ UlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JF U1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0r UlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBT RVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf SEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NP TU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWls ZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190 b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNf dG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3Rf Q1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1 ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBA YW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFy QAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBA YnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWls ZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxk ZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAK LStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0g QGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AK LStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0g QGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1 QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLSto dG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIg PSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0 ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0r bG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJA Ci0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRp ciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZp eEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0r cHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tA Ci0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAK LStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlh c0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGly ID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxB R1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9E SVJTQCBAT1JBQ0xFX0RJUlNACi0rRVhUUkFfRElTVCA9IAotK2FsbDogYWxsLXJlY3Vyc2l2ZQot KwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMp Ci0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMp JyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJ ICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0 b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSc7 IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kv YmFja2VuZHMvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAn JD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0r CSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5D SUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsK LSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6 Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0 b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFu ZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8g Y2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5n IE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3Rh dHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUg TWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIp IG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5k IGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0r CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAq PSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkg IGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAg fCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49 eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAot KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8 IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAi bm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8 IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZM QUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0r CSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1h aW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlz dD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJ cmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK LSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAk JGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6 Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRl c3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4g fHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlk b25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykK LSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwK LSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7 IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUg fCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkg ICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9 J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3Mt cmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAot KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJ aWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsg dGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlf Zml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAg ZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRh Z3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAot Kwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykg JChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczog Q1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8 fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBc Ci0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAk KHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAg JiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJ LXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGly OiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bf c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElT VEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8g JCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0r CSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwK LSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRk aXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1te L10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxl IGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQg JCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1k ICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAn cywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0 ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQk ZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3Ag LXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAot KwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRm aWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0r CWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVz dCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0 ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFt X19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2Qp ICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAg ICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0 b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAot KwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAot KwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJ ZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFt OiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxs ZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1h bQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0 YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwt c3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2Vu ZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1v c3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAt ZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlz dGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRt bDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06 Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0 bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNoZWNrLWFt OgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1y bSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZl Ci0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVj dXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJ aW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNr LWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWN0YWdzIGN0YWdzLXJl Y3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9v bCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5m byBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRh dGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJ aW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwK LSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwK LSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXIt Y2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xl YW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0 YWdzIHRhZ3MtcmVjdXJzaXZlIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRf TUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA2IDAxOjMyOjQxLjAw MDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L2NvbW1vbi5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDcg KzYsMTMgQEAKLSAvLwotIAotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAic29jaS1i YWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRl IDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNp bmNsdWRlIDxjc3RkbGliPgotICNpbmNsdWRlIDxjdGltZT4KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01h a2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDI2IEBACi0rIyMgYmFja2VuZHMvbXlzcWwgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0r Ci0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAuIHRl c3QKLSsKLStpZiBIQVZFX01ZU1FMCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX215c3FsLmxh Ci0rCi0rbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTPSAkKGJja19teXNxbF9oX3NvdXJjZXMpICQo YmNrX215c3FsX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1Z U1FMX0NGTEFHUykKLStsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9Ci0rbGlic29jaV9teXNxbF9s YV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChC T09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rCS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJ QlJBUllfVkVSU0lPTikKLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNf QlVSSUVECi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9t eXNxbAotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0r cGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTA2IDAxOjMy OjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L215c3FsL01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci1AQCAtMSw5NyArMCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lm aWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVw ZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5 LgotLQotLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNxbAotLU1ZU1FMTElCUyA9IC1sbXlz cWxjbGllbnQgLWx6Ci0tTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKLS0K LS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0 IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVk YW50aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKLS1J TkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJUn0KLS0KLS0KLS1PQkpF Q1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8gc3RhbmRhcmQtaW50by10 eXBlLm8gXAotLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZlY3Rvci1pbnRvLXR5 cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCi0tCWNvbW1vbi5vCi0tCi0tCi0tT0JKRUNUU1NPID0g YmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCi0tCXN0YW5kYXJk LWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAotLQl2 ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1zLm8KLS0KLS0K LS1saWJzb2NpX215c3FsLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwot LQotLQotLWJsb2IubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tY29tbW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9y eS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1yb3ctaWQubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlw ZS5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11 c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KLS0KLS1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0 b3ItaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNoYXJlZCA6 ICR7T0JKRUNUU1NPfQotLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfbXlzcWwuc28g JHtPQkpFQ1RTU099Ci0tCXJtICoubwotLQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWNvbW1v bi1zLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NT T30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ct aWQtcy5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3Rh bmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJk LXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6 IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlw ZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0K LS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfbXlzcWwuYSBsaWJzb2NpX215c3FsLnNvCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ4LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw3OTYgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRv bWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0r IyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50 IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9T RS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK LSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYm IGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxs X3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGlu c3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zv cm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJF X0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0r UFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0g QGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChhbV9fcGtn aW5jbHVkZV9IRUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbAotK0FDTE9DQUxfTTQg PSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9t eXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAot K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19D TEVBTl9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGlu IFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3Ry aXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIg PSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7Ci0rYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStsaWJMVExJ QlJBUklFU19JTlNUQUxMID0gJChJTlNUQUxMKQotK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJS QVJJRVMpCi0rbGlic29jaV9teXNxbF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX215 c3FsX2xhX1NPVVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2Np LW15c3FsLmggXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAg XAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBcCi0rCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK2FtX19vYmplY3RzXzEg PQotK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gbGlic29jaV9teXNx bF9sYS1jb21tb24ubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gbGlic29jaV9t eXNxbF9sYS1yb3ctaWQubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gXAotKwls aWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5s byBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvCi0rQEhBVkVfTVlTUUxfVFJVRUBhbV9saWJzb2Np X215c3FsX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpIFwKLStASEFWRV9NWVNRTF9UUlVF QAkkKGFtX19vYmplY3RzXzIpCi0rbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9saWJz b2NpX215c3FsX2xhX09CSkVDVFMpCi0rbGlic29jaV9teXNxbF9sYV9MSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1saW5rICQoQ1hYTEQpIFwKLSsJJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSBcCi0rCSQobGlic29jaV9teXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0r QEhBVkVfTVlTUUxfVFJVRUBhbV9saWJzb2NpX215c3FsX2xhX3JwYXRoID0gLXJwYXRoICQobGli ZGlyKQotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIp L3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAot K2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChD WFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERG TEFHUykgLW8gJEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1Mp ICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChM SUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJ LS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykg XAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VS Q0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNU KQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZp LXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vy c2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJl Y3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZl IHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK2Ft X19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJ 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 IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNI TyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hP X1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3 ID0gQEY3N0AKLStGRkxBR1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElO U1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAot K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFH UyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElC VE9PTCA9IEBMSUJUT09MQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpT QAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0r TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFH U0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAK LStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNM RV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9 IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lf VkVSU0lPTkAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFD S0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdF X1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9U QVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBB UkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQ R19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9T VEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBA UE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZF UlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAK LStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAot K1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAK LStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStW RVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNf c3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxk ZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFj X2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3 N0AKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1f X2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9f dGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWls ZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBA YnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWls ZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAot K2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2Nk aXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZp ZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4 QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3Rf YWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hv c3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRl ZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBA aW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAot K2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xv Y2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGly X3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGly ID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUg PSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0g QHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRz dGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAK LSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9w X2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNk aXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0 b3Bfc3JjZGlyKQotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotKwotK2Jja19teXNxbF9jY19zb3Vy Y2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2Iu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24u Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlk LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lv bi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotK0BI QVZFX01ZU1FMX1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9teXNxbC5sYQotK0BIQVZF X01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTID0gJChiY2tfbXlzcWxfaF9zb3Vy Y2VzKSAkKGJja19teXNxbF9jY19zb3VyY2VzKSAKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lf bXlzcWxfbGFfQ1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStASEFWRV9NWVNRTF9UUlVFQGxp YnNvY2lfbXlzcWxfbGFfTElCQUREID0gCi0rQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3Fs X2xhX0xERkxBR1MgPSBcCi0rQEhBVkVfTVlTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NU X0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX01Z U1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStA SEFWRV9NWVNRTF9UUlVFQHBrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBz b2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RS VUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAot K2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxv IC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9f Y29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCi0rCQkm JiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot KwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNr ZW5kcy9teXNxbC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChB VVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLStpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9M VExJQlJBUklFUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobGliZGlyKSIg fHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobGliZGlyKSIKLSsJQGxpc3Q9JyQobGliX0xUTElC UkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVu IFwKLSsJICAgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgICBlY2hvICIgJChMSUJUT09MKSAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRM SUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIp JChsaWJkaXIpLyQkZiciOyBcCi0rCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAk KElOU1RBTExfU1RSSVBfRkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAot KwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoK LSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZv ciBwIGluICQkbGlzdDsgZG8gXAotKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAi ICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5p bnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCi0rCSAgJChMSUJUT09M KSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0g LWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRwIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRM SUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGli X0xUTElCUkFSSUVTKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRs aXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsg XAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1m IFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2Nh dGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxfbGFf T0JKRUNUUykgJChsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9t eXNxbF9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9teXNx bF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9z dGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNv bXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3Rl QAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1z ZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVv dGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1N VCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBs aWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAg JDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAt TVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cp ICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChE RVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hY Q09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChE RVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lf bXlzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2Iu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxv Yi5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlRwbyAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5j cHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJs b2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L2Jsb2IuY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL2NvbW1vbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1jb21tb24uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwJyBvYmplY3Q9J2xp YnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24u Y3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xh LWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9m YWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLWZhY3RvcnkuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0 PSdsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv ZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLXJvdy1pZC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0n bGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1p ZC5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zZXNzaW9u LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNx bF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5k YXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcg b2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9t eXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3Rh bmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX215c3Fs X2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRl bWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGli c29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0 YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAnIG9iamVjdD0n bGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNx bF9sYS12ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215 c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9y LWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlw ZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVj dG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxf bGEtdmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZl Y3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10 eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNs ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1y ZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9I RUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGly KSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSck KHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChh bV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkg JyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgJChwa2dp bmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlA JChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIg cm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotKyMgVGhpcyBkaXJl Y3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNk Ci0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMg TWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBp bnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBz ZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGlj aCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVu IGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0 aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxj b209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2Ug JCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdm YWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0r CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc Ci0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZp OyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0 ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0r JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZv ciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSog fCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVz YWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkg IGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUykn IDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNl ZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVj aG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJ ICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJ ICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQp IFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIK LSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVz dCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElT UCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt dHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdT Ci0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJ aGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1 ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0t LWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0r CSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdT IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1Nf QVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlx dWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsg XAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJT KSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQo TElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdT KSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJ aGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRv cF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rp c3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEgg dGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0 cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGlu ICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2Rp cnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1 aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1L RElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8Xnwk KGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVz YWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAk JGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsg XAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8k JGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNy Y2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNw IC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAg IGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAx OyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAg IHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAx OyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9k aXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQk c3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAg IHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0 ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9s ZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1y ZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStp bnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZv ciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0r CWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQot K3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQot KwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1h bQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3Ry aXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJp YzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFp bmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUg c3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFO RklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1y ZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklF UyBjbGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3Rj bGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUK LStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5l cmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmkt YW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQot KwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt ZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVj ay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQot Kwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xl YW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHlj bGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNs ZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wK LSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2 ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVT IHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1z dHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVf VEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFu IGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0 YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0 Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3Rk aXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0 YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0 YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRm LWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMt YW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFs bGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0 YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwt bGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtF QAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0 IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0 IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCTIwMDktMDUtMDYgMDE6MzI6NDEu MDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvc29jaS1teXNxbC5oCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAt MjMsMTIgKzIzLDIzIEBACi0gI2lmbmRlZiBTT0NJX01ZU1FMX0RFQ0wKLSAjIGRlZmluZSBTT0NJ X01ZU1FMX0RFQ0wKLSAjZW5kaWYKLS0KLS0jaW5jbHVkZSAic29jaS1iYWNrZW5kLmgiCi0rLy8K LSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQu aD4KLSsjZW5kaWYKLSsvLwotICNpZmRlZiBfV0lOMzIKLSAjaW5jbHVkZSA8d2luc29jay5oPiAv LyBTT0NLRVQKLSAjZW5kaWYgLy8gX1dJTjMyCi0tI2luY2x1ZGUgPG15c3FsLmg+IC8vIE15U1FM IENsaWVudAotKy8vCi0rLy8gTXlTUUwgQ2xpZW50Ci0rI2lmIGRlZmluZWQoU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsLmg+Ci0rI2Vsc2UK LSsjCWluY2x1ZGUgPG15c3FsLmg+Ci0rI2VuZGlmCi0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAKLSAK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMu bWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsMTQgQEAKLStiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStiY2tfbXlz cWxfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUu Y3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAw MDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw Ci1AQCAtOCw4ICs4LDE0IEBACi0gCi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNs dWRlICJzb2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSAjaW5jbHVk ZSAiY29tbW9uLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5j bHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+ Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0gI2luY2x1ZGUgPGN0aW1lPgotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAw MDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxOCBAQAotKyMjIGJhY2tlbmQvbXlzcWwvdGVzdCBz dWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2lu Y2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rCi0raWYgUlVOX1RFU1RTCi0rICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215 c3FsCi0rZW5kaWYKLSsKLSt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291 cmNlcykKLSt0ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9teXNx bF9MREFERCA9Ci0rdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29y ZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5k cy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKLSsJCSQoTVlTUUxfTERGTEFHUykKLSsKLSsjbm9k aXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJh c2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUu YmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFr ZWZpbGUuYmFzaWMJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMiArMCwwIEBACi0tIyBU aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0 aGVpciBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQg LSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU1ZU1FMTElCRElSID0gLUwv dXNyL2xpYi9teXNxbAotLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6Ci0tTVlTUUxJTkNM VURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtl ZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJ TEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1J TkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQotLUxJ QkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke01ZU1FMTElCRElSfQotLUxJQlMgPSAtbHNv Y2lfY29yZSAtbHNvY2lfbXlzcWwgLWxkbCAke01ZU1FMTElCU30KLS0KLS0KLS10ZXN0LW15c3Fs IDogdGVzdC1teXNxbC5jcHAKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0 ZXN0LW15c3FsCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl LmluCTIwMDktMDUtMDYgMDE6MzE6NDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDUxMyBA QAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2Vm aWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsK LStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0r cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1 ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxf SU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFM X1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgot K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9D T01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJ JChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStAUlVO X1RFU1RTX1RSVUVAbm9pbnN0X1BST0dSQU1TID0gdGVzdF9teXNxbCQoRVhFRVhUKQotK3N1YmRp ciA9IHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1f X2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NB TF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0r UFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fb2JqZWN0c18xID0gdGVzdF9teXNx bC10ZXN0LW15c3FsLiQoT0JKRVhUKQotK2FtX3Rlc3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fX29i amVjdHNfMSkKLSt0ZXN0X215c3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfbXlzcWxfT0JKRUNUUykK LSt0ZXN0X215c3FsX0RFUEVOREVOQ0lFUyA9Ci0rdGVzdF9teXNxbF9MSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1saW5rICQoQ1hYTEQpICQodGVzdF9teXNxbF9DWFhGTEFHUykgXAotKwkkKENYWEZMQUdTKSAk KHRlc3RfbXlzcWxfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5DTFVERVMg PSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVM TCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRl cGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hY KQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0g JCh0ZXN0X215c3FsX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJD RVMpCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJU1Rf Q09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9D QUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVU T01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09T VF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NU X1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStC T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RF UE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStD UFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AK LStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQ VU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0g QENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStD WFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBA REVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8g PSBARUNIT0AKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19U ID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9 IEBGNzdACi0rRkZMQUdTID0gQEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1Mg PSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRP T0wgPSBATElCVE9PTEAKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AK LStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZM QUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01Z U1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NA Ci0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0r T0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVf T0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBA T1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZF UlNJT05ACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tB R0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9T VFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFS TkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJB VE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdf Q09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RH UkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBP U1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJT SU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0r U0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStT T0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0r U1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVS U0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3Ny Y2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRp ckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19j dF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdA Ci0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19s ZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3Rh ckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQg PSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1 aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRf dmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStk YXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGly ID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRp ckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAK LStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2Fs aWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0 X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRp ciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGlu c3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLSts aWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2Nh bHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9w ID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9 IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0g QHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBz YmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3Rh dGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0r dGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9i dWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGly ID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9w X3NyY2RpcikKLStteXNxbF90ZXN0X2hfc291cmNlcyA9IAotK215c3FsX3Rlc3RfY2Nfc291cmNl cyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3Bw Ci0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK3Rlc3RfbXlzcWxfU09VUkNF UyA9ICQobXlzcWxfdGVzdF9jY19zb3VyY2VzKQotK3Rlc3RfbXlzcWxfQ1hYRkxBR1MgPSAkKEJP T1NUX0NGTEFHUykKLSt0ZXN0X215c3FsX0xEQUREID0gCi0rdGVzdF9teXNxbF9MREZMQUdTID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkkKHRv cF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKLSsJCSQo TVlTUUxfTERGTEFHUykKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklY RVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJj ZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAg ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdu dSAgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNk aXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBc Ci0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNo byAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czog JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4t bm9pbnN0UFJPR1JBTVM6Ci0rCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKLSsJICBmPWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCi0r CSAgZWNobyAiIHJtIC1mICQkcCAkJGYiOyBcCi0rCSAgcm0gLWYgJCRwICQkZiA7IFwKLSsJZG9u ZQotK3Rlc3RfbXlzcWwkKEVYRUVYVCk6ICQodGVzdF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlz cWxfREVQRU5ERU5DSUVTKSAKLSsJQHJtIC1mIHRlc3RfbXlzcWwkKEVYRUVYVCkKLSsJJCh0ZXN0 X215c3FsX0xJTkspICQodGVzdF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlzcWxfTERBREQpICQo TElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsK LStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3Fs LlBvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hY Q09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxF KSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAk KENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNw cC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0r Ci0rdGVzdF9teXNxbC10ZXN0LW15c3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9teXNx bC10ZXN0LW15c3FsLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNx bC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3Fs LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9teXNxbC10 ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfbXlzcWwtdGVz dC1teXNxbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3Fs LXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rCi0rdGVzdF9teXNxbC10 ZXN0LW15c3FsLm9iajogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRl c3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwu b2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1v IHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsg ZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9t eXNxbC10ZXN0LW15c3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwu Y3BwJyBvYmplY3Q9J3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsg dGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAotKwotK21v c3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1yZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10 cHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl 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 QFNFVF9NQUtFQAotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNxbF90ZXN0 X2hfc291cmNlcykKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tayBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rbXlzcWxfdGVzdF9oX3NvdXJjZXMg PQotK215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAwOS0wNS0wNiAw MTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAw MDAwICswMjAwCi1AQCAtNiw5ICs2LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElD RU5TRV8xXzAudHh0KQotIC8vCi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29j aS1teXNxbC5oIgotLSNpbmNsdWRlICJ0ZXN0L2NvbW1vbi10ZXN0cy5oIgotKy8vCi0rI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z b2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwu aD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNl bHNlCi0rIwlpbmNsdWRlIDxzb2NpLmg+Ci0rIwlpbmNsdWRlIDxzb2NpLW15c3FsLmg+Ci0rIyAg ICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1 ZGUgPGlvc3RyZWFtPgotICNpbmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlIDxzdHJpbmc+Ci1A QCAtMTgsOCArMjYsMTQgQEAKLSAjaW5jbHVkZSA8Y3RpbWU+Ci0gI2luY2x1ZGUgPGNpc282NDY+ Ci0gI2luY2x1ZGUgPGNzdGRsaWI+Ci0tI2luY2x1ZGUgPG15c3FsZF9lcnJvci5oPgotLSNpbmNs dWRlIDxlcnJtc2cuaD4KLSsvLyBNeVNRTCBDbGllbnQKLSsjaWYgZGVmaW5lZChTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8bXlzcWwvbXlzcWxkX2Vycm9yLmg+ Ci0rIyAgICAgICBpbmNsdWRlIDxteXNxbC9lcnJtc2cuaD4KLSsjZWxzZQotKyMgICAgICAgaW5j bHVkZSA8bXlzcWxkX2Vycm9yLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxlcnJtc2cuaD4KLSsjZW5k aWYKLSAKLSB1c2luZyBuYW1lc3BhY2Ugc29jaTsKLSB1c2luZyBuYW1lc3BhY2Ugc29jaTo6dGVz dHM7Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAg KzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3It aW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTks NyArOSwxMyBAQAotICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1t eXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5o PgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kt cGxhdGZvcm0uaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotIAotICNpZmRl ZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Jsb2IuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3Bw CTIwMDktMDUtMDYgMDE6MzI6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCi1AQCAtNyw3ICs3LDEzIEBACi0gCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xl LmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0r I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2Vu ZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5j bHVkZSA8Y3N0ZGlvPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTIwMDktMDQt MTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI3IEBACi0rIyMgYmFja2Vu ZHMvb3JhY2xlIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0raWYgSEFWRV9P UkFDTEUKLStsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfb3JhY2xlLmxhCi0rCi0rbGlic29jaV9v cmFjbGVfbGFfU09VUkNFUz0gJChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2Nj X3NvdXJjZXMpIAotK2xpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NG TEFHUykKLStsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQgPQotK2xpYnNvY2lfb3JhY2xlX2xhX0xE RkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKLSsJLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK25vYmFzZV9wa2dpbmNs dWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgKLStlbmRpZgotK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZQotK2Vsc2UKLStzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9p bmNsdWRlX2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTA2IDAxOjMyOjQwLjAwMDAwMDAwMCArMDIwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNp YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTUgKzAsMCBAQAot LSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5k IGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQg LSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlOQ0xVREVESVIg PSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9y ZGJtcy9wdWJsaWMKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVu dCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxB R1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtDWFhG TEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke09SQUNMRUlOQ0xVREVE SVJ9Ci0tCi0tT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0 YW5kYXJkLWludG8tdHlwZS5vIFwKLS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2 ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8gXAotLQllcnJvci5vCi0tCi0tT0JK RUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCi0t CXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1z Lm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGVycm9yLXMu bwotLQotLWxpYnNvY2lfb3JhY2xlLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJt ICoubwotLQotLXNvY2ktb3JhY2xlLm8gOiBzb2NpLW9yYWNsZS5jcHAgCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCQotLWJsb2IubyA6IGJsb2IuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZXJy b3IubyA6IGVycm9yLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLWZhY3RvcnkubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLm8gOiByb3ctaWQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lv bi5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1z dGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0 ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5 cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1zaGFyZWQgOiAke09CSkVDVFNTT30KLS0JJHtDT01Q SUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX29yYWNsZS5zbyAke09CSkVDVFNTT30KLS0Jcm0gKi5v Ci0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tZXJyb3Itcy5vIDogZXJyb3IuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1m YWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0 YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJk LXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rv ci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlw ZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mICoubyBs aWJzb2NpX29yYWNsZS5hIGxpYnNvY2lfb3JhY2xlLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsODAwIEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZy b20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChD KSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAot KyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9N QUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwot K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgot K1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwg PSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0 X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNsdWRl X0hFQURFUlNfRElTVCkgXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZQotK0FDTE9DQUxfTTQgPSAkKHRv cF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv Y3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVw cyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0r CSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJ R19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9G SUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsg ICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwi YDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBgZWNo byAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7Ci0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJ UikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStsaWJMVExJQlJBUklF U19JTlNUQUxMID0gJChJTlNUQUxMKQotK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMp Ci0rbGlic29jaV9vcmFjbGVfbGFfREVQRU5ERU5DSUVTID0KLSthbV9fbGlic29jaV9vcmFjbGVf bGFfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9lcnJvci5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9y YWNsZS5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBc Ci0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2Jq ZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBsaWJz b2NpX29yYWNsZV9sYS1lcnJvci5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8g bGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIFwKLSsJbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lv bi5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBcCi0rCWxp YnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGlic29jaV9vcmFjbGVf bGEtc3RhdGVtZW50LmxvIFwKLSsJbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5s byBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX09SQUNM RV9UUlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpIFwK LStASEFWRV9PUkFDTEVfVFJVRUAJJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfb3JhY2xlX2xh X09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpCi0rbGlic29jaV9vcmFj bGVfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0r CSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9vcmFj bGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJJChsaWJzb2NpX29yYWNsZV9sYV9MREZM QUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fbGlic29jaV9vcmFj bGVfbGFfcnBhdGggPSAtcnBhdGggJChsaWJkaXIpCi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBh bV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMK LStDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hY RkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hY TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAot KwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJU T09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1t b2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp IFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQot K0NDTEQgPSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdT KSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VT ID0gJChsaWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xp YnNvY2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCkKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1y ZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2 ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmkt cmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJz aXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5z dGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVj dXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJz aXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSU19E SVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNs ZS5oCi0rbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwgPSAkKGluc3RhbGxfc2hfREFU QSkKLStIRUFERVJTID0gJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKQotK1JFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0r ICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1Mg PSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwg PSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBB VVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01B S0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1P REUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBG TEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStD UFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5J VF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENY WEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhG TEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVG U0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8gPSBA RUNIT0AKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0g QEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9IEBG NzdACi0rRkZMQUdTID0gQEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxM QAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1MgPSBA TERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wg PSBATElCVE9PTEAKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStN QUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FM X0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0r TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JK RVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09O RklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VE ID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RS SVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lP TiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK LSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9D Q0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACi0r YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAK LSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBA YnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0g QGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAK LStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStn c19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0g QG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBw ZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHBy b2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmlu ZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVk aXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFy Z2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWls ZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0g QHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3Ny Y2RpcikKLStiY2tfb3JhY2xlX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLSsKLStiY2tfb3JhY2xlX2NjX3NvdXJj ZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2Iu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3Iu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9y eS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ct aWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vz c2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNw cAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0 ZXN0Ci0rQEhBVkVfT1JBQ0xFX1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9vcmFjbGUu bGEKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTID0gJChiY2tf b3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2NjX3NvdXJjZXMpIAotK0BIQVZFX09SQUNM RV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFHUykK LStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQgPSAKLStASEFWRV9P UkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTID0gXAotK0BIQVZFX09SQUNMRV9U UlVFQAkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFN X09QVElPTlNfTElCKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACSQoT1JBQ0xFX09DSV9MREZMQUdT KSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllf VkVSU0lPTikKLSsKLStASEFWRV9PUkFDTEVfVFJVRUBub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJT ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rQFNP Q0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikK LStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJ WEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5p bjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAk KHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4g JD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICok JGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQo QVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSc7IFwKLSsJY2Qg JCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/ JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkg ICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lF UykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0raW5z dGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNU QUxMKQotKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxp YmRpcikiCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCi0rCSAgICBmPSQoYW1fX3N0cmlwX2Rpcikg XAotKwkgICAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9T VFJJUF9GTEFHKSAnJCRwJyAnJChERVNURElSKSQobGliZGlyKS8kJGYnIjsgXAotKwkgICAgJChM SUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxs ICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICIkJHAiICIk KERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0rCWRvbmUKLSsK LSt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBs aXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBwPSQo YW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGli ZGlyKS8kJHAnIjsgXAotKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkcCI7 IFwKLSsJZG9uZQotKwotK2NsZWFuLWxpYkxUTElCUkFSSUVTOgotKwktdGVzdCAteiAiJChsaWJf TFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykKLSsJQGxpc3Q9JyQobGli X0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGRpcj0iYGVjaG8gJCRw IHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKLSsJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIg fHwgZGlyPS47IFwKLSsJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBc Ci0rCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAotKwlkb25lCi0rbGlic29jaV9v cmFjbGUubGE6ICQobGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykgJChsaWJzb2NpX29yYWNsZV9s YV9ERVBFTkRFTkNJRVMpIAotKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0xJTkspICQoYW1fbGlic29j aV9vcmFjbGVfbGFfcnBhdGgpICQobGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykgJChsaWJzb2Np X29yYWNsZV9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwkt cm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFi LmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXJvdy1pZC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1l bnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9AYW1fX3F1 b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLSsKLSsuY3Bw Lm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAu b2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1Q IC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5U cG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rbGlic29jaV9vcmFjbGVfbGEtYmxv Yi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWJs b2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1i bG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2Iu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLlRwbyAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvZXJyb3IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLWVycm9yLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9l cnJvci5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyAtTUQgLU1Q IC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFj dG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1y b3ctaWQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xl X2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93 LWlkLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ct aWQuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQu bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX29yYWNsZV9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwCi0rCi0rbGlic29jaV9v cmFjbGVfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z ZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXNlc3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNv Y2lfb3JhY2xlX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zZXNz aW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyBvYmplY3Q9J2xpYnNv Y2lfb3JhY2xlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nl c3Npb24uY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNs ZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRh cmQtaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBl LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFy ZC11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5j cHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNl LXR5cGUuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8gLWMg LW8gbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVt ZW50LlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEt c3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50 LmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9v cmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS12ZWN0 b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12 ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10 eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rv ci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRw byAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWlu dG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92 ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1v IGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2Ut dHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXZlY3Rvci11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5 cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlw ZS5jcHAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFu LWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLW5vYmFzZV9wa2dpbmNs dWRlSEVBREVSUzogJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5T VEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUAkKGFtX192cGF0aF9hZGpfc2V0dXApIFwKLSsJbGlz dD0nJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBc Ci0rCSAgJChhbV9fdnBhdGhfYWRqKSBcCi0rCSAgZWNobyAiICQobm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYn IjsgXAotKwkgICQobm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICIkJGQkJHAiICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAJChh bV9fdnBhdGhfYWRqX3NldHVwKSBcCi0rCWxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVS UyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAkKGFtX192cGF0aF9hZGopIFwKLSsJICBl Y2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgcm0g LWYgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotKyMgVGhp cyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3Ug Y2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdo IHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFi bGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJs ZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAg ICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5 b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVl cyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJ QGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkg IGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWls Y29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5v OyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5n ICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsg dGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAot KwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlp ZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwi Ci0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBc Ci0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAg ICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAot KwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4g XAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VC RElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJ cmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0r CSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAot KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7 IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90 YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQk ZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vy c2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdz OiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07 IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVy c2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdz LWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29w dGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8 fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRp ci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQo RVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVu aXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklM RVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykk JHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFH U0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFH UzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBj ZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQot KwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBc Ci0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAt ZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAg ICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwK LSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwg ZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwK LSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwg ZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAg ICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7 IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAg IHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAg KGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkg ICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0i JCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9f c2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBj aGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVS UykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06 Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIi OyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzog aW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vy c2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFs bC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt ZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3Rh bGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJ TlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXog JyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJP Rz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4t Z2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NM RUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBt YWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJl cXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5F UkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBj bGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJ QlJBUklFUyBjbGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46 IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFr ZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVh bi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsK LStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vy c2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW5vYmFzZV9w a2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFs bC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsK LStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVh bi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj Ci0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHlj bGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3Bz OiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1s aWJMVExJQlJBUklFUyBcCi0rCXVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKLSsK LSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykg aW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFs bC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGliTFRM SUJSQVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAotKwlkaXN0Y2xl YW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGli dG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0g aW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxs LWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwK LSsJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gXAot KwlpbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBkZiBpbnN0YWxsLXBk Zi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxj aGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWlu dGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1v c3RseWNsZWFuLWNvbXBpbGUgXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxp YnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0 YWxsIHVuaW5zdGFsbC1hbSBcCi0rCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwt bm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9u cyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0r IyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhj ZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCTIwMDktMDUtMDYgMDE6MzI6NDAuMDAwMDAwMDAwICsw MjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3Jh Y2xlLmgJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMiw5ICsyMiwx NCBAQAotICNpZm5kZWYgU09DSV9PUkFDTEVfREVDTAotICMgZGVmaW5lIFNPQ0lfT1JBQ0xFX0RF Q0wKLSAjZW5kaWYKLS0KLS0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0tI2luY2x1ZGUgPG9j aS5oPiAvLyBPQ0kKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsjCWluY2x1 ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRpZgotKy8vCi0rI2luY2x1ZGUgPG9jaS5oPiAvLyBP Q0kgKE9yYWNsZSBjbGllbnQpCi0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAKLSAjaWZkZWYgX01TQ19W RVIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3Vy Y2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1r Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE0IEBACi0rYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5o Ci0rYmNrX29yYWNsZV9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It aW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAky MDA5LTA1LTA2IDAxOjMyOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYg MTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtNywxMCArNywxOCBAQAotIAotICNkZWZpbmUg U09DSV9PUkFDTEVfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2luY2x1ZGUg ImJsb2IuaCIKLSAjaW5jbHVkZSAiZXJyb3IuaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5j bHVkZSAic3RhdGVtZW50LmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jsb2IuaD4KLSsjICAgICAgIGluY2x1ZGUg PHNvY2kvY29yZS9yb3dpZC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVu dC5oPgotKyNlbHNlCi0rIyAgICAgICBpbmNsdWRlIDxibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRl IDxyb3dpZC5oPgotKyMgICAgICAgaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8K LSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJp bmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0wNiAwMTozMjo0MC4wMDAw MDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw Ci1AQCAtNywxMCArNywxOCBAQAotIAotICNkZWZpbmUgc29jaV9PUkFDTEVfU09VUkNFCi0gI2lu Y2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2luY2x1ZGUgImJsb2IuaCIKLSAjaW5jbHVkZSAiZXJy b3IuaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAic3RhdGVtZW50LmgiCi0rLy8K LSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL2Jsb2IuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgotKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgotKyNlbHNlCi0rIyAgICAgICBp bmNsdWRlIDxibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgotKyMgICAgICAgaW5j bHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2N0eXBlPgotICNp bmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJpbmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNS0wNiAwMToz Mjo0MC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhdGVtZW50LmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIw MAotQEAgLTksNyArOSwxMyBAQAotIAotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotICNpbmNs dWRlICJlcnJvci5oIgotLSNpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29j aS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRp ZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRl IDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFr ZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs MjIgQEAKLSsjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStpZiBIQVZFX09SQUNMRQotKyAgVEVTVF9P UkFDTEUgPSB0ZXN0X29yYWNsZQotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dSQU1T ID0gJChURVNUX09SQUNMRSkKLStlbmRpZgotKwotK3Rlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9y YWNsZV90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9vcmFjbGVfQ1hYRkxBR1MgPSAkKEJPT1NUX0NG TEFHUykgJChPUkFDTEVfT0NJX0NGTEFHUykKLSt0ZXN0X29yYWNsZV9MREFERCA9Ci0rdGVzdF9v cmFjbGVfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxh IC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lf b3JhY2xlLmxhIFwKLSsJCSQoT1JBQ0xFX09DSV9MREZMQUdTKQotK2VuZGlmCi0rCi0rI25vZGlz dF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG9yYWNsZV90ZXN0X2hfc291cmNlcykKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJh c2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxl LmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5iYXNpYwkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmJhc2lj CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMyArMCwwIEBACi0t IyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQg aXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAt IGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0tCi0tT1JBQ0xFSU5DTFVERURJUiA9 IC1JL3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAvc2VydmVyL3Jk Ym1zL3B1YmxpYyAKLS1PUkFDTEVMSUJESVIgPSAtTC91c3IvbGliL29yYWNsZS94ZS9hcHAvb3Jh Y2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9saWIgCi0tT1JBQ0xFTElCUyA9IC1sY2xudHNoIC1s bm56MTAKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0 aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAt V2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8u Li8uLi9jb3JlIC1JLi4vLi4vLi4vY29yZS90ZXN0ICR7T1JBQ0xFSU5DTFVERURJUn0KLS1MSUJE SVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtPUkFDTEVMSUJESVJ9Ci0tTElCUyA9IC1sc29j aV9jb3JlIC1sc29jaV9vcmFjbGUgLWxkbCAtbGJvb3N0X2RhdGVfdGltZSAke09SQUNMRUxJQlN9 Ci0tCi0tCi0tdGVzdC1vcmFjbGUgOiB0ZXN0LW9yYWNsZS5jcHAgCi0tIy4uLy4uLy4uL2NvcmUv dGVzdC9jb21tb24tdGVzdHMuaAotLQkke0NPTVBJTEVSfSAtbyAkQCAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfSAke0xJQkRJUlN9ICR7TElCU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1m ICoubyB0ZXN0LW9yYWNsZQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvTWFrZWZpbGUuaW4JMjAwOS0wNS0wNiAwMTozMTo0OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsNTE3IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4x IGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0 IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAy LAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNF VF9NQUtFQAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRp ciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9 IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklO U1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9z dEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZp bGUuaW4gXAotKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgotK0BIQVZFX09SQUNMRV9UUlVFQEBSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMg PSAkKGFtX19FWEVFWFRfMSkKLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0Ci0r QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0r YW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9E RVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3Rh bGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5o Ci0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStASEFWRV9PUkFDTEVfVFJVRUBhbV9fRVhFRVhUXzEg PSB0ZXN0X29yYWNsZSQoRVhFRVhUKQotK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCi0r YW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLSthbV9fb2JqZWN0c18xID0gdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUuJChPQkpFWFQpCi0rQEhBVkVfT1JBQ0xFX1RSVUVAYW1fdGVz dF9vcmFjbGVfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLSt0ZXN0X29yYWNsZV9PQkpFQ1RT ID0gJChhbV90ZXN0X29yYWNsZV9PQkpFQ1RTKQotK3Rlc3Rfb3JhY2xlX0RFUEVOREVOQ0lFUyA9 Ci0rdGVzdF9vcmFjbGVfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rfb3Jh Y2xlX0NYWEZMQUdTKSBcCi0rCSQoQ1hYRkxBR1MpICQodGVzdF9vcmFjbGVfTERGTEFHUykgJChM REZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3Bf YnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcv ZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09N UElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhG TEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2Rl PWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBc Ci0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJCh0ZXN0X29yYWNsZV9TT1VSQ0VTKQot K0RJU1RfU09VUkNFUyA9ICQoYW1fX3Rlc3Rfb3JhY2xlX1NPVVJDRVNfRElTVCkKLStFVEFHUyA9 IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElT VF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FM QAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAot K0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sg PSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1F X0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJP T1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJF QU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA Ci0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NU X1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RF UE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQ UEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09O RklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0r Q1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQ UCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENY WEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJ UiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VD SE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAot K0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxB R1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFM TF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9H UkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBf UFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAot K0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09M QAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0g QE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxf Q0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBN WVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JK RVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0g QE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xE RkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNL QUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRA Ci0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNL QUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElC ID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAot K1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19C VVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJ UEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJ T05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19z cmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bf c3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0 X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAK LStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStw cmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2Vk X29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNk aXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMg PSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAK LSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp ckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK29y YWNsZV90ZXN0X2hfc291cmNlcyA9IAotK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK0BIQVZFX09SQUNMRV9UUlVFQFRFU1RfT1JB Q0xFID0gdGVzdF9vcmFjbGUKLStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9TT1VSQ0VT ID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3Jh Y2xlX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rQEhB VkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfTERBREQgPSAKLStASEFWRV9PUkFDTEVfVFJVRUB0 ZXN0X29yYWNsZV9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2Nv cmUubGEgLWxkbCBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACQkkKHRvcF9idWlsZGRpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvbGlic29jaV9vcmFjbGUubGEgXAotK0BIQVZFX09SQUNMRV9UUlVFQAkJ JChPUkFDTEVfT0NJX0xERkxBR1MpCi0rCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0r LlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGly KS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikg XAotKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2ggXAotKwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFL RSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUnOyBcCi0rCWNkICQo dG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNy Y2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2Ug JyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAot KwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVO Q0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVf ZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0r Ci0rY2xlYW4tbm9pbnN0UFJPR1JBTVM6Ci0rCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQv LydgOyBcCi0rCSAgZWNobyAiIHJtIC1mICQkcCAkJGYiOyBcCi0rCSAgcm0gLWYgJCRwICQkZiA7 IFwKLSsJZG9uZQotK3Rlc3Rfb3JhY2xlJChFWEVFWFQpOiAkKHRlc3Rfb3JhY2xlX09CSkVDVFMp ICQodGVzdF9vcmFjbGVfREVQRU5ERU5DSUVTKSAKLSsJQHJtIC1mIHRlc3Rfb3JhY2xlJChFWEVF WFQpCi0rCSQodGVzdF9vcmFjbGVfTElOSykgJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAkKHRlc3Rf b3JhY2xlX0xEQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1m ICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0r Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3Rf b3JhY2xlLXRlc3Qtb3JhY2xlLlBvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8k Ki5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRI X1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQq LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2Jq ZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJ TEUpIC1jIC1vICRAICQ8Ci0rCi0rdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIC1NRCAtTVAgLU1GICQoREVQ RElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1v cmFjbGUubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3Rlc3Qtb3JhY2xlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElS KS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8nIGxpYnRv b2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3Jh Y2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5v IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rCi0rdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFj bGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29y YWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9i aiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1v IHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRI X1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUu Y3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBE SVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqJyBs aWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0 X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9X KSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAnOyBmaWAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5s bwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLStJRDogJChI RUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1m SUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRh Z3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJH UykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUi IHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChB TV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAot KwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwK LSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc Ci0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25l IHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK LSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQo dG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwkt cm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6 ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9z cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNU RklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAk JGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJ ICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAot KwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRp c3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14v XSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUg aW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAk JGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQg JCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdz LC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRl c3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRm aWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt cFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0r CSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZp bGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJ ZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2Vm aWxlICQoUFJPR1JBTVMpCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt YW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlA JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQot KwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChN QUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJP R1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwK LSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBp bnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rp c3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBy bSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8 IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xl YW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBc Ci0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1y ZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFt IGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MK LSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5m bzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3Rh bGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxs LWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFt Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0r aW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWlu dGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikK LSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQot KwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVy aWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06 Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtF OiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBh bGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRv b2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNv bXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4t dGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCi0rCWlu c3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZp IFwKLSsJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWh0bWwgXAotKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBp bnN0YWxsLW1hbiBcCi0rCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5z dGFsbC1wcy1hbSBcCi0rCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1h bSBpbnN0YWxsZGlycyBcCi0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAotKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5p bnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjbm9kaXN0X3BrZ2luY2x1 ZGVfSEVBREVSUyA9ICQob3JhY2xlX3Rlc3RfaF9zb3VyY2VzKQotKyMgVGVsbCB2ZXJzaW9ucyBb My41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBP dGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVk ZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv c291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwyIEBACi0rb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0KLStvcmFjbGVfdGVzdF9jY19zb3VyY2Vz ID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAw ICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAt NSw5ICs1LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQot IC8vCi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0j aW5jbHVkZSAiY29tbW9uLXRlc3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KLSsjICAgICAgIGlu Y2x1ZGUgPHNvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmg+Ci0rIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8 c29jaS5oPgotKyMJaW5jbHVkZSA8c29jaS1vcmFjbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPHRl c3QvY29tbW9uLXRlc3RzLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8aW9zdHJlYW0+Ci0g I2luY2x1ZGUgPHN0cmluZz4KLSAjaW5jbHVkZSA8Y2Fzc2VydD4KLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAK LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10 eXBlLmNwcAkyMDA5LTA1LTA2IDAxOjMyOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5 LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsOCArNywxNCBAQAotIAotICNk ZWZpbmUgc29jaV9PUkFDTEVfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0tI2lu Y2x1ZGUgInN0YXRlbWVudC5oIgotICNpbmNsdWRlICJlcnJvci5oIgotKy8vCi0rI2lmIGRlZmlu ZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0 ZW1lbnQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8K LSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJp bmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv TWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTIw MDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMwIEBACi0rIyMg YmFja2VuZHMvcG9zdGdyZXNxbCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlO VEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwot KyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0rCi0rRVhU UkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotKwotK2lmIEhB VkVfUE9TVEdSRVNRTAotK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3FsLmxhCi0r Ci0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3Vy Y2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfcG9zdGdyZXNxbF9s YV9DWFhGTEFHUyA9ICQoUE9TVEdSRVNRTF9DRkxBR1MpCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xh X0xJQkFERCA9Ci0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1Rf TElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIp IFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2lu Y2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nv Y2ktcG9zdGdyZXNxbC5oCi0rZW5kaWYKLStpZiBTT0NJX0hFQURFUlNfQlVSSUVECi0rc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rZWxz ZQotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRl ZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMDYg MDE6MzI6NDEuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotQEAgLTEsOTUgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBp cyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWln aHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29y ZGluZ2x5LgotLQotLVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCi0tCi0tIyBUaGUg cmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9u bWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1X bm8tbG9uZy1sb25nCi0tQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVERURJ UlMgPSAtSS4uLy4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9Ci0tCi0tCi0tT0JKRUNUUyA9IGJs b2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwK LS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVj dG9yLXVzZS10eXBlLm8gXAotLQljb21tb24ubwotLQotLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZh Y3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRvLXR5cGUt cy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9yLWludG8t dHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCi0tCi0tCi0tbGlic29jaV9w b3N0Z3Jlc3FsLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLQot LWJsb2IubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tY29tbW9uLm8gOiBjb21tb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ct aWQubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDog c3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlw ZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50 by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQotLQotLXZlY3Rvci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLQotLXNoYXJlZCA6ICR7 T0JKRUNUU1NPfQotLQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdyZXNxbC5z byAke09CSkVDVFNTT30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAotLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tY29t bW9uLXMubyA6IGNvbW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKLS0JJHtD T01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXJv dy1pZC1zLm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCi0tCSR7 Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1z dGFuZGFyZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRh cmQtdXNlLXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQtcy5v IDogc3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10 eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQot LQotLWNsZWFuIDoKLS0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9wb3N0Z3Jl c3FsLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmlu CTIwMDktMDUtMDYgMDE6MzE6NDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDgwMiBAQAot KyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxl LmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5 NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91 dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLSsK LStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0r cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNI X1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAk KGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9z aCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hF QURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RB TEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1Rf VU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0g QGhvc3RACi0rRElTVF9DT01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgJChz cmNkaXIpL01ha2VmaWxlLmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9z b3VyY2VzLm1rIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xv Y2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQp Ci0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0 b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK2FtX192 cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wu fC58ZydgOwotK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQoc3JjZGlyKS8q KSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCi0rICAgICop IGY9JCRwOzsgXAotKyAgZXNhYzsKLSthbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1l ICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rbGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQo SU5TVEFMTCkKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfcG9z dGdyZXNxbF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09V UkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv Y29tbW9uLmggXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2Np LXBvc3RncmVzcWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2Jsb2IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29t bW9uLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3Rv cnkuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlk LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24u Y3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0K LSthbV9fb2JqZWN0c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gXAotKwlsaWJz b2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZh Y3RvcnkubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwKLSsJbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9s aWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICBcCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVF QAkkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX3Bvc3RncmVzcWxf bGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpCi0rbGlic29j aV9wb3N0Z3Jlc3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfUE9TVEdSRVNR TF9UUlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBcCi0rQEhBVkVf UE9TVEdSRVNRTF9UUlVFQAkkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19p c3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3Ny Y2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK0NY WENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp IFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFH UykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5L ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQo QU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQoQ0MpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQo Q1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wp IC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9 Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAot KwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NM RCA9ICQoQ0MpCi0rTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQo Q0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAk KGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xp YnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCi0rUkVDVVJTSVZFX1RBUkdFVFMgPSBh bGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1 cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwt ZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZl IGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJl Y3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNU ID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0 Z3Jlc3FsLmgKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikK LStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVh bi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9IGV0YWdzCi0r Q1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAk KERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQot K3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FM QAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAot K0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sg PSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1F X0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJP T1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJF QU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA Ci0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NU X1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RF UE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQ UEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09O RklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0r Q1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQ UCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENY WEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJ UiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VD SE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAot K0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxB R1MgPSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFM TF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9H UkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBf UFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAot K0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09M QAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0g QE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxf Q0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBN WVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJT SU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JK RVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0g QE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xE RkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNL QUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRA Ci0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNL QUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElC ID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAot K1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19C VVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJ UEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJ T05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19z cmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bf c3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0 X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAK LStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStw cmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2Vk X29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNk aXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMg PSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAK LSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp ckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK2Jj a19wb3N0Z3Jlc3FsX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0rCi0rYmNrX3Bvc3RncmVz cWxfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5k YXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAot KwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCi0rRVhU UkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotK0BIQVZFX1BP U1RHUkVTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKLStA SEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMgPSAkKGJj a19wb3N0Z3Jlc3FsX2hfc291cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAKLStA SEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQ T1NUR1JFU1FMX0NGTEFHUykKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jl c3FsX2xhX0xJQkFERCA9IAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVz cWxfbGFfTERGTEFHUyA9IFwKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1RfTElCUykg JChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLStA SEFWRV9QT1NUR1JFU1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVS U0lPTikKLSsKLStASEFWRV9QT1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStA U09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0r LlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0 IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIp ICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUn OyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK LSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLStpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKLSsJ QCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAi JChERVNURElSKSQobGliZGlyKSIKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBw IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGY9JChh bV9fc3RyaXBfZGlyKSBcCi0rCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFM TCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZici OyBcCi0rCSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBf RkxBRykgIiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwkgIGVsc2UgOjsgZmk7 IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VO SU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAotKwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICck KERFU1RESVIpJChsaWJkaXIpLyQkcCciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikk KGxpYmRpcikvJCRwIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10 ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQot KwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQk ZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19s b2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRv bmUKLStsaWJzb2NpX3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVD VFMpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoKSAkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSUJB REQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVY VCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90 ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rv ci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlw ZS5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAk PAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo Q1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAg YCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsu Y3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwK LSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8gJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rCi0rbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAk KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29t bW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1v bi5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3Rv cnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5 LlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3Rv cnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1m YWN0b3J5LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0 PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9w b3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv cm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxf bGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikv bGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKLSsK LStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxf bGEtc2Vzc2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2Np X3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vz c2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBl LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10 eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50 by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10 eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVt ZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lf cG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3It aW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12 ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rv ci1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEt dmVjdG9yLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lf cG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNw cAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGli dG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6 ICQocGtnaW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAi JChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikiCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBm aTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnaW5jbHVkZUhF QURFUlNfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZici OyBcCi0rCSAgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1 ZGVIRUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRl X0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIp IFwKLSsJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBc Ci0rCSAgcm0gLWYgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQot KwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5k ZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2lu ZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFr ZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRo ZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVz JwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0 ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNp cmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJH RVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsg ZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAg KmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRv dF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNo byAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9u ZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16 ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdl eGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBp biBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNl ICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSck KERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVz YWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRy ZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdl dD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJl djsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc Ci0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRl c3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2Qg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0 YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAk KFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlx dWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNP VVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkK LSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNs dWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlv bj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBp bmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJk aXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVy ZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRl c3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAg dGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1Mp ICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQk dGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1 cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkk KFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RB R1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykg JChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUK LSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwK LSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1Mp ICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRB R1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGly c3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc Ci0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmls ZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2Vk IC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGly c3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBc Ci0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNl ZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0 IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0r CSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9 JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAg ICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBl eGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIp JCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikv JCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAot KwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGly IiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7 IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsg XAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAg ZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBc Ci0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkg ICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQot K2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMp ICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFs bGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9Q KSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3Rh bGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2 ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0r Ci0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0r bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQot K2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStk aXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwkt cm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxl IGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1 cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBp bmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxs LXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3Rh bGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFs bC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0 YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQot KwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQot K21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVy aWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xl YW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3Rs eWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0r cHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxs LWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFt IFwKLSsJaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNr IGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBj bGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3Rj bGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8t YW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBc Ci0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBc Ci0rCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNr LWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0r CW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxl IFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0g cHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0g XAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT Ci0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFr ZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGlt aXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBv c3RncmVzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nv Y2ktcG9zdGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMDktMDUtMDYgMDE6MzI6NDEuMDAwMDAwMDAwICsw MjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2Np LXBvc3RncmVzcWwuaAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTIy LDkgKzIyLDE0IEBACi0gI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAotICMgZGVmaW5lIFNP Q0lfUE9TVEdSRVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5o PgotLSNpbmNsdWRlIDxsaWJwcS1mZS5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsj ZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVk ZSA8bGlicHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKLSAjaW5jbHVkZSA8dmVjdG9yPgot IAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDE0IEBACi0rYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStiY2tf cG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBl LmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUt MDYgMDE6MzI6NDEuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6 Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtOCw5ICs4LDE2IEBACi0gI2RlZmluZSBTT0NJX1BP U1RHUkVTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotICNpbmNsdWRl ICJjb21tb24uaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotLSNp bmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQotKy8vCi0rI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5j bHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjZW5kaWYKLSsvLwot KyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQp Ci0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3Ry aW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMDYg MDE6MzI6NDEuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzow NS4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDggKzcsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lfUE9T VEdSRVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUg InJvd2lkLmgiCi0tI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCi0rLy8KLSsj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3Jvd2lkLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rI2VuZGlm Ci0rLy8KLSsjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwg Y2xpZW50KQotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVk ZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSwxOCBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUg JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2Vz Lm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9U RVNUUwotKyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsCi0rZW5kaWYKLSsKLSt0 ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0r dGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jl c3FsX0xEQUREID0KLSt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAotKwkJJChQT1NUR1JF U1FMX0xERkxBR1MpCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVz cWxfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAw OS0wNS0wNiAwMTozMjo0MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIyICswLDAgQEAKLS0jIFRoZSBmb2xsb3dp bmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAot LSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRv IHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1QR1NRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVk ZQotLVBHU1FMTElCRElSID0gLUwvdXNyL2xpYgotLVBHU1FMTElCUyA9IC1scHEKLS0KLS0jIFRo ZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmly b25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMg LVduby1sb25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlL3Rlc3Qg LUkuLi8uLi8uLi9jb3JlICR7UEdTUUxJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4v Li4vLi4vY29yZSAke1BHU1FMTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfcG9z dGdyZXNxbCAtbGRsICR7UEdTUUxMSUJTfQotLQotLQotLXRlc3QtcG9zdGdyZXNxbCA6IHRlc3Qt cG9zdGdyZXNxbC5jcHAKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0ZXN0 LXBvc3RncmVzcWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ5LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw1MTQgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRv bWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0r IyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50 IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9T RS4KLSsKLStAU0VUX01BS0VACi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAk KGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStw a2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9 IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9E QVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGlu c3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5T VEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJh bnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9T VF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoK LStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJp cGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCi0rQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3Rf cG9zdGdyZXNxbCQoRVhFRVhUKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAk KGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv bmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dS QU1TKQotK2FtX19vYmplY3RzXzEgPSB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLiQo T0JKRVhUKQotK2FtX3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQot K3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykK LSt0ZXN0X3Bvc3RncmVzcWxfREVQRU5ERU5DSUVTID0KLSt0ZXN0X3Bvc3RncmVzcWxfTElOSyA9 ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZM QUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdT KSAkKENYWEZMQUdTKSBcCi0rCSQodGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MpICQoTERGTEFHUykg LW8gJEAKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGly KS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAK LSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK0NYWENPTVBJTEUgPSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwK LSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQo Q1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQo Q1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExE RkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCi0rRElT VF9TT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUykKLStFVEFHUyA9IGV0YWdzCi0r Q1RBR1MgPSBjdGFncwotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VT KSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFS ID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFE RVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAot K0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBC T09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVT WVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAK LStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9 IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9S RUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1Rf VEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04g PSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NF UklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0r Q0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAot K0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQ UFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9W RVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhD UFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAot K0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBE SVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9fQyA9IEBF Q0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0g QEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1MgPSBARkZM QUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMg PSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xOX1Mg PSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZP QAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAot K01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJT QAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1Z U1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0r T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdFID0gQFBB Q0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FH RV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklO R0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lP TiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JA Ci0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9D RkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVT UUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BP U1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJ QkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtF ID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBA U09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExP QURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJz X2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0r YWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0g QGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9IEBhbV9f aW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90 ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9f dW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlh cyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0g QGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBA YnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290 ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5f b2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBz X29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hv c3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9z dF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9y QAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5m b2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9 IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2Rp ckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0 ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNs dWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBA cHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNl ZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3Jj ZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0 X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVp bGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9D UFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK3Bvc3RncmVzcWxf dGVzdF9oX3NvdXJjZXMgPSAKLStwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAot K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSt0ZXN0X3Bvc3RncmVzcWxfU09V UkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NY WEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCi0rdGVz dF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lf Y29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwKLSsJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQotKwot K2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9i agotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1 cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQg MDsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAg JChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxl Ci0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4g JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNv bmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7 IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xP Q0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4tbm9pbnN0UFJP R1JBTVM6Ci0rCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKLSsJICBmPWBlY2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCi0rCSAgZWNobyAi IHJtIC1mICQkcCAkJGYiOyBcCi0rCSAgcm0gLWYgJCRwICQkZiA7IFwKLSsJZG9uZQotK3Rlc3Rf cG9zdGdyZXNxbCQoRVhFRVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bv c3RncmVzcWxfREVQRU5ERU5DSUVTKSAKLSsJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhU KQotKwkkKHRlc3RfcG9zdGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAk KHRlc3RfcG9zdGdyZXNxbF9MREFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6 Ci0rCS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYg Ki50YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAKLSsKLSsu Y3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAt TVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5j cHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVj dD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAt YyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCou VHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8k Ki5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3Qt cG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3Fs LXRlc3QtcG9zdGdyZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3Rn cmVzcWwuUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwJyBvYmplY3Q9J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jl c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0r Ci0rdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1E IC1NUCAtTUYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1j IC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5j cHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3Jj ZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9z dGdyZXNxbC5jcHAnOyBmaWAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bvc3Rn cmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jl c3FsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bv c3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAk KENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3Bw JzsgZmlgCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVh bi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVl Ci0rdGFnczogVEFHUwotKwotK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlo ZXJlPWBwd2RgOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1 bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9 JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFn czogQ1RBR1MKLStDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVO Q0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0 ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAk KENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0 YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRp cikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkg JChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1Mg SUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxF UykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK LSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc Ci0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAk KHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZp bGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAt ZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRp cikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVj ay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dS QU1TKQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6 IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0 YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxs Y2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0r CSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExf U1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hv ICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21v c3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2Vu ZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAi VGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hv ICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1 aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1B SU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVh bi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAotKwltb3N0bHlj bGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJ UikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4t Y29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBk dmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0K LSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0 YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3Rh bGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6 IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBN YWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHlj bGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9z dGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBw cy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1h bSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNr IGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFuLW5v aW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRpc3Rj bGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRp ciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWluc3Rh bGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJ aW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4g XAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0g XAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRp cnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbiBcCi0rCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbi1saWJ0b29sIFwKLSsJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmlu c3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMg PSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsu Tk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSwyIEBACi0rcG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9Ci0rcG9zdGdyZXNx bF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAt NSw5ICs1LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQot IC8vCi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgi Ci0tI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQot KyMJaW5jbHVkZSA8c29jaS5oPgotKyMJaW5jbHVkZSA8c29jaS1wb3N0Z3Jlc3FsLmg+Ci0rIyAg ICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1 ZGUgPGlvc3RyZWFtPgotICNpbmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlIDxzdHJpbmc+Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9jb25maWcuaC5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29uZmln LmguaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ2LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSwxNDIgQEAKLSsvKiBzb2NpL2NvbmZpZy5oLmluLiAgR2VuZXJhdGVk IGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLwotKwotKy8qIGRlZmluZSBpZiB0 aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVAotKwot Ky8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAq LwotKyN1bmRlZiBIQVZFX0JPT1NUX0RBVEVfVElNRQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9v c3Q6OkZJTEVTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09T VF9GSUxFU1lTVEVNCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJh cnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rCi0rLyog ZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TCi0rCi0rLyogZGVmaW5lIGlm IHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9C T09TVF9SRUdFWAotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCi0r Ci0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAq LwotKyN1bmRlZiBIQVZFX0JPT1NUX1NJR05BTFMKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0 OjpUSFJFQUQgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9USFJF QUQKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3JrIGxpYnJh cnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S SwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y21hdGg+IGhlYWRlciBmaWxl LiAqLwotKyN1bmRlZiBIQVZFX0NNQVRICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxkZXF1ZT4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfREVRVUUKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1 bmRlZiBIQVZFX0RMRkNOX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZz dHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0ZTVFJFQU0KLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1 bmRlZiBIQVZFX0lOVFRZUEVTX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PGlvbWFuaXA+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0lPTUFOSVAKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsj dW5kZWYgSEFWRV9JT1NUUkVBTQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 bGltaXRzPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9MSU1JVFMKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpc3Q+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX0xJU1QKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hcD4gaGVhZGVy IGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTUFQCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTUVNT1JZX0gK LSsKLSsvKiBEZWZpbmUgdG8gMSBpZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZSAqLwot KyN1bmRlZiBIQVZFX01ZU1FMCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kg bGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9PUkFDTEUKLSsKLSsvKiBEZWZp bmUgdG8gMSBpZiBQb3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCi0rI3VuZGVm IEhBVkVfUE9TVEdSRVNRTAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cXVl dWU+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1FVRVVFCi0rCi0rLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NF VAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVhZGVyIGZp bGUuICovCi0rI3VuZGVmIEhBVkVfU1NUUkVBTQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8c3RkZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVERFWENF UFQKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIg ZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVERJTlRfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NURExJ Ql9ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhlYWRlciBm aWxlLiAqLwotKyN1bmRlZiBIQVZFX1NUUklORwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVFJJTkdT X0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIg ZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVFJJTkdfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1lT X1NUQVRfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+ IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICi0rCi0rLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVm IEhBVkVfVU5JU1REX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZlY3Rv cj4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfVkVDVE9SCi0rCi0rLyogTmFtZSBvZiBw YWNrYWdlICovCi0rI3VuZGVmIFBBQ0tBR0UKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mg d2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KLSsj dW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBv ZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfTkFNRQotKwotKy8qIERlZmluZSB0 byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSsjdW5kZWYg UEFDS0FHRV9TVFJJTkcKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFt ZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQotKwotKy8qIERl ZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0Vf VkVSU0lPTgotKwotKy8qIERlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nICov Ci0rI3VuZGVmIFNPQ0lfRVhDRVBUSU9OUwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotKyN1bmRlZiBTVERDX0hFQURFUlMKLSsKLSsv KiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+ IGFuZCA8dGltZS5oPi4gKi8KLSsjdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCi0rCi0rLyogVmVy c2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLwotKyN1bmRlZiBWRVJTSU9OCi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2NvcmUvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFr ZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjg6MTAuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0r aW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIp L3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0r U1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4 Y2hhbmdlLmgKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkpCi0rCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2Np X2NvcmVfbGFfU09VUkNFUz0gJChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAot K2xpYnNvY2lfY29yZV9sYV9DWFhGTEFHUyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0r bGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRF X1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5m byAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQo Y29yZV9oX3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0g JChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2Rp cikKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFz aWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTA2IDAxOjMyOjQx LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZp bGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICsw LDAgQEAKLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8t bG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQu byByb3cubyB2YWx1ZXMubyBcCi0tCWludG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8g cm93aWQubyBwcm9jZWR1cmUubyByZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRl ZC1zdGF0ZW1lbnQubyBcCi0tCW9uY2UtdGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBl cnJvci5vIHRyYW5zYWN0aW9uLm8gYmFja2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9v bC5vIHNvY2ktc2ltcGxlLm8KLS0KLS0KLS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFy IHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9 IC1mUElDIC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1z aGFyZWQgLW8gbGlic29jaV9jb3JlLnNvICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24u byA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8g OiB2YWx1ZXMuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0taW50by10eXBlLm8gOiBpbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1i bG9iLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLWVycm9yLm8gOiBlcnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8g OiBwcm9jZWR1cmUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVw YXJlLWluZm8uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQu Y3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0t b25jZS10ZW1wLXR5cGUubyA6IG9uY2UtdGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBw cmVwYXJlLXRlbXAtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS10cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2Fk ZXIubyA6IGJhY2tlbmQtbG9hZGVyLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQotLQotLWNvbm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29s LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQot LXNvY2ktc2ltcGxlLm8gOiBzb2NpLXNpbXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lf Y29yZS5hIGxpYnNvY2lfY29yZS5zbwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmlu Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS9NYWtlZmlsZS5pbgkyMDA5LTA1LTA2IDAxOjMxOjQ5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSw4OTQgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEg ZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs Ci0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBi eSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VU X01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIp L0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBD RFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFs bF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0g PSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1j Ci0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dy YW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6 Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFM TCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hv c3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURFUlMp ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rp cikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGly ID0gc29jaS9jb3JlCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2Ft X19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVz cWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBz KSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLSthbV9fdnBhdGhfYWRqX3Nl dHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSth bV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAi JCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwK LSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwn YDsKLSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpIgotK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCi0r TFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKLStsaWJzb2NpX2NvcmVfbGFfREVQRU5E RU5DSUVTID0KLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9jb3Jl X2xhLWJhY2tlbmQtbG9hZGVyLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLWJsb2IubG8gbGlic29j aV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1lcnJvci5s byBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLW9uY2Ut dGVtcC10eXBlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIFwK LSsJbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQt c3RhdGVtZW50LmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXJvdy5sbyBsaWJzb2NpX2NvcmVfbGEt cm93aWQubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBsaWJzb2NpX2NvcmVfbGEt c29jaS1zaW1wbGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGxpYnNvY2lf Y29yZV9sYS10cmFuc2FjdGlvbi5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBs aWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvCi0rYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAk KGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX2NvcmVfbGFfT0JKRUNU UyA9ICQoYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMpCi0rbGlic29jaV9jb3JlX2xhX0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xG TEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lfY29yZV9sYV9MREZMQUdTKSAkKExERkxBR1Mp IC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRp cikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21w Ci0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBc Ci0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAk KENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChM REZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFH UykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksgPSAk KExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdT KSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09V UkNFUykKLStESVNUX1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQotK1JFQ1VS U0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2 ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNp dmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0r CWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3Rh bGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1 cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK3BrZ2luY2x1ZGVI RUFERVJTX0lOU1RBTEwgPSAkKElOU1RBTExfSEVBREVSKQotK0hFQURFUlMgPSAkKHBrZ2luY2x1 ZGVfSEVBREVSUykKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vy c2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9T VUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9T T1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29j aV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0r QVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVB REVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdT ID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElN RV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0r Qk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMg PSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStC T09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09T VF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0g QEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJT SU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9M SUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZM QUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxB R1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdA Ci0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQ VU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBN T0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0g QENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJ TCA9IEBEU1lNVVRJTEAKLStFQ0hPID0gQEVDSE9ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hP X04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhF RVhUID0gQEVYRUVYVEAKLStGNzcgPSBARjc3QAotK0ZGTEFHUyA9IEBGRkxBR1NACi0rR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBH UkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRB QAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQg PSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RS SVBfUFJPR1JBTUAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAot K0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTE5fUyA9IEBMTl9TQAotK0xU TElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9 IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklH ID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERG TEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAK LStOTUVESVQgPSBATk1FRElUQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBA T1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0r T1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZF UlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNL QUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFD S0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0Vf VEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0Vf VkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBF UkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NU R1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BP U1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJT SU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxF QVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VA Ci0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNf QlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJT X0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0g QFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBA YWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxk ZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNk aXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSth Y19jdF9GNzcgPSBAYWNfY3RfRjc3QAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2Ft X19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90 ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5k aXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2Fs aWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0r YnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStk YXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9v ayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2Vu X29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19w cmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAot K2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0 X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9 IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9k aXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAot K2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRp ciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRp ciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xk aW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0g QHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJl ZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29u ZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9w X2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3Bf YnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkk KHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV9oX3NvdXJjZXMgPSBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ibG9iLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ib29zdC1mdXNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9ib29zdC1vcHRpb25hbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jv b3N0LXR1cGxlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlv bi1wb29sLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvb25jZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9wcmVwYXJlLXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Byb2NlZHVyZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jl Zi1jb3VudGVkLXN0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvdy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yb3dzZXQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zZXNzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29j aS1iYWNrZW5kLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25m aWcuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHJhbnNhY3Rpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 eXBlLWNvbnZlcnNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBl LWNvbnZlcnNpb24tdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dHlwZS1ob2xkZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0 ci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStjb3JlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50 by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAt dHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1w LXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3RyYW5zYWN0aW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS91c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVz LmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0g LiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93LmNw cCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2UuaAot K0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLStsaWJf TFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmUubGEKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUyA9 ICQoY29yZV9oX3NvdXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MgPSAKLStsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCi0rbGlic29jaV9jb3JlX2xh X0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJP T1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElC UkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMp Ci0rQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikKLStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGlu Y2x1ZGVkaXIpL3NvY2kvY29yZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoK LSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNk aXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBk byBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAq KSBcCi0rCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaCBcCi0rCQkmJiBleGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkg IGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9N QUtFKSAtLWdudSAgc29jaS9jb3JlL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYm IFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9jb3JlL01ha2VmaWxlCi0rLlBSRUNJT1VT OiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMq KSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsK LSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9j b25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQo YW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJf TFRMSUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRpciki IHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9MVExJ QlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkcDsgdGhl biBcCi0rCSAgICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgICAgZWNobyAiICQoTElCVE9PTCkg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxU TElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAnJChERVNURElS KSQobGliZGlyKS8kJGYnIjsgXAotKwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkg JChJTlNUQUxMX1NUUklQX0ZMQUcpICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwK LSsJICBlbHNlIDo7IGZpOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6 Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBwPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8g IiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVu aW5zdGFsbCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJHAnIjsgXAotKwkgICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJt IC1mICIkKERFU1RESVIpJChsaWJkaXIpLyQkcCI7IFwKLSsJZG9uZQotKwotK2NsZWFuLWxpYkxU TElCUkFSSUVTOgotKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxp Yl9MVExJQlJBUklFUykKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAotKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7 IFwKLSsJICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKLSsJICBlY2hvICJybSAt ZiBcIiQke2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCi0rCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9j YXRpb25zIjsgXAotKwlkb25lCi0rbGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9sYV9P QkpFQ1RTKSAkKGxpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMpIAotKwkkKGxpYnNvY2lfY29y ZV9sYV9MSU5LKSAtcnBhdGggJChsaWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQo bGlic29jaV9jb3JlX2xhX0xJQkFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6 Ci0rCS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYg Ki50YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9AYW1f X3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlw ZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVA QGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9j ZWR1cmUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yb3cuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0BhbV9f cXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNp bXBsZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS10cmFuc2FjdGlvbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYg JChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAt ZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6 Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRA IGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxvOgotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMg LW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLStsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1s b2FkZXIubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmFj a2VuZC1sb2FkZXIubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNr ZW5kLWxvYWRlci5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LWJhY2tlbmQtbG9hZGVyLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9h ZGVyLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIG9iamVjdD0nbGlic29jaV9j b3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRl ci5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9jb3JlX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEt YmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1w b29sLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1w b29sLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29u bmVjdGlvbi1wb29sLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9v bC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2Nv cmVfbGEtY29ubmVjdGlvbi1wb29sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24t cG9vbC5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1N VCBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1lcnJvci5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLWVycm9yLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIG9iamVjdD0nbGli c29jaV9jb3JlX2xhLWVycm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtaW50 by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5 cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29y ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAot KwotK2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVt cC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1w cmVwYXJlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1w LXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cHJlcGFyZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3By ZXBhcmUtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBvICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3By ZXBhcmUtdGVtcC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1w LXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAot KwotK2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Byb2NlZHVyZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2Nl ZHVyZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3Byb2NlZHVyZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcm9jZWR1cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcm9jZWR1cmUuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXBy ZXBhcmUtaW5mby5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFy ZS1pbmZvLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJl LWluZm8uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50 ZWQtcHJlcGFyZS1pbmZvLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUt aW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jl Zi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0 ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1zdGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQt c3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3Jl X2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotKwotK2xpYnNv Y2lfY29yZV9sYS1yb3cubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvdy5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gLWMgLW8gbGli c29jaV9jb3JlX2xhLXJvdy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXJvdy5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jv dy5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJvdy5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rCi0rbGlic29jaV9j b3JlX2xhLXJvd2lkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvd2lk LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBvIC1jIC1v IGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93aWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3dpZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNv Y2lfY29yZV9sYS1yb3dpZC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93aWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3dpZC5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Jvd2lkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cm93aWQuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24u VHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vz c2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3Jl X2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24u Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9u LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtc29jaS1zaW1wbGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2kt c2ltcGxlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS1zaW1wbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt c29jaS1zaW1wbGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgb2JqZWN0PSdsaWJz b2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAot KwotK2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRl bWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvCi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zdGF0ZW1lbnQuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvIC1j IC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24u Y3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5z YWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dHJhbnNhY3Rpb24uY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9s YS11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlw ZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS11c2UtdHlw ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtdmFsdWVzLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt dmFsdWVzLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVl cy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVl cy5jcHAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFu LWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3Qg LXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2Rpcikv IjsgZmk7IFwKLSsJICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKHBrZ2luY2x1 ZGVIRUFERVJTX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8k JGYnIjsgXAotKwkgICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1wa2dp bmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnaW5j bHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9JChhbV9fc3RyaXBf ZGlyKSBcCi0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYn IjsgXAotKwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRv bmUKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRl cGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQg Z29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2Yg YG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBp ZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0 YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2Vu ZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUg ZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVf VEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxB R1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJ ICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAot Kwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9g OyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0r CWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVz dCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNv bT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAk JGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2Zh aWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJ Y2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlz dD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAot Kwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGly ICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0 YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4g JCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0 IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAm JiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUK LStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVS UykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQk dW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3Mt aW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9v cHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0r CSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsg XAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQk c3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0k JGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQo U09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9 YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hv ICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAk KEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7 IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlp ZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAot KwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVU QUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAg ICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3Mt cmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAot KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGlu ICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxz ZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sg ZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25l bXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIk KENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxB R1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5p cXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdk YCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19B UkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1Mg R1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNy Y2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10u W14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0 X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkg IHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNy Y2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMg aW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkg ICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAg c29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8g XAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxz ZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAot KwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJ ICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7 IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIg fHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0 ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3Rk aXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxl IFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNU X1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1 YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkg ICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBw d2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3 ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAg ICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGly PTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwK LSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwt YW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFS SUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2lu c3RhbGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtE SVJfUCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStp bnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3Rh bGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1 cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAot KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmlj OgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQot KwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBp bnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxl cyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16 ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFuLWFtCi0r Ci0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikK LSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29t cGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmkt cmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raW5m bzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5z dGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStp bnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGlu c3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjog aW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNp dmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZp bGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3Rs eWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwlt b3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgot KwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5z dGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFL RTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFs bC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGliTFRMSUJSQVJJ RVMgY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAotKwlkaXN0Y2xlYW4gZGlz dGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBk aXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBp bmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5z dGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1w ZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwt cHMgXAotKwlpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxj aGVjay1hbSBcCi0rCWluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4g XAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29t cGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRm LWFtIHBzIHBzLWFtIFwKLSsJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxs LWFtIFwKLSsJdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVB REVSUwotKwotK0BTRVRfTUFLRUAKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05V IG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVt IGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tayBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2NvcmUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5 OjM3OjA1LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1OCBAQAotK2NvcmVfaF9zb3VyY2Vz ID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ib29zdC10dXBsZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Nvbm5lY3Rpb24tcG9vbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vy cm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRz LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yb3cuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ct ZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0LmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktY29uZmlnLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1w bGF0Zm9ybS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxl LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdHlwZS1wdHIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCi0rY29yZV9jY19zb3VyY2VzID0gXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25j ZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBh cmUtdGVtcC10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9j ZWR1cmUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVk LXByZXBhcmUtaW5mby5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVm LWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9yb3cuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3ZhbHVlcy5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9j b21tb24tdGVzdHMuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRl c3RzLmgKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMu aAkyMDA5LTA1LTA2IDAxOjMyOjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAkyMDA5LTA1LTA2IDAwOjAyOjM2LjAw MDAwMDAwMCArMDIwMAotQEAgLTgsMTYgKzgsMzAgQEAKLSAjaWZuZGVmIFNPQ0lfQ09NTU9OX1RF U1RTX0hfSU5DTFVERUQKLSAjZGVmaW5lIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQKLSAK LS0jaW5jbHVkZSAic29jaS5oIgotLSNpbmNsdWRlICJzb2NpLWNvbmZpZy5oIgotKy8vCi0rI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zb2NpLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1jb25maWcuaD4KLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oPgotKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL2Jvb3N0LXR1cGxlLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2Nv cmUvYm9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS5oPgot KyMgICAgICAgaW5jbHVkZSA8c29jaS1jb25maWcuaD4KLSsjICAgICAgIGluY2x1ZGUgPGJvb3N0 LW9wdGlvbmFsLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxib29zdC10dXBsZS5oPgotKyMgICAgICAg aW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KLSsjZW5kaWYKLSsvLwotIAotIC8vIGV4 cGxpY2l0bHkgcHVsbCBjb252ZXJzaW9ucyBmb3IgQm9vc3QncyBvcHRpb25hbCwgdHVwbGUgYW5k IGZ1c2lvbjoKLSAjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0tI2luY2x1ZGUgPGJvb3N0 LW9wdGlvbmFsLmg+Ci0tI2luY2x1ZGUgPGJvb3N0LXR1cGxlLmg+Ci0tI2luY2x1ZGUgPGJvb3N0 LWdyZWdvcmlhbi1kYXRlLmg+Ci0gI2lmIGRlZmluZWQoQk9PU1RfVkVSU0lPTikgJiYgQk9PU1Rf VkVSU0lPTiA+PSAxMDM1MDAKLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyNp bmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmg+Ci0rI2Vsc2UKLSAjaW5jbHVkZSA8Ym9v c3QtZnVzaW9uLmg+Ci0rI2VuZGlmCi0gI2VuZGlmIC8vIEJPT1NUX1ZFUlNJT04KLSAKLSAjaW5j bHVkZSA8YWxnb3JpdGhtPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90 ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmls ZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjk6MDYuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDI2IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJj ZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFf RElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0KLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbm9pbnN0X0xUTElCUkFSSUVTPSBsaWJz b2NpX2NvcmVfdGVzdC5sYQotKwotK2xpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVM9ICQoY29y ZV90ZXN0X2hfc291cmNlcykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9DWFhGTEFHUyA9Ci0rbGli c29jaV9jb3JlX3Rlc3RfbGFfTElCQUREID0KLSsjbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFH UyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLStsaWJzb2NpX2Nv cmVfdGVzdF9sYV9MREZMQUdTID0KLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKGNvcmVfdGVz dF9oX3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZS90ZXN0Ci0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVf ZGlyKQotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2Vm aWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS90ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6MzE6NTAuMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDUwNSBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwot K0BTRVRfTUFLRUAKLSsKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK2FtX19j ZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStp bnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJP R1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9z aCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQo cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFM TCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5J TlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRA Ci0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHBrZ2luY2x1ZGVfSEVB REVSUykgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQo c3JjZGlyKS9zb3VyY2VzLm1rIFwKLSsJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStz dWJkaXIgPSBzb2NpL2NvcmUvdGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9j YWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9v c3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRv cF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9j YWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkK LStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRv cF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rTFRMSUJS QVJJRVMgPSAkKG5vaW5zdF9MVExJQlJBUklFUykKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9ERVBF TkRFTkNJRVMgPQotK2FtX19vYmplY3RzXzEgPQotK2FtX2xpYnNvY2lfY29yZV90ZXN0X2xhX09C SkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9 ICQoYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykKLStsaWJzb2NpX2NvcmVfdGVzdF9s YV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwK LSsJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVG QVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK0NP TVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rTFRD T01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DRkxB R1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUND ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKEND TEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykg LW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQotK0RJU1Rf U09VUkNFUyA9ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUykKLSthbV9fdnBhdGhfYWRq X3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsK LSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNo byAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7 IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiov fHwnYDsKLSthbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0r cGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoSU5TVEFMTF9IRUFERVIpCi0rSEVBREVSUyA9 ICQocGtnaW5jbHVkZV9IRUFERVJTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0r RElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQo RVhUUkFfRElTVCkKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9D QUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVU T01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09T VF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NU X1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStC T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RF UE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStD UFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AK LStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQ VU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0g QENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStD WFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBA REVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0VDSE8g PSBARUNIT0AKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19U ID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0Y3NyA9 IEBGNzdACi0rRkZMQUdTID0gQEZGTEFHU0AKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xERkxBR1Mg PSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRP T0wgPSBATElCVE9PTEAKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AK LStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZM QUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01Z U1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NA Ci0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NRURJVCA9IEBOTUVESVRACi0r T0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVf T0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBA T1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZF UlNJT05ACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tB R0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9T VFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFS TkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJB VE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdf Q09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RH UkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBP U1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJT SU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0r U0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStT T0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0r U1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVS U0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3Ny Y2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRp ckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19j dF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdA Ci0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19s ZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3Rh ckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQg PSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1 aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRf dmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStk YXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGly ID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRp ckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAK LStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2Fs aWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0 X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRp ciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGlu c3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLSts aWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2Nh bHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9w ID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9 IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0g QHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBz YmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3Rh dGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0r dGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9i dWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGly ID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9w X3NyY2RpcikKLStjb3JlX3Rlc3RfaF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dGVzdC9jb21tb24tdGVzdHMuaAotK2NvcmVfdGVzdF9jY19zb3VyY2VzID0gCi0rTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJ TElUWSA9IAotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElU WSkKLStub2luc3RfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQotK2xpYnNvY2lf Y29yZV90ZXN0X2xhX1NPVVJDRVMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCi0rbGlic29jaV9j b3JlX3Rlc3RfbGFfQ1hYRkxBR1MgPSAKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPSAK LSsjbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklD X0xJQlJBUllfVkVSU0lPTikKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gCi0rcGtn aW5jbHVkZV9IRUFERVJTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQotK0BTT0NJX0hFQURFUlNf QlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNPQ0lfSEVB REVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2Nv cmUvdGVzdAotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmls ZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v biAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAg aW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAg ICokJGRlcCopIFwKLSsJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKLSsJCSYmIGV4aXQgMDsgXAotKwkgICAgICBleGl0IDE7 OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYm ICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0 b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS90ZXN0L01h a2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZp bGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0r CSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAn IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0r Ci0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0r JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY2xlYW4tbm9p bnN0TFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJt IC1mICQobm9pbnN0X0xUTElCUkFSSUVTKQotKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMp JzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8 L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAot KwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAi JCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLStsaWJzb2NpX2NvcmVfdGVzdC5sYTog JChsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RF UEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9j b3JlX3Rlc3RfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElC UykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStk aXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLSttb3N0bHljbGVhbi1saWJ0 b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMg X2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykK LSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQo TUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNs dWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRw IjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBmPSQoYW1fX3N0cmlw X2RpcikgXAotKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICckJGQkJHAn ICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAotKwkgICQocGtnaW5jbHVkZUhF QURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7 IFwKLSsJZG9uZQotKwotK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFM X1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiIHJtIC1mICck KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAotKwkgIHJtIC1mICIkKERFU1RESVIp JChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNP VVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUK LSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhl cmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVu aXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0k JGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdz OiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5D SUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQo Q1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRh Z3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGly KSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAk KEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJ RCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVT KQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0v XFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAot KwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUg fCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8 XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlz dF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwg XAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwK LSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2Zp bGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4g ZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsg dGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwn YDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQo c3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRp cikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmls ZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1m ICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGly KS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNr LWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJS QVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczoKLSsJZm9yIGRpciBpbiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJf UCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3RhbGwtZXhl YzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KLSt1bmlu c3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAk KEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3Rh bGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFN X01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwK LSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFM TF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVj aG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0r bW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1n ZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENP TkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNs ZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBcCi0rCW1v c3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1mIE1ha2Vm aWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4t Z2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06 Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwot K2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0r Ci0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5z dGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFp bmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsK LSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFt OgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1B S0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxs IGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGli dG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBjdGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3Rj bGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwK LSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFs bC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGlu c3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZv LWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1w a2dpbmNsdWRlSEVBREVSUyBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0 cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFp bmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3Rs eWNsZWFuLWNvbXBpbGUgXAotKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRv b2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1 bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNp b25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4K LSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBl eGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9j b3JlL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3Qvc291 cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMubWsJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9jb3JlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3RfY2Nfc291cmNl cyA9Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv TWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA3LjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSw5IEBACi0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbgotKwotKyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IGNvcmUgYmFja2VuZHMKLSsKLStFWFRS QV9ESVNUID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmluCTIwMDktMDUtMDYgMDE6MzE6NDgu MDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDU1NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9p bnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5p biBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRv IHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElD VUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0 YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNL QUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9 IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0 YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JB TSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkg LWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9 IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNU QUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0r aG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL2NvbmZpZy5oLmluICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaQotK0FDTE9DQUxfTTQgPSAk KHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNx bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVf ZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBc Ci0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NP TkZJR19IRUFERVIgPSBjb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9 Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hl Y2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vy c2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwt aW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1 cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3Rh bGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFs bC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vy c2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9T VUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9T T1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAot K0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBA QVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJ QiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NU X0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1T X0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0r Qk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZF UlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1P REVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZM QUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklH ID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQ VU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9 IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZM QUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9 IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRUNITyA9IEBFQ0hPQAotK0VDSE9f QyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VH UkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRjc3ID0gQEY3N0AKLStGRkxBR1Mg PSBARkZMQUdTQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJ Qk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAot K0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1B S0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZM QUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpFWFQgPSBAT0JKRVhU QAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9S QUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxB R1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStQQUNLQUdF ID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0r UEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdF X1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0Vf VkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBB UkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdS RVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBP U1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdT QAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0g QFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NF VF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAK LStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05A Ci0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNk aXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3Jj ZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NY WCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKLSthbV9faW5jbHVkZSA9 IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2Ft X19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9 IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWls ZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxk X29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRk aXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRh dGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2Rv eHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0g QGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29r QAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUg PSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3Rf dmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJA Ci0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRl eF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGli ZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9j YWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStv bGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVm aXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29r ID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIg PSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBA dGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0 b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAK LStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gY29yZSBiYWNrZW5kcwot K0VYVFJBX0RJU1QgPSAKLSthbGw6IGNvbmZpZy5oCi0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAg JChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1f X2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAotKwkJ JiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwK LSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvTWFr ZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251 ICBzb2NpL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/ JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkg ICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lF UykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0r Y29uZmlnLmg6IHN0YW1wLWgxCi0rCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAotKwkgIHJtIC1m IHN0YW1wLWgxOyBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IFwKLSsJ ZWxzZSA6OyBmaQotKwotK3N0YW1wLWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQHJtIC1mIHN0YW1wLWgxCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgc29jaS9jb25maWcuaAotKyQoc3JjZGly KS9jb25maWcuaC5pbjogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAKLSsJY2QgJCh0b3Bfc3JjZGly KSAmJiAkKEFVVE9IRUFERVIpCi0rCXJtIC1mIHN0YW1wLWgxCi0rCXRvdWNoICRACi0rCi0rZGlz dGNsZWFuLWhkcjoKLSsJLXJtIC1mIGNvbmZpZy5oIHN0YW1wLWgxCi0rCi0rbW9zdGx5Y2xlYW4t bGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5s aWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0 bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3 aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFs dWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0r IyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNv bmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBi ZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBh c3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVD VVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vy c2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNv bTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0r CSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJ Zmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJ QGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkg IGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWls Y29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5v OyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFu LSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUykn IDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIk JHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7 IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3Vi ZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0r CWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAot Kwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAk KEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQg LWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYg KCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhl biBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4 PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1w dHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAot KwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3Mg JCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlk b25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRh Z3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVu aXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFH U0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQot K2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJD RVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykg JChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmln LmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz 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 aGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSBjb25maWcuaAotK2luc3Rh bGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxs OiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2 ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5p bnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFN X01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxj aGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xl YW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0r CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0r ZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3Rj bGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWhkciBkaXN0Y2xl YW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBo dG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsK LStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0r aW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0r Ci0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1m IE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsK LSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s Ci0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNp dmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZF X0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0 YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJz aXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1oZHIgZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBo dG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEg aW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1l eGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5z dGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWlu c3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJ aW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBc Ci0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu IFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0g cHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0K LSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtl IHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1p dCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4gc29jaS0zLjAuMF90cmVwMzAw L3NvY2ktY29uZmlnLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS1jb25maWcuaW4JMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsNzYgQEAKLSsjIS9iaW4vc2gKLSsKLStwcmVmaXg9QHByZWZpeEAKLStleGVjX3ByZWZp eD0ke3ByZWZpeH0KLStsaWJkaXI9QGxpYmRpckAKLStpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAot KwotK3VzYWdlKCkKLSt7Ci0rICBjYXQgPDxFT0YKLStVc2FnZTogQFBBQ0tBR0VALWNvbmZpZyBb T1BUSU9OXQotKwotK0tub3duIHZhbHVlcyBmb3IgT1BUSU9OIGFyZToKLSsKLSsgIC0tcHJlZml4 ICAgICAgICBwcmludCBAUEFDS0FHRV9OQU1FQCBpbnN0YWxsYXRpb24gcHJlZml4Ci0rICAtLWxp YnMgICAgICAgICAgcHJpbnQgbGlicmFyeSBsaW5raW5nIGluZm9ybWF0aW9uCi0rICAtLWNmbGFn cyAgICAgICAgcHJpbnQgcHJlLXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MKLSsgIC0taGVs cCAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLS12ZXJzaW9uICAgICAg IG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0rRU9GCi0rICBleGl0ICQxCi0rfQotKwotK2lm IHRlc3QgJCMgLWVxIDA7IHRoZW4KLSsgIHVzYWdlIDEKLStmaQotKwotK2NmbGFncz1mYWxzZQot K2xpYnM9ZmFsc2UKLSsKLSt3aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwotKyAgY2FzZSAiJDEiIGlu Ci0rICAtKj0qKSBvcHRhcmc9YGVjaG8gIiQxIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydg IDs7Ci0rICAqKSBvcHRhcmc9IDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICQxIGluCi0rICAgIC0t cHJlZml4PSopCi0rICAgICAgcHJlZml4PSRvcHRhcmcKLSsgICAgICA7OwotKwotKyAgICAtLXBy ZWZpeCkKLSsgICAgICBlY2hvICRwcmVmaXgKLSsgICAgICA7OwotKwotKyAgICAtLXZlcnNpb24p Ci0rICAgICAgZWNobyBAVkVSU0lPTkAKLSsgICAgICA7OwotKwotKyAgICAtLWhlbHApCi0rICAg ICAgdXNhZ2UgMAotKyAgICAgIDs7Ci0rCi0rICAgIC0tY2ZsYWdzKQotKyAgICAgIGlmIFsgIiR7 cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUkke2luY2x1ZGVkaXJ9 Ci0rICAgICAgZWxzZQotKyAgICAgICAgZWNobwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgLS1saWJzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsg ICAgICAgIGVjaG8gLUwke2xpYmRpcn0gLWxAUEFDS0FHRUAKLSsgICAgICBlbHNlCi0rICAgICAg ICBlY2hvIC1sQFBBQ0tBR0VACi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAg ICAgIHVzYWdlCi0rICAgICAgZXhpdCAxCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0r ZG9uZQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kubTQgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLm00CTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQJMjAw OS0wNS0wMiAyMzo1OToxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTE4IEBACi0rZG5s IEBzeW5vcHNpcyBBWF9TT0NJCi0rZG5sIAotK2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQg U29jaSBDIEFQSSBoZWFkZXIgYW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2RubAotK2RubCBXZSBk ZWZpbmUgdGhlIGZvbGxvd2luZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgotK2RubAotK2RubAkt LXdpdGgtc29jaTogR2l2ZSBwcmVmaXggZm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5k IHRyeQotK2RubAkJICAgICB0byBndWVzcyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9yIGVhY2guICAo ZS5nLiBhZGQgL2xpYiBhbmQKLStkbmwJCSAgICAgL2luY2x1ZGUgb250byBnaXZlbiBkaXIgbmFt ZXMsIGFuZCBvdGhlciBjb21tb24gc2NoZW1lcy4pCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMywg MjAwOS8wNS8wMgotK2RubCBAYXV0aG9yIERlbmlzIEFybmF1ZCA8ZGVuaXNfYXJuYXVkQHVzZXJz LnNvdXJjZWZvcmdlLm5ldD4KLStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3LzAyLzIwCi0r ZG5sIEBhdXRob3IgV2FycmVuIFlvdW5nIDxzb2NpcHBAZXRyLXVzYS5jb20+Ci0rCi0rQUNfREVG VU4oW0FYX1NPQ0ldLAotK1sKLSsjCi0rIyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MK LSsjCi0rQUNfQVJHX1dJVEgoc29jaSwKLSsJWy0td2l0aC1zb2NpPTxwYXRoPiAgICAgcm9vdCBk aXJlY3RvcnkgcGF0aCBvZiBTb2NpIGluc3RhbGxhdGlvbl0sCi0rCVtTT0NJX2xpYl9jaGVjaz0i JHdpdGhfc29jaS9saWI2NC9zb2NpICR3aXRoX3NvY2kvbGliL3NvY2kgJHdpdGhfc29jaS9saWI2 NCAkd2l0aF9zb2NpL2xpYiIKLSsJU09DSV9pbmNfY2hlY2s9IiR3aXRoX3NvY2kvaW5jbHVkZSAk d2l0aF9zb2NpL2luY2x1ZGUvc29jaSJdLAotKwlbU09DSV9saWJfY2hlY2s9Ii91c3IvbGliNjQg L3Vzci9saWIgL3Vzci9saWI2NC9zb2NpIC91c3IvbGliL3NvY2kgL3Vzci9sb2NhbC9saWI2NCAv dXNyL2xvY2FsL2xpYiAvb3B0L3NvY2kvbGliNjQgL29wdC9zb2NpL2xpYiAvdXNyL2xvY2FsL2xp YjY0L3NvY2kgL3Vzci9sb2NhbC9saWIvc29jaSAvdXNyL2xvY2FsL3NvY2kvbGliNjQgL3Vzci9s b2NhbC9zb2NpL2xpYiAvb3B0L3NvY2kvbGliNjQvc29jaSAvb3B0L3NvY2kvbGliL3NvY2kiCi0r CVNPQ0lfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9pbmNsdWRlL3NvY2kgL3Vzci9sb2Nh bC9pbmNsdWRlIC9vcHQvc29jaS9pbmNsdWRlIC91c3IvbG9jYWwvaW5jbHVkZS9zb2NpIC91c3Iv bG9jYWwvc29jaS9pbmNsdWRlIC91c3IvbG9jYWwvc29jaS9pbmNsdWRlL3NvY2kgL29wdC9zb2Np L2luY2x1ZGUvc29jaSJdKQotKwotKyMgU09DSSBsaWJyYXJ5Ci0rU09DSV9DT1JFX0xJQj1zb2Np X2NvcmUKLStTT0NJX01ZU1FMX0xJQj1zb2NpX215c3FsCi0rCi0rIwotKyMgTG9vayBmb3IgU29j aSBDb3JlIEFQSSBsaWJyYXJ5Ci0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgbGlicmFy eSBkaXJlY3RvcnldKQotK1NPQ0lfbGliZGlyPQotK2ZvciBtIGluICRTT0NJX2xpYl9jaGVjawot K2RvCi0rCWlmIHRlc3QgLWQgIiRtIiAmJiBcCi0rCQkodGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09S RV9MSUIuc28iIHx8IHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLmEiKQotKwl0aGVuCi0r CQlTT0NJX2xpYmRpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAi JFNPQ0lfbGliZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkU09DSV9D T1JFX0xJQiBsaWJyYXJ5IGluICckU09DSV9saWJfY2hlY2snXSkKLStmaQotKwotK2Nhc2UgIiRT T0NJX2xpYmRpciIgaW4KLSsJLyogKSA7OwotKwkqICkgIEFDX01TR19FUlJPUihbVGhlIFNvY2kg bGlicmFyeSBkaXJlY3RvcnkgKCRTT0NJX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRo Ll0pIDs7Ci0rZXNhYwotKwotK0FDX01TR19SRVNVTFQoWyRTT0NJX2xpYmRpcl0pCi0rCi0rY2Fz ZSAiJFNPQ0lfbGliZGlyIiBpbgotKyAgL3Vzci9saWI2NCkgOzsKLSsgIC91c3IvbGliKSA7Owot KyAgKikgU09DSV9MSUJTPSItTCR7U09DSV9saWJkaXJ9IiA7OwotK2VzYWMKLStMREZMQUdTPSIk TERGTEFHUyAke1NPQ0lfTElCU30iCi0rCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQ SSBoZWFkZXJzCi0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgaW5jbHVkZSBkaXJlY3Rv cnldKQotK1NPQ0lfaW5jZGlyPQotK2ZvciBtIGluICRTT0NJX2luY19jaGVjawotK2RvCi0rCWlm IHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9zb2NpL2NvcmUvc29jaS5oIgotKwl0aGVuCi0r CQlTT0NJX2luY2Rpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAi JFNPQ0lfaW5jZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgU29j aSBpbmNsdWRlIGRpciBpbiAnJFNPQ0lfaW5jX2NoZWNrJ10pCi0rZmkKLSsKLStjYXNlICIkU09D SV9pbmNkaXIiIGluCi0rCS8qICkgOzsKLSsJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGlu Y2x1ZGUgZGlyZWN0b3J5ICgkU09DSV9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5d KSA7OwotK2VzYWMKLSsKLStBQ19NU0dfUkVTVUxUKFskU09DSV9pbmNkaXJdKQotKwotK2Nhc2Ug IiRTT0NJX2luY2RpciIgaW4KLSsgIC91c3IvaW5jbHVkZSkgOzsKLSsgICopIFNPQ0lfQ0ZMQUdT PSItSSR7U09DSV9pbmNkaXJ9IiA7OwotK2VzYWMKLSsKLStTT0NJX0xJQlM9IiR7U09DSV9MSUJT fSAtbCR7U09DSV9DT1JFX0xJQn0gLWwke1NPQ0lfTVlTUUxfTElCfSAtbGRsIgotKwotK0FDX1NV QlNUKFNPQ0lfQ0ZMQUdTKQotK0FDX1NVQlNUKFNPQ0lfTElCUykKLSsKLSsjIFRlc3QgbGlua2lu ZyB3aXRoIHNvY2kgKG5vdGUgdGhhdCBpdCBuZWVkcyBNeVNRTCBjbGllbnQgdG8gaGF2ZSBiZWVu IGRlZmluZWQKLSsjIGJlZm9yZSkKLStzYXZlX0xJQlM9IiRMSUJTIgotK2lmIHRlc3QgLXogIiRN WVNRTF9MSUJTIgotK3RoZW4KLSsJTVlTUUxfTElCUz0iLUwvdXNyL2xpYjY0L215c3FsIC1ML3Vz ci9saWIvbXlzcWwgLWxteXNxbGNsaWVudCIKLStmaQotK0xJQlM9IiRMSUJTICRNWVNRTF9MSUJT ICRTT0NJX0xJQlMiCi0rQUNfQ0hFQ0tfTElCKCRTT0NJX0NPUkVfTElCLCBzb2NpX2JlZ2luLAot KwkgICAgIFtdLCAKLSsgICAgICAgICAgICAgW0FDX01TR19FUlJPUihbQ291bGQgbm90IGZpbmQg d29ya2luZyBTb2NpIGNsaWVudCBsaWJyYXJ5IV0pXQotKwkgICAgICkKLStMSUJTPSIkc2F2ZV9M SUJTIgotK0FDX1NVQlNUKFNPQ0lfQ09SRV9MSUIpCi0rXSkgZG5sIEFYX1NPQ0kKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnBjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBj LmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS5wYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCTIwMDkt MDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rcHJlZml4 PUBwcmVmaXhACi0rZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAotK2xpYmRpcj1AbGliZGlyQAot K2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACi0rCi0rTmFtZTogQFBBQ0tBR0VfTkFNRUAKLStEZXNj cmlwdGlvbjogVGhlIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMK LStWZXJzaW9uOiBAUEFDS0FHRV9WRVJTSU9OQAotK1VSTDogaHR0cDovL0BQQUNLQUdFQC5zb3Vy Y2Vmb3JnZS5uZXQKLStMaWJzOiAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQF9jb3JlIEBMREZMQUdT QCBATElCU0AKLStDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kuc3BlYy5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5zcGVjLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS5zcGVjLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kuc3BlYy5pbgkyMDA5LTA1LTA2 IDAxOjMxOjE4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzMTEgQEAKLSsjCi0rIyMKLSsj IERlZmF1bHQgdmFsdWVzIGFyZSAtLXdpdGggbXlzcWwgLS13aXRoIHBvc3RncmVzcWwgLS13aXRo b3V0IG9yYWNsZSAKLSsjIE5vdGUgdGhhdCwgZm9yIE9yYWNsZSwgd2hlbiBlbmFibGVkLCB0aGUg Zm9sbG93aW5nIG9wdGlvbnMgc2hvdWxkCi0rIyBhbHNvIGJlIGdpdmVuOgotKyMgLS13aXRoLW9y YWNsZS1pbmNsdWRlPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMS9y ZGJtcy9wdWJsaWMKLSsjIC0td2l0aC1vcmFjbGUtbGliPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUv cHJvZHVjdC8xMS4xLjAvZGJfMS9saWIKLSsjIElmIHRoZSBtYWNyb3MgYXJlIGRlZmluZWQsIHJl ZGVmaW5lIHRoZW0gd2l0aCB0aGUgY29ycmVjdCBjb21waWxhdGlvbiBmbGFncy4KLSslYmNvbmRf d2l0aG91dCBteXNxbAotKyViY29uZF93aXRob3V0IHBvc3RncmVzcWwKLSslYmNvbmRfd2l0aCBv cmFjbGUKLSsKLSslZGVmaW5lIF9kZWZhdWx0X29yYWNsZV9kaXIgL29wdC9vcmFjbGUvYXBwL29y YWNsZS9wcm9kdWN0LzExLjEuMC9kYl8xCi0rJXshP193aXRoX29yYWNsZV9pbmNkaXI6ICVkZWZp bmUgX3dpdGhfb3JhY2xlX2luY2RpciAtLXdpdGgtb3JhY2xlLWluY2x1ZGU9JXtfZGVmYXVsdF9v cmFjbGVfZGlyfS9yZGJtcy9wdWJsaWN9Ci0rJXshP193aXRoX29yYWNsZV9saWJkaXI6ICVkZWZp bmUgX3dpdGhfb3JhY2xlX2xpYmRpciAtLXdpdGgtb3JhY2xlLWxpYj0le19kZWZhdWx0X29yYWNs ZV9kaXJ9L2xpYn0KLSsjCi0rIyMKLSsjCi0rTmFtZTogICAgICAgICAgIEBQQUNLQUdFQAotK1Zl cnNpb246ICAgICAgICBAVkVSU0lPTkAKLStSZWxlYXNlOiAgICAgICAgQFJQTV9SRUxFQVNFQCV7 P2Rpc3R9Ci0rCi0rU3VtbWFyeTogICAgICAgIFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBm b3IgQysrIHByb2dyYW1tZXJzCi0rCi0rR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVu dC9MaWJyYXJpZXMKLStMaWNlbnNlOiAgICAgICAgQm9vc3QKLStVUkw6ICAgICAgICAgICAgaHR0 cDovLyV7bmFtZX0uc291cmNlZm9yZ2UubmV0Ci0rU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3du bG9hZHMuc291cmNlZm9yZ2UubmV0L3NvY2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negotKyMg VGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQotK1BhdGNoMDogICAgICAgICAl e25hbWV9LSV7dmVyc2lvbn0tZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKLSsjIFRoYXQg cGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KLStQYXRjaDE6ICAgICAgICAgJXtuYW1l fS0le3ZlcnNpb259LWZpeC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKLStCdWls ZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9v dC0lKCV7X19pZF91fSAtbikKLSsKLStCdWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwgPj0gMS4z NAotK0J1aWxkUmVxdWlyZXM6ICBjcHB1bml0LWRldmVsID49IDEuMTAKLStCdWlsZFJlcXVpcmVz OiAgbGlidG9vbAotKyNSZXF1aXJlczogICAgICAgCi0rCi0rJWRlc2NyaXB0aW9uCi0rQFBBQ0tB R0VfTkFNRUAgaXMgYSBDKysgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgdGhhdCBwcm92aWRlcyB0 aGUKLStpbGx1c2lvbiBvZiBlbWJlZGRpbmcgU1FMIGluIHJlZ3VsYXIgQysrIGNvZGUsIHN0YXlp bmcgZW50aXJlbHkgd2l0aGluCi0rdGhlIEMrKyBzdGFuZGFyZC4KLSsKLSsKLSslez93aXRoX215 c3FsOiVwYWNrYWdlICAgICAgICBteXNxbAotK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5k IGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJp ZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotK0J1 aWxkUmVxdWlyZXM6ICBteXNxbC1kZXZlbCA+PSA1LjAKLSsKLSslZGVzY3JpcHRpb24gICAgbXlz cWwKLStUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE15U1FMIGJhY2tlbmQgZm9yIEBQQUNLQUdF X05BTUVALCBpLmUuLAotK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgTXlTUUwgZGF0 YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCi0rdXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIg cHJvZ3JhbXMgd2l0aCBNeVNRTCwgeW91IHdpbGwgbmVlZCB0bwotK2luc3RhbGwgJXtuYW1lfS1t eXNxbC59Ci0rCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOiVwYWNrYWdlICAgICAgICBwb3N0Z3Jlc3Fs Ci0rU3VtbWFyeTogICAgICAgIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3Vw OiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAg ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStCdWlsZFJlcXVpcmVzOiAgcG9zdGdy ZXNxbC1kZXZlbCA+PSA3LjEKLSsKLSslZGVzY3JpcHRpb24gICAgcG9zdGdyZXNxbAotK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciBAUEFDS0FHRV9OQU1F QCwgaS5lLiwKLStkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMgdG8gdGhlIFBvc3RHcmVTUUwgZGF0 YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlCi0rdG8gdXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIg cHJvZ3JhbXMgd2l0aCBQb3N0R3JlU1FMLCB5b3Ugd2lsbCBuZWVkIHRvCi0raW5zdGFsbCAle25h bWV9LXBvc3RncmVzcWwufQotKwotKyV7P3dpdGhfb3JhY2xlOiVwYWNrYWdlICAgICAgICBvcmFj bGUKLStTdW1tYXJ5OiAgICAgICAgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0KLStHcm91cDog ICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAl e25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rCi0rJWRlc2NyaXB0aW9uICAgIG9yYWNs ZQotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yIEBQQUNLQUdF X05BTUVALCBpLmUuLAotK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRh dGFiYXNlLiBJZiB5b3Ugd291bGQgbGlrZSB0bwotK3VzZSBAUEFDS0FHRV9OQU1FQCBpbiB5b3Vy IHByb2dyYW1zIHdpdGggT3JhY2xlLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwKLSsle25hbWV9 LW9yYWNsZS59Ci0rCi0rCi0rJXBhY2thZ2UgICAgICAgIGRldmVsCi0rU3VtbWFyeTogICAgICAg IEhlYWRlciBmaWxlcywgbGlicmFyaWVzIGFuZCBkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIGZv ciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwotK1JlcXVp cmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAg ICAgIHBrZ2NvbmZpZwotKwotKyVkZXNjcmlwdGlvbiAgICBkZXZlbAotK1RoaXMgcGFja2FnZSBj b250YWlucyB0aGUgaGVhZGVyIGZpbGVzLCBkeW5hbWljIGxpYnJhcmllcyBhbmQKLStkZXZlbG9w bWVudCBkb2N1bWVudGF0aW9uIGZvciAle25hbWV9LiBJZiB5b3Ugd291bGQgbGlrZSB0byBkZXZl bG9wCi0rcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSwgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsICV7 bmFtZX0tZGV2ZWwuCi0rCi0rJXs/d2l0aF9teXNxbDolcGFja2FnZSAgICAgICAgbXlzcWwtZGV2 ZWwKLStTdW1tYXJ5OiAgICAgICAgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAg ICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfS1k ZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LW15 c3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgIG15c3FsLWRldmVs ID49IDUuMAotKwotKyVkZXNjcmlwdGlvbiAgICBteXNxbC1kZXZlbAotK1RoaXMgcGFja2FnZSBj b250YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCi0rZmls ZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4g SWYgeW91Ci0rd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5k IE15U1FMLCB5b3Ugd2lsbCBuZWVkCi0rdG8gaW5zdGFsbCAle25hbWV9LW15c3FsLn0KLSsKLSsl ez93aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwtZGV2ZWwKLStTdW1t YXJ5OiAgICAgICAgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAg ICAgIERldmVsb3BtZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVs ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tcG9zdGdy ZXNxbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotK1JlcXVpcmVzOiAgICAgICBwb3N0Z3Jlc3Fs LWRldmVsID49IDcuMQotKwotKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsLWRldmVsCi0rVGhp cyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0sIGku ZS4sIGhlYWRlcgotK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUg UG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYKLSt5b3Ugd291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dy YW1zIHVzaW5nICV7bmFtZX0gYW5kIFBvc3RHcmVTUUwsIHlvdQotK3dpbGwgbmVlZCB0byBpbnN0 YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAg ICAgIG9yYWNsZS1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtu YW1lfQotK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKLStSZXF1aXJlczog ICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotK1JlcXVpcmVzOiAg ICAgICAle25hbWV9LW9yYWNsZSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotKwotKyVkZXNjcmlw dGlvbiAgICBvcmFjbGUtZGV2ZWwKLStUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE9yYWNsZSBi YWNrZW5kIGZvciAle25hbWV9LCBpLmUuLCBoZWFkZXIKLStmaWxlcyBhbmQgZHluYW1pYyBsaWJy YXJpZXMgc3BlY2lmaWMgdG8gdGhlIE9yYWNsZSBkYXRhYmFzZS4gSWYgeW91Ci0rd291bGQgbGlr ZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIE9yYWNsZSwgeW91IHdpbGwg bmVlZAotK3RvIGluc3RhbGwgJXtuYW1lfS1vcmFjbGUufQotKwotKwotKyVwYWNrYWdlIGRvYwot K1N1bW1hcnk6ICAgICAgICBIVE1MIGRvY3VtZW50YXRpb24gZm9yIHRoZSBAUEFDS0FHRV9OQU1F QCBsaWJyYXJ5Ci0rR3JvdXA6ICAgICAgICAgIERvY3VtZW50YXRpb24KLStCdWlsZEFyY2g6ICAg ICAgbm9hcmNoCi0rI0J1aWxkUmVxdWlyZXM6ICBkb3h5Z2VuLCB0ZXhsaXZlLWxhdGV4LCB0ZXhs aXZlLWR2aXBzLCBnaG9zdHNjcmlwdAotKwotKyVkZXNjcmlwdGlvbiBkb2MKLStUaGlzIHBhY2th Z2UgY29udGFpbnMgdGhlIGRvY3VtZW50YXRpb24gaW4gdGhlIEhUTUwgZm9ybWF0IG9mIHRoZSBA UEFDS0FHRV9OQU1FQAotK2xpYnJhcnkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFz IGF0IHRoZSBAUEFDS0FHRV9OQU1FQCB3ZWIgcGFnZS4KLSsKLSsKLSslcHJlcAotKyVzZXR1cCAt cQotKyMgUmVuYW1lIGNoYW5nZS1sb2cgYW5kIGxpY2Vuc2UgZmlsZSwgc28gdGhhdCB0aGV5IGNv bXBseSB3aXRoCi0rIyBwYWNrYWdpbmcgc3RhbmRhcmQKLSttdiBDSEFOR0VTIENoYW5nZUxvZwot K212IExJQ0VOU0VfMV8wLnR4dCBDT1BZSU5HCi0rcm0gLWYgSU5TVEFMTAotKyMgQXBwbHkgdGhl IGcrKyA0LjMgY29tcGF0aWJpbGl0eSBwYXRjaAotKyVwYXRjaDAgLXAxCi0rIyBSZW1vdmUgTWFj T1NYIGNvbXBhdGliaWxpdHkgYnVpbGRpbmcgZmlsZXMKLStybSAtZiBidWlsZC91bml4Ly5fKi50 Y2wKLStybSAtZiAuX01ha2VmaWxlIC5fY29uZmlndXJlCi0rcm0gLWYgc29jaS9jb3JlLy5fKi5o IHNvY2kvY29yZS8uXyouY3BwCi0rcm0gLWYgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsLy5fKi5o Ci0rcm0gLWYgZG9jLy5fKi5odG1sCi0rIyBSZW5hbWUgdGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9y eSwgc28gdGhhdCB0aGUgZmlsZXMgKGUuZywgaGVhZGVyCi0rIyBmaWxlcykgY2FuIGJlIGV4cG9y dGVkIGNvcnJlY3RseSBpbnRvIHtfc3RhbmRhcmRfZGlyfS8le25hbWV9Ci0rbXYgc3JjICV7bmFt ZX0KLSsjIEFwcGx5IHRoZSBHTlUgQXV0b3Rvb2xzIGNvbXBhdGliaWxpdHkgcGF0Y2gKLSslcGF0 Y2gxIC1wMQotKyMgRml4IHNvbWUgcGVybWlzc2lvbnMgYW5kIGZvcm1hdHMKLStmaW5kIC4vZG9j IC10eXBlIGYgLXBlcm0gNzU1IC1leGVjIGNobW9kIDY0NCB7fSBcOwotK2NobW9kIC14IEFVVEhP UlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSsjIGZpbmQgLiAtdHlwZSBmIC1uYW1l ICcqLltoY11wcCcgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7Ci0rCi0rCi0rJWJ1aWxkCi0rJWNvbmZp Z3VyZSAtLWRpc2FibGUtc3RhdGljIFwKLSslez93aXRoX215c3FsOi0tZW5hYmxlLWJhY2tlbmQt bXlzcWx9IFwKLSslez93aXRoX3Bvc3RncmVzcWw6LS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3Fs fSBcCi0rJXs/d2l0aF9vcmFjbGU6LS1lbmFibGUtYmFja2VuZC1vcmFjbGUgJXs/X3dpdGhfb3Jh Y2xlX2luY2Rpcn0gJXs/X3dpdGhfb3JhY2xlX2xpYmRpcn19Ci0rbWFrZSAlez9fc21wX21mbGFn c30KLSsKLSslaW5zdGFsbAotK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKLSttYWtlIGluc3RhbGwg REVTVERJUj0kUlBNX0JVSUxEX1JPT1QKLSsjIwotKyMgIFJlbW92ZSB1bnBhY2thZ2VkIGZpbGVz IGZyb20gdGhlIGJ1aWxkcm9vdAotK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0vY29uZmlnLmgKLStybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9L2xpYiV7 bmFtZX1fKi5sYQotKyMjCi0rIyMKLSsjICBEdXBsaWNhdGUgdGhlIGhlYWRlciBmaWxlcywgc28g YXMgdG8ga2VlcCB0aGUgY29tcGF0aWJpbGl0eSwgZm9yCi0rIyAgZGV2ZWxvcGVycyB1c2luZyB0 aGUgU09DSSBsaWJyYXJ5LCB3aXRoIHRoZSBub24tcGFja2FnZWQgdmVyc2lvbiBvZgotKyMgIHRo YXQgbGlicmFyeS4KLStmb3IgaGVhZGVyX2ZpbGUgaW4gJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfS9jb3JlLyouaDsgZG8KLSsgIGNwICR7aGVhZGVyX2ZpbGV9ICRSUE1fQlVJ TERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KLStkb25lCi0rJXs/d2l0aF9teXNxbDpjcCAk UlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL215c3FsL3NvY2kt bXlzcWwuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQotKyV7P3dpdGhf cG9zdGdyZXNxbDpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tl bmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVk ZWRpcn0vJXtuYW1lfX0KLSslez93aXRoX29yYWNsZTpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNs dWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oICRSUE1fQlVJTERf Uk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Ci0rCi0rCi0rJWNsZWFuCi0rcm0gLXJmICRSUE1f QlVJTERfUk9PVAotKwotKyVwb3N0IC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1biAtcCAv c2Jpbi9sZGNvbmZpZwotKwotKyV7P3dpdGhfbXlzcWw6JXBvc3QgbXlzcWwgLXAgL3NiaW4vbGRj b25maWcKLSsKLSslcG9zdHVuIG15c3FsIC1wIC9zYmluL2xkY29uZmlnfQotKwotKyV7P3dpdGhf cG9zdGdyZXNxbDolcG9zdCBwb3N0Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1 biBwb3N0Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmlnfQotKwotKyV7P3dpdGhfb3JhY2xlOiVwb3N0 IG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZwotKwotKyVwb3N0dW4gb3JhY2xlIC1wIC9zYmluL2xk Y29uZmlnfQotKwotKwotKwotKyVmaWxlcwotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRv YyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGlyfS9saWIl e25hbWV9X2NvcmUuc28uKgotKwotKyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15c3FsCi0rJWRlZmF0 dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBS RUFETUUKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fbXlzcWwuc28uKn0KLSsKLSslez93aXRoX3Bv c3RncmVzcWw6JWZpbGVzIHBvc3RncmVzcWwKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVk b2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyV7X2xpYmRpcn0vbGli JXtuYW1lfV9wb3N0Z3Jlc3FsLnNvLip9Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JWZpbGVzIG9yYWNs ZQotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZ SU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zby4qfQotKwot KwotKyVmaWxlcyBkZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JT IENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRlZGlyfS8le25h bWV9Ci0rJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUKLSsle19pbmNsdWRlZGlyfS8l e25hbWV9LyouaAotKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmgKLSsle19pbmNsdWRl ZGlyfS8le25hbWV9L2NvcmUvdGVzdAotKyV7X2JpbmRpcn0vJXtuYW1lfS1jb25maWcKLSsle19s aWJkaXJ9L2xpYiV7bmFtZX1fY29yZS5zbwotKyV7X2xpYmRpcn0vcGtnY29uZmlnLyV7bmFtZX0u cGMKLSsle19kYXRhZGlyfS9hY2xvY2FsLyV7bmFtZX0ubTQKLSsle19tYW5kaXJ9L21hbjEvJXtu YW1lfS1jb25maWcuMS4qCi0rCi0rJXs/d2l0aF9teXNxbDolZmlsZXMgbXlzcWwtZGV2ZWwKLSsl ZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRQotKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQotKyV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fbXlzcWwuc299 Ci0rCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsLWRldmVsCi0rJWRlZmF0 dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBS RUFETUUKLSslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25h bWV9L2JhY2tlbmRzL3Bvc3RncmVzcWwKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNx bC5zb30KLSsKLSslez93aXRoX29yYWNsZTolZmlsZXMgb3JhY2xlLWRldmVsCi0rJWRlZmF0dHIo LSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFE TUUKLSslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9 L2JhY2tlbmRzL29yYWNsZQotKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc299Ci0rCi0r Ci0rJWZpbGVzIGRvYwotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENo YW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FIGRvYwotKwotKwotKyVjaGFuZ2Vsb2cKLSsqIFR1 ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4g My4wLjAtMTEKLSstIFJlbW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gTGF0ZXggZm9yIGRvY3VtZW50 YXRpb24gZGVsaXZlcnkKLSsKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlz LmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTAKLSstIEJ1cnJpZWQgdGhlIEJvb3N0IEZ1 c2lvbiBoZWFkZXIgaW5jbHVkZSBmb3IgY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCi0rCi0rKiBU dWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+ IDMuMC4wLTkKLSstIEFkZGVkIGEgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGUgZm9yIGcr Ky00LjQgY29tcGF0aWJpbGl0eQotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8 ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC04Ci0rLSBBZGRlZCBtaXNzaW5nIGNz dGRpbyBoZWFkZXIgaW5jbHVkZXMgZm9yIGcrKy00LjQgY29tcGF0aWJpbGl0eQotKwotKyogVHVl IE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAz LjAuMC03Ci0rLSBBZGRlZCBhIG1pc3NpbmcgY3N0ZGlvIGhlYWRlciBpbmNsdWRlIGZvciBnKyst NC40IGNvbXBhdGliaWxpdHkKLSsKLSsqIFNhdCBNYXkgMDIgMjAwOSBEZW5pcyBBcm5hdWQgPGRl bmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNgotKy0gUmVtb3ZlZCB0aGUgdW51c2Vk IGJ1aWxkIGNvbmRpdGlvbmFscwotKwotKyogVHVlIEFwciAyOCAyMDA5IERlbmlzIEFybmF1ZCA8 ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC01Ci0rLSBTaW1wbGlmaWVkIHRoZSBj b25kaXRpb25hbCBidWlsZCBydWxlcyB3aXRoaW4gdGhlIFJQTSBzcGVjaWZpY2F0aW9uIGZpbGUK LSsKLSsqIFNhdCBBcHIgMTggMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFA bTR4Lm9yZz4gMy4wLjAtNAotKy0gRml4ZWQgYW4gaXNzdWUgYWJvdXQgT1BURkxBR1MgY29tcGls YXRpb24KLSsKLSsqIFR1ZSBBcHIgMTQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9m ZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMwotKy0gUmVzdGFydGVkIGZyb20gcHJpc3RpbmUgdmVyc2lv biAzLjAuMCBvZiB1cHN0cmVhbSAoU09DSSkgcHJvamVjdAotKwotKyogU2F0IEFwciAgNCAyMDA5 IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0yCi0rLSBT cGVjaWZpYyBSUE0gZm9yIGVhY2ggYmFja2VuZAotKwotKyogRnJpIE1hciAyNyAyMDA5IERlbmlz IEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xCi0rLSBGaXJzdCBS UE0gcmVsZWFzZQoKZGlmZiAtLWdpdCBhL3NvY2kuc3BlYyBiL3NvY2kuc3BlYwppbmRleCAyZmYz MWRkLi40OGIwN2M2IDEwMDY0NAotLS0gYS9zb2NpLnNwZWMKKysrIGIvc29jaS5zcGVjCkBAIC0x OCw3ICsxOCw3IEBACiAjCiBOYW1lOiAgICAgICAgICAgc29jaQogVmVyc2lvbjogICAgICAgIDMu MC4wCi1SZWxlYXNlOiAgICAgICAgMTElez9kaXN0fQorUmVsZWFzZTogICAgICAgIDEzJXs/ZGlz dH0KIAogU3VtbWFyeTogICAgICAgIFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysr IHByb2dyYW1tZXJzCiAKQEAgLTI3LDEzICsyNywxMyBAQCBMaWNlbnNlOiAgICAgICAgQm9vc3QK IFVSTDogICAgICAgICAgICBodHRwOi8vJXtuYW1lfS5zb3VyY2Vmb3JnZS5uZXQKIFNvdXJjZTA6 ICAgICAgICBodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9zb2NpLyV7bmFtZX0tJXt2 ZXJzaW9ufS50YXIuZ3oKICMgVGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQot UGF0Y2gwOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ2NjNDMtY29tcGF0aWJpbGl0 eS5wYXRjaAorUGF0Y2gwOiAgICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS0xMy1maXgtZ2NjNDMt Y29tcGF0aWJpbGl0eS5wYXRjaAogIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3Ry ZWFtCi1QYXRjaDE6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWZpeC1nbnUtYXV0b3Rvb2xz LWNvbXBhdGliaWxpdHkucGF0Y2gKK1BhdGNoMTogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0t MTMtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAogQnVpbGRSb290OiAgICAg ICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRf dX0gLW4pCiAKLUJ1aWxkUmVxdWlyZXM6ICBib29zdC1kZXZlbCA+PSAxLjM0Ci1CdWlsZFJlcXVp cmVzOiAgY3BwdW5pdC1kZXZlbCA+PSAxLjEwCitCdWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwK KyNCdWlsZFJlcXVpcmVzOiAgY3BwdW5pdC1kZXZlbCA+PSAxLjEwCiBCdWlsZFJlcXVpcmVzOiAg bGlidG9vbAogI1JlcXVpcmVzOiAgICAgICAKIApAQCAtMTMyLDggKzEzMiwxMiBAQCB0byBpbnN0 YWxsICV7bmFtZX0tb3JhY2xlLn0KICVwYWNrYWdlIGRvYwogU3VtbWFyeTogICAgICAgIEhUTUwg ZG9jdW1lbnRhdGlvbiBmb3IgdGhlIFNPQ0kgbGlicmFyeQogR3JvdXA6ICAgICAgICAgIERvY3Vt ZW50YXRpb24KKyVpZiAwJXs/ZmVkb3JhfSA+PSAxMAogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAot I0J1aWxkUmVxdWlyZXM6ICBkb3h5Z2VuLCB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBzLCBn aG9zdHNjcmlwdAorI0J1aWxkUmVxdWlyZXM6ICB0ZXhsaXZlLWxhdGV4LCB0ZXhsaXZlLWR2aXBz CislZW5kaWYKKyNCdWlsZFJlcXVpcmVzOiAgdGV0ZXgtbGF0ZXgsIHRldGV4LWR2aXBzCisjQnVp bGRSZXF1aXJlczogIGRveHlnZW4sIGdob3N0c2NyaXB0CiAKICVkZXNjcmlwdGlvbiBkb2MKIFRo aXMgcGFja2FnZSBjb250YWlucyB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgSFRNTCBmb3JtYXQg b2YgdGhlIFNPQ0kKQEAgLTE0MiwyNCArMTQ2LDMwIEBAIGxpYnJhcnkuIFRoZSBkb2N1bWVudGF0 aW9uIGlzIHRoZSBzYW1lIGFzIGF0IHRoZSBTT0NJIHdlYiBwYWdlLgogCiAlcHJlcAogJXNldHVw IC1xCisKKyMgQXBwbHkgdGhlIGcrKyA0LjMgY29tcGF0aWJpbGl0eSBwYXRjaAorJXBhdGNoMCAt cDEKKwogIyBSZW5hbWUgY2hhbmdlLWxvZyBhbmQgbGljZW5zZSBmaWxlLCBzbyB0aGF0IHRoZXkg Y29tcGx5IHdpdGgKICMgcGFja2FnaW5nIHN0YW5kYXJkCiBtdiBDSEFOR0VTIENoYW5nZUxvZwog bXYgTElDRU5TRV8xXzAudHh0IENPUFlJTkcKIHJtIC1mIElOU1RBTEwKLSMgQXBwbHkgdGhlIGcr KyA0LjMgY29tcGF0aWJpbGl0eSBwYXRjaAotJXBhdGNoMCAtcDEKKwogIyBSZW1vdmUgTWFjT1NY IGNvbXBhdGliaWxpdHkgYnVpbGRpbmcgZmlsZXMKIHJtIC1mIGJ1aWxkL3VuaXgvLl8qLnRjbAog cm0gLWYgLl9NYWtlZmlsZSAuX2NvbmZpZ3VyZQotcm0gLWYgc29jaS9jb3JlLy5fKi5oIHNvY2kv Y29yZS8uXyouY3BwCi1ybSAtZiBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvLl8qLmgKK3JtIC1m IHNyYy9jb3JlLy5fKi5oIHNyYy9jb3JlLy5fKi5jcHAKK3JtIC1mIHNyYy9iYWNrZW5kcy9wb3N0 Z3Jlc3FsLy5fKi5oCiBybSAtZiBkb2MvLl8qLmh0bWwKKwogIyBSZW5hbWUgdGhlIHNvdXJjZSBj b2RlIGRpcmVjdG9yeSwgc28gdGhhdCB0aGUgZmlsZXMgKGUuZywgaGVhZGVyCiAjIGZpbGVzKSBj YW4gYmUgZXhwb3J0ZWQgY29ycmVjdGx5IGludG8ge19zdGFuZGFyZF9kaXJ9LyV7bmFtZX0KIG12 IHNyYyAle25hbWV9CisKICMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0aWJpbGl0eSBw YXRjaAogJXBhdGNoMSAtcDEKKwogIyBGaXggc29tZSBwZXJtaXNzaW9ucyBhbmQgZm9ybWF0cwog ZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2NDQge30gXDsKIGNobW9k IC14IEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKQEAgLTI3Nyw2ICsyODcs MTIgQEAgcm0gLXJmICRSUE1fQlVJTERfUk9PVAogCiAKICVjaGFuZ2Vsb2cKKyogU2F0IE1heSAw OSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0x MworLSBJbnRyb2R1Y2VkIGRpc3RpbmN0IGRlcGVuZGVuY2llcyBmb3IgZGlmZmVyZW50IGRpc3Ry aWJ1dGlvbnMKKworKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRf ZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEyCistIFJlbW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gdGhl IHZlcnNpb24gb2YgQm9vc3QsIGFuZCBvbiBDUFBVbml0CisKICogVHVlIE1heSAwNSAyMDA5IERl bmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xMQogLSBSZW1v dmVkIHRoZSBkZXBlbmRlbmN5IG9uIExhdGV4IGZvciBkb2N1bWVudGF0aW9uIGRlbGl2ZXJ5CiAK